📅  最后修改于: 2023-12-03 15:41:30.950000             🧑  作者: Mango
在 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 中获取路径和卸载链接的方法。