获取Schedule Revit API上显示的链接元素

时间:2018-07-31 19:20:25

标签: api schedule autodesk revit

使用Revit API(2017及更高版本),可以通过任何方式获取时间表中显示的链接元素列表(包括过滤器,相位过滤器等)。

当前,如果您使用FilteredElementCollector查询ViewSchedule,它将返回N个元素(例如Windows,Doors)和M个RevitLinkInstances。但是,RevitLinkInstance不会列出链接模型中出现的实际元素。在ViewSchedule范围内是否可以在RevitLinkInstance中进行查询?或类似的解决方案?

1 个答案:

答案 0 :(得分:0)

我设法通过将Schedule ID传递给新的fileteredElementCollector来使其正常工作,

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

让我知道这是否对您也有用