如何从 PathName 获取 Project Guid 和 Model Guid?
Posted
技术标签:
【中文标题】如何从 PathName 获取 Project Guid 和 Model Guid?【英文标题】:How to get Project Guid and Model Guid from PathName? 【发布时间】:2018-12-24 12:14:37 【问题描述】:我的 Revit 模型有一个 RVT 链接,其中 PathName = "BIM 360://Testing Link Edit in BIM360/ArchitectureBIM360.rvt"
我想构造一个ModelPath并使用它来打开云托管文件,如下所示:
ModelPath mp = ModelPathUtils.ConvertCloudGUIDsToCloudPath(projectId, modelId);
linkDoc = uiapp.OpenAndActivateDocument(mp, new OpenOptions(), false, new cloudCallback()).Document;
如何从 PathName 中获取 projectId 和 modelId GUID?
【问题讨论】:
我相信是这样,请在我回答之前仔细检查该信息。你试过了吗? @AugustoGoncalves 2019 What's New 说“项目 Guid 和模型 Guid(可以从各种 Forge API 获得)。”但是,当我只有 RVT 链接的路径名时,应该使用哪些 Forge API 来获取 GUID? 【参考方案1】:使用 Forge Data Management API 您可以列出 Hubs > Projects > Folders > Items > Versions。一个项目本质上是一个文件,但它可以有 1+ 个版本,所以这就是您需要特定版本的原因。 This tutorial 指导您完成步骤。
一旦你list version of an item,它应该是.data
下的一个数组,数组上的每个条目应该有类似(简化的):
"type":"versions",
"id":"urn:adsk.wipprod:fs.file:vf.abcd1234?version=1",
"attributes":
"name":"fileName.rvt",
"displayName":"fileName.rvt",
...
"mimeType":"application/vnd.autodesk.r360",
"storageSize":123456,
"fileType":"rvt",
"extension":
"type":"versions:autodesk.bim360:C4RModel",
....
"data":
...
"projectGuid":"48da72af-3aa6-4b76-866b-c11bb3d53883",
....
"modelGuid":"e666fa30-9808-42f4-a05b-8cb8da576fe9",
....
,
....
更新
从评论中,您可以在 Revit 桌面上使用:
ModelPath path = doc.GetCloudModelPath();
Guid guid1 = path.GetModelGUID();
Guid guid2 = path.GetProjectGUID();
【讨论】:
您建议的教程需要的信息在我描述的情况下似乎不可用。我所拥有的只是来自 BIM360 上的 RVT 的 RevitLinkInstance。考虑到RevitLinkType.PathType会抛出InvalidOperationException(无法确定(或设置)Revit链接的PathType,因为它不是从本地磁盘驱动器或Revit Server加载的),我想知道Revit 2019是否支持获取这个modelGuid和projectGuid来自 RevitLinkInstance。您能否确认这是否可以完成?【参考方案2】:我还没有使用 Forge API(我真的需要自己阅读教程)。我不知道这是否会有所帮助,或者您是否找到了您正在寻找的答案,但缓存文件夹确实包含所有文件和项目 GUID,包括链接:“C:\Users\username\AppData\Local\Autodesk\Revit \Autodesk Revit 2019\CollaborationCache\2008062704538XX\4680d561-ed69-4a61-b9b2-587582b1627a\LinkedModels\1f96b01e-640e-4e16-93af-edcc11769570.rvt"
【讨论】:
我可以确认您的示例“4680d561-ed69-4a61-b9b2-587582b1627a”中的第一个 GUID 是项目 GUID。对于模型 GUID,我使用 .rvt 文件名中的 GUID 和 RevitBatchProcessor v1.6 直接在项目文件夹中测试打开模型,它可以工作。虽然不确定 LinkedModels 文件夹中文件的行为..【参考方案3】:在以下路径中:
C:\Users\username\AppData\Local\Autodesk\Revit\Autodesk Revit 2019\CollaborationCache\2008062704538XX\4680d561-ed69-4a61-b9b2-587582b1627a\LinkedModels\1f96b01e-640e-4e16-93af-edcc11769570.rvt"
2008062704538XX
是氧气 ID,它是一个唯一 ID,它与您的 Autodesk 帐户相关联。
4680d561-ed69-4a61-b9b2-587582b1627a
是项目的 GUID。1f96b01e-640e-4e16-93af-edcc11769570
是链接模型的 GUID。
【讨论】:
以上是关于如何从 PathName 获取 Project Guid 和 Model Guid?的主要内容,如果未能解决你的问题,请参考以下文章
NextJS:动态 router.pathname 不显示路径,而是显示文件名 - 如何获取路径中的单词?