我有以下设置:文件A是我的建筑模型,有墙壁,房间,家具。文件B是我的电子机械文件与闪电装置,插座,.文件A链接到文件B,因此该文件B是一个链接文件。
我目前正在创建Revit中的一个加载项,它生成一个元素列表,该列表位于给定的房间内。现在,为主机文件(文件A)中的元素生成这个列表并不难,只需迭代所有元素,检查它是否为Instance,并获得该Instance的.Room属性。
但是,对于链接文档(B文件)中的实例,.Room属性总是返回null。
我希望如果有人已经找到了解决这个问题的办法。现在,我看到的唯一解决方案是绑定链接的文档,以便将其转换为一个组。但是,1:我看不出有可能通过API绑定一个链接,而2:转换到一个组中,放弃了链接文档的所有优点。
发布于 2014-06-24 22:02:58
我所做的是使用Document.GetRoomAtPoint(XYZ )方法,并传递主机文件中元素的起始点。
您需要一些逻辑来转换主机和链接文档之间的坐标-请参阅Jeremy的文章以获得更多信息: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对象,并将其与所有当前加载的文档进行比较。
https://stackoverflow.com/questions/24364796
复制相似问题