Forge viewer:放大房间内的资产(资产的前面)

时间:2017-06-02 14:05:53

标签: javascript autodesk-forge forge

我正在使用JS forge查看器。

我正在尝试在建筑物中选择资产,然后使用资产所在房间内的摄像头放大它。我正在尝试使用

let boundingBox = this.viewer.utilities.getBoundingBox(false); this.viewer.navigation.fitBounds(false, boundingBox, true);

但是这会放大而不是正确的方向(从外面来看准确) enter image description here

是否可以自动检测资产的正面,将相机旋转到此然后放大?

1 个答案:

答案 0 :(得分:1)

为漫长的等待而道歉。开发团队已经确认,Revit room不会在模型衍生服务的翻译过程中被翻译。因此,Forge Viewer目前不支持与房间相关的功能或API。

此外,我们发现您的API请求,放大房间内的资产,仅适用于使用Forge技术开发的BIM应用程序,并且可能有许多不同类型的用例基于此请求。因此,在Forge Viewer中为您的请求设计通用函数或API很困难。因此,Forge Viewer的未来版本可能不支持它。

但是,我们鼓励像您这样的开发人员自己实现此功能,这里有一个解决方法:

  1. 通过Navisworks使用会议室元素 打开您的Revit项目,然后上传到Forge进行翻译,并将此结果用作查看器应用的辅助模型。 [这是一些信息。关于我同事的房间(link)]。
  2. 将应用中所选资产的片段转换为纯THREE.Geometry。 [这是访问网格信息的示例。 Forge Viewer(link)]。
  3. BoundingSphere计算THREE.Geometry的{​​{1}},并将球体中心视为所选资产的中心点。
  4. 使用step. 2中心的房间几何图形Three.js raytracing来查找一些光线,相机和所选资源之间没有任何障碍物。 [这是一个示例,显示如何使用Forge Viewer(link)]使用Three.js光线跟踪。
  5. 将来自BoundingSphere的光线视为视线。
  6. step. 4中选择所需的视线,以重新计算相机的位置,目标和枢轴。

  7. <强> P.S。因为这只是一种解决方法,而不是正式的解决方案。您必须自担风险使用它。