了解 Revit 元素上传到 Forge 平台后的坐标系转换和参考

Understanding the coordinate systems transformation and references of Revit elements after upload to Forge platform

我最近上传了一个Revit模型到Forge平台。该模型定义了一个测量点 (N/S: 0, E/W: 0) 一个基础项目点 (N/S: 149443, E/W: 371248, Angle to True North: 41.43°)) 和一个模型房间。模型房间包含一个坐标为 (N/S: 149326, E/W: 380492)

的元素

我想弄清楚模型中的这些点在上传到 Forge 平台后是如何转换和翻译的。

我用这个函数(viewerApp.getCurrentViewer().model.getData().bbox)在Forge Viewer中获取了模型的边界框,发现了这些:

min: (X: 1229.5841064453125, Y: 471.1938171386719, Z: -0.5249344110488892)

max: (X: 1284.9295654296875, Y: 527.90869140625, Z: 13.123359680175781)

此外,我做出了这些初步假设:

  1. 单位假设:Revit 模型中提供的北向和东向坐标中的 1 个点直接转换为 Forge Viewer 中 X 和 Y 中的一个点。
  2. 原点假设:我假设 Forge 查看器的原点位于查看器 API 中的 (0, 0, 0) 点。此外,查看器使用模型的测量点或项目基点作为原点。
  3. Revit 模型的元素将落入 Forge Viewer 模型的边界框内

但是,边界框的信息(X & Y分别从1229-1284 & 471-527开始)似乎不包含房间模型中定义的元素的坐标,如果它在测量点上(元素的 X & Y149326 & 380492 相对于测量点),或者如果它在项目基点上(元素的 X & Y-117 & 9444 相对于项目基点).

另外,参考问题,可能是模型坐标可能被这个命令获得的全局偏移量所偏移:(viewerApp.getCurrentViewer().model.getData().globalOffset)。但是,当我 运行 返回此命令时 (0, 0, 0) 。假设如果偏移量是正确的,Northing/Easting 到 Forge 的 X/Y 的单位缩放似乎与我的假设不同。

请问我上面的假设哪一部分是错误的?

我正在使用 Forge Viewer API v6,Model Derivative API v2,并使用 Node.JS 作为 Forge Viewer API[=26= 的服务器]

如果我没理解错的话,您似乎使用项目坐标放置了 Revit 模型,但只提取了项目地址 属性。

如您所指出的 中所述,模型以原点为中心,globalOffset 表示此值。

您可能需要根据模型的单位调整边界框,我建议勾选