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

Forge Viewer restoreState无法加载完整建筑视图及残留截面问题

Forge Viewer restoreState 问题解决方案

问题1:恢复完整建筑视图时无法显示整个建筑

你的状态配置仅包含viewport和cutplanes,缺少objectSet字段——该字段记录了模型构件的可见性状态,初始通过viewer.getState()获取的完整状态是包含这个字段的。仅恢复视角参数不会自动恢复所有构件的可见性,导致无法显示整个建筑。

解决方法:

  • 保存完整状态:直接使用viewer.getState()的完整返回值作为保存的状态,不要手动截取部分内容。
  • 手动恢复可见性:如果已保存的状态缺失objectSet,在恢复状态后强制显示所有构件并适配视图:
viewer.restoreState(yourSavedState, () => {
  viewer.showAll(); // 显示所有模型构件
  viewer.navigation.fitToView(); // 自动适配到整个建筑范围
});

注:viewer.navigation.setRequestHomeView(true)需要配合viewer.navigation.triggerRequestHomeView()才会触发回家视图,不如直接用fitToView()更直接有效。

问题2:恢复完整视图后残留截面分析深色轮廓

这是因为截面分析工具的状态没有被完全清除,残留了之前楼层的高亮轮廓。需要在恢复完整视图时手动清理截面工具状态和高亮。

解决方法:
在恢复状态的回调中添加以下代码,确保截面工具被关闭且高亮被清除:

viewer.restoreState(yourSavedState, () => {
  // 关闭所有截面分析
  const sectionExtension = viewer.getExtension('Autodesk.Section');
  if (sectionExtension) {
    sectionExtension.removeAllSections();
  }
  // 清除选中状态和残留高亮
  viewer.clearSelection();
  viewer.impl.clearHighlight();
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 22:22:42