使用外部资源引用链接云 Revit 文件时出错 - 外部资源引用的格式不是其服务器支持的格式



我想将一个云模型链接到Revit 2021及以下版本的另一个Revit模型中。经过大量探索,我的一位同事能够使用ExternalResourceReference在Revit 2020中成功链接其中一个项目的模型(以下是代码)。但是,当我尝试在Revit 2021项目中使用相同的代码时,我会收到以下错误:

ExternalResourceReference(resourceReference)的格式不受其服务器支持

var linkCloudPath = doc.GetCloudModelPath(); // the cloudpath of a BIM360 model
Guid linkedmodelguid = linkCloudPath.GetModelGUID();
Guid linkedprojectguid = linkCloudPath.GetProjectGUID();
Dictionary<string, string> Dictionary_ExternalResource = new Dictionary<string, string>(){
{"LinkedModelModelId", modelGuid.ToString()},
{"LinkedModelProjectId", projGuid.ToString()}
};
Dictionary<string, Guid> servers = new Dictionary<string, Guid>();
foreach (var service in ExternalServiceRegistry.GetServices())
{
if (service.Name == "External Resource Service")
{
IList<Guid> server_ids = service.GetRegisteredServerIds();

foreach (var server_id in server_ids)
{
servers.Add(service.GetServer(server_id).GetName(), server_id);
}
}
}
Guid BIM360ServerID = servers["BIM 360"];
ExternalResourceReference ERS = new ExternalResourceReference(BIM360ServerID, Dictionary_ExternalResource, "", "");
RevitLinkOptions options = new RevitLinkOptions(false);
LinkLoadResult result = RevitLinkType.Create(gcdoc, ERS, options); // error in this line
RevitLinkInstance.Create(gcdoc, result.ElementId);

代码在2020&2021.

我建议通过从链接类型调用RevitLinkType.GetExternalResourceReferences()来检查ExternalResourceReference,该链接类型已设置为BIM 360模型,以便您可以获得所需的所有信息。

在我的测试中,返回了以下格式。ServerId可以通过与您尝试过的相同方式获取ExternalServiceRegistry.GetServices()int来使用。

{
"ServerId": "XXXXX",
"ReferenceInformation": {
"ForgeDmItemUrn": "urn:adsk.wipprod:dm.lineage:XXXXX",
"ForgeDmProjectId": "b.XXXXX",
"LinkedModelModelId": "XXXXX",
"LinkedModelProjectId": "XXXXX",
"LinkedModelRegion": "US"
},
"Version": "",
"InSessionPath": "BIM 360://XXXXX"
}

请注意,云链接可能有一些特殊的外壳。

原来我只需要添加字典Dictionary_ExternalResource的区域

Dictionary<string, string> Dictionary_ExternalResource = new Dictionary<string, string>(){
{"LinkedModelRegion","US" }, // added this line
{"LinkedModelModelId", modelGuid},
{"LinkedModelProjectId", projGuid}
};

最新更新