我们在项目中使用锻造设计自动化api。我们有一个要求,我们需要传递带有主revit文件的链接文件,如下所示。我们正在使用revit 2020作为引擎。
|-- LinkA.rvt
| |-- LinkA1.rvt
| |-- LinkA2.rvt
|
|-- LinkB.rvt
但是当我们使用c#revit addin中的以下代码获取链接文件时。然后它返回一个空数组。
List<Element> linkCollector = new FilteredElementCollector(_doc).OfCategory(BuiltInCategory.OST_RvtLinks).WhereElementIsNotElementType().ToList();
有谁能帮我找出这个问题的解决办法吗?
您正在尝试查找RevitLinkInstance还是RevitLinkType。您的代码似乎试图收集RevitLinkInstance
,如果您得到一个空列表,很可能是因为宿主文档中没有为链接文件放置实例。
如果在过滤器中丢弃WhereElementIsNotElementType()
,会得到一个空数组吗?
List<Element> linkCollector = new FilteredElementCollector(_doc).OfCategory(BuiltInCategory.OST_RvtLinks).ToList();
要显式收集RevitLinkType
,您还可以执行以下操作:
List<Element> linkCollector = new FilteredElementCollector(_doc).OfClass(typeof(RevitLinkType)).ToList();
要显式收集RevitLinkInstance
,您还可以执行以下操作:
List<Element> linkCollector = new FilteredElementCollector(_doc).OfClass(typeof(RevitLinkInstance)).ToList();