使用Revit API(2017及以上版本),有没有办法获得计划中出现的链接元素列表(包括过滤器,阶段过滤器等)。
目前,如果使用FilteredElementCollector查询ViewSchedule,它将返回N个元素(例如Windows,Doors)和M RevitLinkInstances。但是,RevitLinkInstance不会列出链接模型中显示的实际元素。有没有办法在ViewSchedule的范围内查询RevitLinkInstance?还是类似的解决方案?
我已经设法通过将Schedule Id传递给新的filteredElementCollector来使其工作,如下所示:
schedule = doc.ActiveView
scheduledElements = list(FilteredElementCollector(doc, schedule.Id))
allElements = []
for element in scheduledElements:
if element.Category.Name == 'RVT Links':
linkedElements = list(FilteredElementCollector(element.GetLinkDocument(), schedule.Id))
for linkedElement in linkedElements:
allElements.Add(linkedElement)
else:
allElements.Add(element)
for element in allElements:
print element
如果这对您有用,请告诉我