在 Autodesk Forge 查看器中,当获取maxtrixWorld“房间”对象的属性时,我观察到模型中每个房间的属性都是相同的,无论对象实际位于模型中的什么位置。模型中的任何其他对象都不是这种情况(它们都具有maxtrixWorld与它们在模型中的位置相对应的独特属性)。
我已经maxtrixWorld根据构建房间对象的片段 ID 通过多种方法检索数据,所有这些都导致相同的结果:
获取一个带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,从而可以生成房间数据。