You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Autodesk Forge API获取BIM模型浏览器中的元素计数及指定父节点

BIM模型元素信息提取与节点关联处理方案

获取单个元素信息及总计数

  • 过滤父子节点只保留单个元素:遍历模型元素时,直接跳过包含子节点的父节点和非叶节点,只保留无任何子元素的叶节点,这些就是独立的单个元素。
  • 解决API无法获取模型浏览器总计数的问题:手动遍历所有叶节点,按元素ID或唯一标识去重后统计数量,这个数值就是模型浏览器显示的单个元素总计数。

从叶节点关联带子项计数的父节点

  • 针对叶节点CIE_NLRS_31_DO_o1_glas_helder,回溯它的父节点链,检查每个父节点的子项计数属性(不同BIM平台属性名不同,比如Revit里的NumberOfChildren或自定义Count字段)。
  • 递归调用父节点获取方法,每拿到一个父节点就验证是否存在计数属性,直到找到对应节点NLRS_31_DO_UN_deurblad_hout_opdek_glas_gen_cie:Standaard为止。

获取标记数字“3”的最底层子节点

  • 先通过上面的方法找到带计数的父节点NLRS_31_DO_UN_deurblad_hout_opdek_glas_gen_cie:Standaard。
  • 遍历该父节点的所有子节点,递归深入直到找到所有无后代的叶节点,这些就是标记数字“3”对应的最底层子节点,数量应为3个。
  • 伪代码示例:
def get_bottom_children(parent_node):
    bottom_list = []
    for child in parent_node.GetChildren():
        if not child.HasChildren():
            bottom_list.append(child)
        else:
            bottom_list.extend(get_bottom_children(child))
    return bottom_list

# 找到目标父节点
target_parent = find_count_parent(leaf_node)
# 获取所有最底层子节点
bottom_nodes = get_bottom_children(target_parent)

内容的提问来源于stack exchange,提问作者Roderik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 19:25:50