获取出现在Schedule Revit API上的链接元素

问题描述 投票:1回答:1

使用Revit API(2017及以上版本),有没有办法获得计划中出现的链接元素列表(包括过滤器,阶段过滤器等)。

目前,如果使用FilteredElementCollector查询ViewSchedule,它将返回N个元素(例如Windows,Doors)和M RevitLinkInstances。但是,RevitLinkInstance不会列出链接模型中显示的实际元素。有没有办法在ViewSchedule的范围内查询RevitLinkInstance?还是类似的解决方案?

api schedule autodesk revit
1个回答
0
投票

我已经设法通过将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

如果这对您有用,请告诉我

© www.soinside.com 2019 - 2024. All rights reserved.