我在视口数据中使用
modelToSheetTransform
来映射 3D 和图纸视图之间的位置。
我有 1 个 3D 视图,其中有一些工作表,但其中 1 个工作表在地图后位置错误,其他工作表是正确的。我是否遗漏了工作表中的某些设置或者我设置错误?
这是我映射位置的代码:
const aecData = await Autodesk.Viewing.Document.getAecModelData(
viewer.model.getDocumentNode()
);
const viewport = aecData.viewports.find(
(v: any) => v.sheetGuid === sheetGuid
);
const sheetUnitScale = viewer.model.getUnitScale();
modelToSheetTransformMatrix = Autodesk.AEC.AecModelData.get3DTo2DMatrix(
viewport,
sheetUnitScale
).clone();
不确定生成或保存 Revit 模型的 Revit 模型版本是什么。
可能与一个已知问题有关。您可以尝试在加载“Autodesk.AEC.LevelsExtension”和“Autodesk.AEC.ViewportsExtension”之前省略 modelToSheetTransform 来看看是否有帮助?
let aecData = viewer.model.getDocumentNode().getAecModelData();
aecData.viewports = aecData.viewports.map( vp => { vp.modelToSheetTransform = null; return vp } );
//Before loading 'Autodesk.AEC.LevelsExtension' and 'Autodesk.AEC.ViewportsExtension'
查看者将使用另一种方法来计算变换,但请确保您的平面图和图纸按照此链接中的规则进行配置:
https://stackoverflow.com/a/69941583/7745569
如果上述方法没有帮助,请考虑提供一个重现此问题的测试 Revit 模型给
aps (DOT) help (AT) autodesk (DOT) com
进行调查,并在电子邮件中指出哪些视图可以重现此问题。
参考: