我們試圖獲取所有鏈接的外部文件的列表和層次結構。現在我們嘗試了以下代碼:如何獲取鏈接和子鏈接的Revit文件的列表和層次結構
FilteredElementCollector collectorI = new FilteredElementCollector(DocChild);
IList<Element> elemsI = collectorI.OfCategory(BuiltInCategory.OST_RvtLinks).OfClass(typeof(RevitLinkInstance)).ToElements();
foreach (Element eI in elemsI)
{
if (eI is RevitLinkInstance)
{
RevitLinkInstance InstanceType = eI as RevitLinkInstance;
RevitLinkType type = DocChild.GetElement(InstanceType.GetTypeId()) as RevitLinkType;
TaskDialog.Show("Debug", "IsNestedLink=" + type.IsNestedLink.ToString() + " IsLinked=" + DocChild.IsLinked.ToString());
if (!type.IsNestedLink)
{
TaskDialog.Show("Debug", "Children=" + InstanceType.GetLinkDocument().PathName.ToString());
}
}
}
我們成功獲取所有鏈接文件的列表,但沒有層次結構。我們不知道哪個文件是哪個父母的孩子。
這是我們正在試圖獲得的鏈接結構:
謝謝你的偉大答案。它幫助解決了我的問題的很大一部分,但我只剩下一個問題:如何獲取所有實例的完整路徑名。在某些情況下,相同的文件在Revit鏈接層次結構中重複使用兩次。對於您需要鏈接文件中Document對象的PathName的 – Philippe
。它應該工作 –
對不起,但在RevitLinkType中不能訪問路徑名只有名字。並且在子程序集中,AttachmentType始終是重疊的。 – Philippe