Autodesk Forge Viewer获取片段的本地位置

问题描述

我正在使用Autodesk Viewer v7,试图在已翻译的Revit .rvt文件获取片段的位置。由于Revit处理模型位置的方式,我无法使用fragProxy.getWorldMatrix()提取片段的世界位置。 那么,有没有一种方法可以获取片段在转换后的Revit模型中的位置?或者,如果不可能的话,一种获取片段局部位置的方法? 非常感谢。

解决方法

other thread中所述:如果您的Forge模型中的片段具有在其顶点上烘焙的位置(换句话说,如果每个片段的变换是一个单位矩阵),则可以尝试计算通过计算片段的边界框,然后检索其中心点,将每个片段在世界坐标系中“近似” 位置:

function getApproximatePosition(model,fragid) {
    const frags = model.getFragmentList();
    let bbox = new THREE.Box3();
    frags.getWorldBounds(fragid,bbox);
    return bbox.center();
}