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

如何在Autodesk Forge Viewer中加载单个IDW文件的多张图纸?

解决Autodesk Viewer加载IDW全部图纸的问题

问题根源

Autodesk Viewer默认只会加载IDW文件的第一张图纸,剩下的图纸需要通过API主动触发加载。

具体实现步骤

  • 获取所有图纸的视图信息
    文件加载完成后,通过文档根节点搜索所有几何类型的视图节点,这些节点对应IDW里的每张图纸。示例代码:

    function onDocumentLoaded(doc) {
        const rootNode = doc.getRoot();
        // 筛选出所有图纸视图
        const allSheets = rootNode.search({ 'type': 'geometry' });
        console.log('IDW包含的所有图纸:', allSheets);
    }
    
  • 批量加载所有图纸
    遍历拿到的图纸视图数组,调用loadDocumentNode方法加载每张图纸,注意设置keepCurrent: true来保留已加载的图纸,避免覆盖。示例代码:

    function loadAllSheets(viewer, doc) {
        const rootNode = doc.getRoot();
        const allSheets = rootNode.search({ 'type': 'geometry' });
        
        allSheets.forEach((sheet, idx) => {
            // 第一张图纸Viewer默认已加载,可选择跳过或重新加载
            if (idx === 0) {
                viewer.loadDocumentNode(doc, sheet);
            } else {
                // 加载后续图纸,保留当前已加载内容
                viewer.loadDocumentNode(doc, sheet, { keepCurrent: true });
            }
        });
    }
    
  • 切换显示不同图纸
    全部加载完成后,可通过viewer.select()方法切换到指定图纸,传入对应图纸的dbId即可:

    // 替换为目标图纸的dbId
    viewer.select(targetSheetDbId);
    

额外注意点

  • 必须在Autodesk.Viewing.Initializer初始化完成后再执行上述代码,确保API处于就绪状态。
  • 确认IDA环境下存储桶的压缩包已被正确解压,IDW文件可被Viewer正常访问。
  • 若使用旧版Viewer API,可能存在多图纸支持限制,建议升级到最新版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 01:18:10