1

我正在关注 Petr Broz 的博客文章,其中包含我在 BIM 360 中的 Revit 项目中发布的视图,但我想知道如果我发布的 2D 视图实际上只是一个独立的楼层,我将如何在 2D 坐标和 3D 世界坐标之间进行转换平面视图而不放置在任何图纸上。

我试图获取视口,但我意识到发布的视图在模型中没有任何视口。所以我实际上不能在视口扩展中使用这些功能。任何建议将不胜感激。

4

2 回答 2

1

我的错误是手动尝试通过将 x、y、z 坐标除以视口比例来转换它们,因此它们无法与 3D 世界坐标对齐。

通过提供正确的模型单位比例,我可以使用 get3DTo2DMatrix() 进行转换。

    viewport = viewportExt.getViewports(viewer.model)[0];
    viewportXform viewport.get3DTo2DMatrix(viewer.model.getUnitScale());
    
    // From foot to millimeters
    x = x* 0.00328084;
    y = y* 0.00328084;
    z = z* 0.00328084;
    var worldPt = new THREE.Vector3(x,y,z);
    worldPt.applyMatrix4(viewportXform);
于 2021-11-10T06:45:31.770 回答
0

不幸的是,它不支持不放置图纸的平面图视图,因为此时缺少一些必需的信息。我们仍在与我们的工程团队讨论这个问题。

当前的工作路径是创建 Revit Sheet 视图并将平面图放置在其中,请参阅https://www.youtube.com/watch?v=smMap86YZUY

于 2021-11-05T09:39:36.537 回答