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

Posted

技术标签:

【中文标题】获取出现在 Schedule Revit API 上的链接元素【英文标题】:Get Linked Elements that Appear on Schedule Revit API 【发布时间】:2019-01-08 06:36:57 【问题描述】:

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

目前,如果您使用 FilteredElementCollector 查询 ViewSchedule,它将返回 N 个元素(例如 Windows、门)和 M 个 RevitLinkInstances。但是,RevitLinkInstance 并未列出链接模型中出现的实际元素。有没有办法在 ViewSchedule 范围内的 RevitLinkInstance 中进行查询?或者类似的解决方案?

【问题讨论】:

【参考方案1】:

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

让我知道这是否也适合你

【讨论】:

以上是关于获取出现在 Schedule Revit API 上的链接元素的主要内容,如果未能解决你的问题,请参考以下文章

在 Revit 2017 API 中获取房间的邻居

如何使用 Forge 模型衍生 API 获取 revit 模型的单位?

[使用Revit API 2020的Revit API壁厚

如何使用 Forge API 从模型 Revit 2022 获取零件类别

Revit API获取链接模型中构件

Revit API:如何获取创建的族实例的 ElementID?