Autodesk forge 单击从autodesk forge viewer画布获取位置

Autodesk forge 单击从autodesk forge viewer画布获取位置,autodesk-forge,autodesk-viewer,revit-api,Autodesk Forge,Autodesk Viewer,Revit Api,我正在尝试使用API更新Revit模型。 我已经有了API,它们接受我想要添加资产或对象的3D向量位置。 这里的问题是当我做一个命中测试时 this.viewer.clientToWorld(evt.clientX, evt.clientY, true); 我在这里得到的位置似乎可以很好地将对象放置在查看器上,但当我将相同的位置发送到Revit API时,对象似乎添加到实际单击之外 所以我想理解的是我做错了什么 Revit软件是否有其他坐标系需要从位置向量转换 我也曾尝试过计算全局偏移量,但即

我正在尝试使用API更新Revit模型。 我已经有了API,它们接受我想要添加资产或对象的3D向量位置。 这里的问题是当我做一个命中测试时

this.viewer.clientToWorld(evt.clientX, evt.clientY, true);
我在这里得到的位置似乎可以很好地将对象放置在查看器上,但当我将相同的位置发送到Revit API时,对象似乎添加到实际单击之外

所以我想理解的是我做错了什么 Revit软件是否有其他坐标系需要从位置向量转换

我也曾尝试过计算全局偏移量,但即使这样也不起作用

var offset = viewer.model.getData().globalOffset
我得到的偏移量的值是

 {x: -36.83258967447005, y: 3.198711699197691, z: 45.28371391552952}
所以我从命中测试中得到的位置/交点 是的


请提供有关您尝试使用
globalOffset
但无效的方法的更多详细信息。是否存在
globalOffset
,还是
(0,0,0)
?@RahulBhobe我更新了我的问题检查这个答案,它再次引用了另外两个答案。您必须考虑平移(偏移)和缩放(单位),并生成从查看器到模型的适当转换@RahulBhobe谢谢你提到这一点,我在这里发布问题之前已经讨论了这一点,所以你能告诉我如何使用磅秤吗?你能提供任何参考吗?>不幸的是,我没有这方面的示例代码。我曾在内部询问是否有人这样做。独立地,如果发布
getUnitScale()
的值,您可能会更快地找到有关堆栈溢出的帮助。以及显示如何在Revit API中生成和应用转换的最少代码。以及您的预期与实际结果。
const worldCoords = hittest.point.clone().sub(offset);