首页 > 解决方案 > 缩放场景 Autodesk Forge

问题描述

我在 Forge 场景中有一个 BIM 建筑设计和一个自定义模型。我使用以下方法在 X 轴上移动了自定义模型 1 单元mesh.matrix.setPosition(new THREE.Vector3(1, 0, 0))。我希望1个单位的位移等于1米。我的问题 :

  1. 如何在 Autodesk Forge 上执行此操作?
  2. 更详细地说,我如何确定 Forge 场景的规模(以米为单位)?

标签: autodesk-forgeautodesk-viewer

解决方案


尝试加载 Forge 模型并将applyScaling属性设置为meters,例如,如下所示:

async function loadModel(viewer, urn) {
    return new Promise(function (resolve, reject) {
        function onDocumentLoadSuccess(doc) {
            const viewable = doc.getRoot().getDefaultGeometry();
            const options = {
                applyScaling: 'meters'
            };
            viewer.loadDocumentNode(doc, viewable, options)
                .then(resolve)
                .catch(reject);
        }
        function onDocumentLoadFailure(code) {
            reject(`Could not load document (${code}).`);
        }
        Autodesk.Viewing.Document.load('urn:' + urn, onDocumentLoadSuccess, onDocumentLoadFailure);
    });
}

这样,如果加载的模型以不同的单位定义,查看器将对其进行缩放,使其几何图形中的 1 个单位代表 1 米。


推荐阅读