【发布时间】:2021-07-23 08:41:10
【问题描述】:
在 Autodesk Forge 查看器中,当获取“房间”对象的 maxtrixWorld 属性时,我观察到模型中每个房间的属性都是相同的,无论对象实际位于何处该模型。模型中的任何其他对象都不是这种情况(它们都有唯一的maxtrixWorld 属性,对应于它们在模型中的位置)。
我已经根据构建房间对象的片段 ID,通过多种方法检索了 maxtrixWorld 数据,所有这些都导致相同的结果:
获取一个带有maxtrixWorld 属性的THREE.Mesh 对象
const renderProxy = viewer.impl.getRenderProxy(viewer.model, fragId);
获取一个带有maxtrixWorld 属性的THREE.Mesh 对象
const meshObj = fragList.getVizmesh(fragId);
通过 fragList 辅助函数 getWorldMatrix() 获取 matrixWorld
const matrix = new THREE.Matrix4(); fragList.getWorldMatrix(fragId, matrix);
房间确实出现在模型中的正确位置,这让我认为它们的几何形状中包含了转换,因为它们的矩阵无法确定它们在模型中的位置。
这是对房间在 Revit 中构建方式的限制,还是模型转换过程的结果?有没有办法为这些对象检索正确的矩阵信息?模型正在通过 Forge 处理,并将 generateMasterViews 标志设置为 true,从而可以生成房间数据。
【问题讨论】:
标签: autodesk-forge autodesk-viewer forge autodesk-model-derivative