簡體   English   中英

如何在 C# 宏中從 revit 卸載所有鏈接(Revit、CAD、Pointcloud、IFC)

[英]How to unload all links ( Revit, CAD, Pointcloud, IFC ) from revit in C# macro

我需要從 Revit 文件中批量卸載所有鏈接類型。 到目前為止,我找到了處理 Revit 鏈接的代碼,這要歸功於作者的一篇帖子

https://stackoverflow.com/users/200443/maxence

// Unload all links
        var loadedExternalFilesRef = new List<RevitLinkType>();
        var collector = new FilteredElementCollector(document);
        foreach (Element element in collector.OfClass(typeof(RevitLinkType)))
        {
            ExternalFileReference extFileRef = element.GetExternalFileReference();
            if (null == extFileRef || extFileRef.GetLinkedFileStatus() != LinkedFileStatus.Loaded) 
                continue;
            var revitLinkType = (RevitLinkType)element;
            loadedExternalFilesRef.Add(revitLinkType);
            revitLinkType.Unload(null);
        }

我還需要處理所有鏈接,包括 CAD、IFC、Pointcloud 似乎 Revit API 不允許 CADlinktype 具有相同的功能。

請指教並感謝您的幫助!

我實現了一個刪除 DWF 鏈接的解決方案, CmdRemoveDwfLinks 它在The Building Coder 示例 GitHub 存儲庫中作為外部命令提供。 The Building Coder 博客上關於刪除 DWF 鏈接的討論中提供了該命令的完整文檔,其中包括大量背景信息和研究,這些信息和研究也可以很好地幫助您處理其他鏈接類型。 祝你好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM