angleToTrueNorth 对于 Navisworks 翻译模型为空

问题描述 投票:0回答:1

将 Navisworks 模型转换为 SVF 时,

model.getData().metadata['custom values'].angleToTrueNorth
中的angleToTrueNorth 值不可用。我还能在哪里找到它?

autodesk-forge autodesk-viewer
1个回答
0
投票

不幸的是,

angleToTrueNorth
仅适用于 Revit,据我所知。

model.getData().metadata['custom values'].angleToTrueNorth

但是,如果您的 NWC/NWD 模型是在去年 4 月之后使用共享坐标从 RVT 导出的,那么我们可以根据清单中的 nwModelToWorldTransform

 转换来计算。

"derivatives": [ { "name": "racbasicsampleproject.nwc", "hasThumbnail": "true", "status": "success", "progress": "complete", "properties": { "Document Information": { "Navisworks File Creator": "nwexportrevit", "nwModelToWorldTransform": [ 0.7986355100472902, 0.6018150231520518, 0, -0.6018150231520518, 0.7986355100472902, 0, 0, 0, 1, -65.03805139774867, -61.70701987942478, 0 ] }, ///...
以下是我们如何通过变换计算与真北的角度:

let model = viewer.getAllModels()[0]; let doc = model.getDocumentNode().getDocument(); let docRoot = doc.getRoot(); let docInfo = docRoot.children[0].data.properties['Document Information']; let angle = THREE.Math.radToDeg(Math.acos( docInfo.nwModelToWorldTransform[0] )) let angelToTrueNorth = -1.0 * angle; //!<<< The angelToTrueNorth is clockwise, but the angle in math is counterclockwise
因此,以上面的

nwModelToWorldTransform

变换为例,计算出的angelToTrueNorth将是:

let angle = THREE.Math.radToDeg(Math.acos( 0.7986355100472902 )); //<<< 37° let angelToTrueNorth = -1.0 * 37; //!<<< -37° = 323°

© www.soinside.com 2019 - 2024. All rights reserved.