我正在使用JS forge查看器。
我正在尝试在建筑物中选择资产,然后使用资产所在房间内的摄像头放大它。我正在尝试使用
let boundingBox = this.viewer.utilities.getBoundingBox(false);
this.viewer.navigation.fitBounds(false, boundingBox, true);
是否可以自动检测资产的正面,将相机旋转到此然后放大?
答案 0 :(得分:1)
为漫长的等待而道歉。开发团队已经确认,Revit room不会在模型衍生服务的翻译过程中被翻译。因此,Forge Viewer目前不支持与房间相关的功能或API。
此外,我们发现您的API请求,放大房间内的资产,仅适用于使用Forge技术开发的BIM应用程序,并且可能有许多不同类型的用例基于此请求。因此,在Forge Viewer中为您的请求设计通用函数或API很困难。因此,Forge Viewer的未来版本可能不支持它。
但是,我们鼓励像您这样的开发人员自己实现此功能,这里有一个解决方法:
THREE.Geometry
。 [这是访问网格信息的示例。 Forge Viewer(link)]。BoundingSphere
计算THREE.Geometry
的{{1}},并将球体中心视为所选资产的中心点。step. 2
中心的房间几何图形Three.js raytracing
来查找一些光线,相机和所选资源之间没有任何障碍物。 [这是一个示例,显示如何使用Forge Viewer(link)]使用Three.js光线跟踪。BoundingSphere
的光线视为视线。step. 4
中选择所需的视线,以重新计算相机的位置,目标和枢轴。
<强> P.S。因为这只是一种解决方法,而不是正式的解决方案。您必须自担风险使用它。