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

如何在Forge Viewer中列出所有视图(而非相机对象)

如何获取Forge Viewer中SVF模型的全部视图列表

你之前调用的NOP_VIEWER.model.getData().cameras仅能获取当前已加载的单个模型分支绑定的默认相机,3DS Max导出的多视图SVF格式会将不同导出视图存为根气泡下的独立可加载节点,不会聚合到单个模型的cameras数组中,因此仅调用该接口只能拿到当前视图对应的相机,无法获取全部视图列表。

具体实现方法

通过模型的文档气泡节点筛选所有可加载视图,示例代码如下:

// 1. 取当前模型对应的根气泡节点
const rootBubble = NOP_VIEWER.model.getDocumentNode().getRoot();
// 2. 筛选所有3D视图节点,如需包含2D视图可删除 role: '3d' 筛选条件
const allViewList = rootBubble.search({ type: 'geometry', role: '3d' });
// 3. 遍历获取视图信息
allViewList.forEach((viewNode, idx) => {
  // 视图名称,对应3DS Max导出时设置的视图名
  const viewName = viewNode.getName();
  // 视图唯一标识,可用于后续切换视图
  const viewGuid = viewNode.getGuid();
  console.log(`第${idx+1}个视图:${viewName},标识:${viewGuid}`);
});

补充说明

  • 如果需要切换到指定视图,调用NOP_VIEWER.loadDocumentNode(NOP_VIEWER.model.getDocument(), 目标viewNode)即可自动加载对应视图及绑定的相机参数
  • 该方法对Revit、Navisworks等其他软件导出的多视图SVF/SVF2模型同样适用

内容的提问来源于stack exchange,提问作者Fábio Pontes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:24:04