昨天和一位Revit二次开发人员讨论了关于如何访问链接文件(Linked File)的问题。因为之前没有涉及过,所以写了简单的测试代码验证,现分享如下:
1. Revit 2012 中提供 TransmissionData 类访问链接文件的路径和状态
通过 TransmissionData 可以很方便地访问(读/写)当前文档中链接文档的路径和加载状态属性;
但是我没有找到通过 TransmissionData 类访问链接文件内部元素的方法。希望能有朋友能指点,先谢了!
2. Autodesk.Revit.ApplicationServices.Application.Documents 属性返回当前 Revit 打开的所有文档对象
包括手工打开的和加载的链接文档;
判断是否是链接文档的方式是通过判断其 ActiveView 是否为 NULL。这个条件也可以用来判断如下特殊情况:
当前有一个打开的文档和一个链接的文档虽然处在不同的目录下,但是有相同的文件名。
-- 当前打开了文档 [目录#1]\1.rvt
---- [目录#1]\1.rvt 链接了文档 [目录#1]\1-1.rvt
-- 当前打开了文档 [目录#2]\1-1.rvt
另外在 Revit 2012 中测试还发现:同一份文档无法同时打开和链接。
有了 ActiveView 的判断和 上面这个 Revit 约束,我们在