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

关于Forge Viewer中从BIM360进行选择性加载的技术咨询

Forge Viewer相关问题解答

1. 如何用Selective Loading功能加载Revit模型中的特定楼层?

要实现特定楼层的选择性加载,核心是获取目标楼层及所属构件的数据库ID(dbId)集合,再通过加载选项指定仅加载这些元素:

  • 步骤1:获取楼层元素的dbId
    加载模型文档后,通过文档的search方法或遍历类别节点找到目标楼层。比如搜索Revit中Levels类别下的元素:
    doc.search({ type: 'Level' }, (levels) => {
      const targetLevel = levels.find(level => level.name === '楼层1');
      const levelDbId = targetLevel.dbId;
    });
    
  • 步骤2:筛选该楼层关联的所有构件
    利用Viewer的search方法,根据构件的Level属性值匹配目标楼层,获取所有关联构件的dbId:
    viewer.search('楼层1', (dbIds) => {
      // dbIds即为该楼层下所有关联构件的数据库ID
    }, null, ['Level']);
    
  • 步骤3:启用Selective Loading加载指定元素
    调用loadDocumentNode时,在loadOptions中传入selection参数指定要加载的dbId集合:
    viewer.loadDocumentNode(doc, viewable, {
      selection: [...[levelDbId], ...dbIds] // 包含楼层本身及关联构件
    });
    

2. 如何从BIM360加载Revit模型?是否无需进行转换?

加载BIM360模型的流程

  1. 获取模型的URN
    通过Forge Data Management API,依次获取Hub ID、Project ID,再找到目标模型的Version ID,将Version ID转换为Base64编码的URN(注意去掉末尾的等号)。
  2. 加载模型到Viewer
    调用Viewer的loadModel方法或Autodesk.Viewing.Document.load方法加载URN:
    Autodesk.Viewing.Document.load(urn, (doc) => {
      const viewable = doc.getRoot().getDefaultGeometry();
      viewer.loadDocumentNode(doc, viewable);
    });
    

关于模型转换的说明

BIM360中的Revit模型必须经过转换才能在Forge Viewer中加载。上传到BIM360的原始Revit文件(.rvt)无法直接被Viewer识别,需要通过Forge Model Derivative API将其转换为Viewer支持的SVF/SVF2格式。只有当转换状态为success时,才能正常加载模型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:00:09