1

我有以下设置: 文件 A 是我的建筑模型,包括墙壁、房间、家具......文件 B 是我的机电文件,包括闪电装置、插座......链接文件。

我目前正在 Revit 中创建一个插件,它会生成给定房间内的元素列表。现在,为 HOST 文件(文件 A)中的元素生成此列表并不难,只需迭代所有元素,检查它是否为 anInstance并获取.Roomthat 的属性Instance

但是,对于链接文档(文件 B)中的实例,该.Room属性始终返回 null。

我希望如果有人已经偶然发现了这个问题的解决方案。现在我看到的唯一解决方案是绑定链接的文档,以便将其转换为组。但是,1:我看不到通过 API 绑定链接的可能性,以及 2:转换为组会丢弃链接文档的所有优点。

4

1 回答 1

1

我所做的是使用 Document.GetRoomAtPoint(XYZ point) 方法,并传递宿主文件中元素的原点。

您需要一些逻辑来转换主机和链接文档之间的坐标 - 有关更多信息,请参阅 Jeremy Tammik 的这篇文章:http: //thebuildingcoder.typepad.com/blog/2013/11/determining-host-document-location -of-a-linked-element.html

您可以通过 Application.Documents 属性访问链接的文档。您需要一些逻辑来识别哪些加载的文档是您的主机模型的链接文档。您可以使用 TransmissionData.GetAllExternalFileReferenceIds() 和 TransmissionData.transmissionData.GetLastSavedReferenceData(elId) 来检索 ExternalFileReference 对象并将其与所有当前加载的文档进行比较。

于 2014-06-24T22:02:58.987 回答