Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#宏中从Revit卸载所有链接(Revit、CAD、点云、IFC)_C#_Revit - Fatal编程技术网

如何在C#宏中从Revit卸载所有链接(Revit、CAD、点云、IFC)

如何在C#宏中从Revit卸载所有链接(Revit、CAD、点云、IFC),c#,revit,C#,Revit,我需要从Revit文件中批量卸载所有链接类型。到目前为止,我找到了处理Revit链接的代码,这要感谢 //卸载所有链接 var loadexternalfilesref=new List(); var collector=newfilteredelementcollector(文档); 类的收集器中的元素(typeof(RevitLinkType))) { ExternalFileReference extFileRef=element.GetExternalFileReference();

我需要从Revit文件中批量卸载所有链接类型。到目前为止,我找到了处理Revit链接的代码,这要感谢

//卸载所有链接
var loadexternalfilesref=new List();
var collector=newfilteredelementcollector(文档);
类的收集器中的元素(typeof(RevitLinkType)))
{
ExternalFileReference extFileRef=element.GetExternalFileReference();
if(null==extFileRef | | extFileRef.GetLinkedFileStatus()!=LinkedFileStatus.Loaded)
继续;
var revitLinkType=(revitLinkType)元素;
loadedExternalFilesRef.Add(RevitLink类型);
revitLinkType.Unload(空);
}
我还需要注意所有链接,包括CAD、IFC、Pointcloud Revit API似乎不允许对CADlinktype使用相同的功能


请给出建议,并感谢您的帮助

我实现了一个删除DWF链接的解决方案,
CmdRemoveDwfLinks
。它在中作为外部命令提供。在上的讨论中,Building Coder博客提供了该命令的完整文档,其中包括大量的背景信息和研究,这些信息和研究可能会帮助您处理其他链接类型。祝你好运

// 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);
        }