node.js - 了解Revit图元上传到Forge平台后的坐标系转换和引用

标签 node.js 3d autodesk-forge autodesk-viewer autodesk-model-derivative

我最近将 Revit 模型上传到 Forge 平台。该模型定义了一个测量点(南北:0,东/西:0)、一个基础项目点(北/西:149443,东/西:371248,真北角度:41.43°))和一个样板房。模型室包含一个坐标为的元素(N/S:149326,E/W:380492)

我试图理解模型内的这些点在上传到 Forge 平台后如何进行转换和翻译。

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

分钟:(X:1229.5841064453125,Y:471.1938171386719,Z:-0.5249344110488892),和

最大:(X:1284.9295654296875,Y:527.90869140625,Z:13.123359680175781)

此外,我做了以下初步假设:

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

但是,如果边界框位于测量点(元素的 X 和 Y 位于相对于测量点的 149326 和 380492 处),或者位于项目上,则边界框的信息(X 和 Y 范围分别为 1229-1284 和 471-527)似乎不包含房间模型内定义的元素的坐标基点(元素的 X & Y 位于 -117 & 9444 相对于项目基点)。

另外,引用this问题,模型坐标可能会通过此命令获取的全局偏移量进行偏移:(viewerApp.getCurrentViewer().model.getData().globalOffset)。但是,当我运行此命令时,会返回 (0, 0, 0) 。假设如果偏移量在某种程度上是正确的,则北距/东距到 Forge 的 X/Y 的单位缩放比例似乎与我的假设不同。

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

  • 如果我的单位假设有问题,北距/东距单位如何转换为 Forge Viewer 的 X 和 Y 单位?
  • 如果除了第一个假设之外我的原点假设也是错误的,Forge 如何在查看器中设置原点?如果原点基于Revit模型,设置的原点是否指模型的测量点/项目基点?
  • 模型派生 API 执行模型转换时是否会对 Revit 模型及其元素进行任何其他转换?

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

最佳答案

如果我理解正确,您似乎使用项目坐标放置了 Revit 模型,但仅提取了项目地址属性。

other answer 中所述您指出,模型以原点为中心,并且 globalOffset 指示该值。

您可能需要根据模型的单位调整边界框,我建议检查 this answer .

关于node.js - 了解Revit图元上传到Forge平台后的坐标系转换和引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51873847/

相关文章:

node.js - Travis CI,使用 mocha 进行 npm 测试时出错

javascript - 在客户端 JavaScript 代码中重用 Node.js 中的 Web 模型

ios - 在 ARKit 中获取设备围绕世界原点 y 轴的旋转

c++ - 学习用 C++ 创建动画

javascript - 关于 extract.autodesk.io 的问题 - 采用文件路径而不是使用文件选择器进行选择

node.js - 即使我将内容类型放入 header 中,请求也会返回无效或不存在的内容类型

android - React Native on Android : Cannot run program "node": error=2, 没有这样的文件或目录

node.js - Cordova 构建错误 : Use of const in strict mode

opengl - 如何将兼容 HDMI 1.4a 的立体信号从 OpenGL 应用程序输出到 3DTV?

node.js - Autodesk Forge API a-401 错误