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

如何在Forge Viewer中复现并调用Revit模型内的自定义3D视图?

在Forge Viewer中复现Revit保存的3D视图

完全可行,以下是具体实现方案和关键要点:

1. 确保模型转换时包含所有3D视图

上传Revit模型到Forge时,默认转换可能仅提取默认3D视图,需在转换请求中明确指定提取所有视图:

  • 使用Model Derivative API时,转换payload需设置views参数为["2d", "3d"],确保包含所有2D和3D视图;
  • 若用Design Automation API生成SVF2格式,需配置输出选项包含所有视图数据。

2. 获取Revit保存的3D视图列表

Viewer加载模型完成后,遍历模型节点树筛选出Autodesk.Viewing.Viewable3D类型的节点,这些就是Revit中保存的3D视图。示例代码:

function getRevit3DViews(viewer) {
  const viewList = [];
  const rootNode = viewer.model.getDocumentNode().getRootNode();
  
  function traverseNodes(node) {
    if (node.isA('Autodesk.Viewing.Viewable3D')) {
      viewList.push({
        id: node.data.viewableID,
        name: node.data.name
      });
    }
    node.children.forEach(traverseNodes);
  }
  
  traverseNodes(rootNode);
  return viewList;
}

调用该函数即可获取所有3D视图的ID和名称,用于前端列表展示。

3. 编程切换至指定3D视图

拿到目标视图的viewableID后,调用Viewer的loadView方法即可切换到对应视图,示例:

function switchToTargetView(viewer, viewableId) {
  viewer.loadView(viewableId);
}

切换后Viewer会自动还原该视图在Revit中保存的视角、构件可见性、着色模式等设置。

常见问题排查

  • 若仅显示默认3D视图,检查Model Derivative转换任务的详情,确认是否成功提取了所有3D视图;
  • 确认Revit中的目标3D视图未被标记为不可导出、未被隐藏,且已正常保存。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 12:15:33