📜  获取路径 revit 链接卸载 - C# (1)

📅  最后修改于: 2023-12-03 15:41:30.950000             🧑  作者: Mango

获取路径 Revit 链接卸载 - C#

在 Revit API 中,我们可以使用 C# 编写的程序来获取 Revit 链接的路径并卸载该链接。下面将介绍如何实现这一操作。

获取链接路径

首先,需要使用 FilteredElementCollector 类来获取当前文档中的 Revit 链接元素。具体实现代码如下:

FilteredElementCollector collector = new FilteredElementCollector(doc);
collector.OfClass(typeof(RevitLinkType));

接下来,我们可以循环遍历 collector 中的元素,并使用 RevitLinkType.GetInstances() 方法来获取当前文档中的链接实例。具体代码如下:

foreach (Element elem in collector)
{
    RevitLinkType linkType = elem as RevitLinkType;
    if (linkType != null)
    {
        // 获取链接实例
        IList<RevitLinkInstance> instances = linkType.GetInstances();
        foreach (RevitLinkInstance instance in instances)
        {
            string path = instance.GetLinkDocument().PathName;
            // 在此处操作获取到的链接路径
        }
    }
}

通过 instance.GetLinkDocument() 方法可以获取链接的文档对象,进而获取链接路径。

卸载链接

在获取到链接路径后,我们可以使用 Document.Unload() 方法来卸载链接。具体代码如下:

Document linkedDoc = instance.GetLinkDocument();
linkedDoc.Unload(true);

注意,Unload() 方法的参数表示是否强制卸载链接。

完整代码如下:

FilteredElementCollector collector = new FilteredElementCollector(doc);
collector.OfClass(typeof(RevitLinkType));

foreach (Element elem in collector)
{
    RevitLinkType linkType = elem as RevitLinkType;
    if (linkType != null)
    {
        IList<RevitLinkInstance> instances = linkType.GetInstances();
        foreach (RevitLinkInstance instance in instances)
        {
            string path = instance.GetLinkDocument().PathName;
            
            // 卸载链接
            Document linkedDoc = instance.GetLinkDocument();
            linkedDoc.Unload(true);
        }
    }
}

以上就是使用 C# 在 Revit API 中获取路径和卸载链接的方法。