2017-06-02 40 views
0

我正在使用JS forge查看器。Forge viewer:放大房间内的资产(资产前面)

我试图选择建筑物中的资产,然后使用资产所在房间内的相机对其进行放大。我试图用

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

但是,这会放大,但没有朝着正确的方向(从外到准确) enter image description here

是否有可能全自动检测资产的前方,转动相机到这个,然后放大?

+0

根据我的拇指,它可能不可用,房间的几何图形将在翻译过程中被删除。我将与开发团队核对一下,并回复你A.S.A.P. –

+0

@EasonKang好吧,我会等你的回复。提前致谢。 – Rockernaap

回答

1

长时间等待道歉。开发团队已确认Revit会议室不会翻译为模型衍生服务的翻译程序。因此,Forge Viewer目前不支持与房间相关的功能或API。

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

然而,我们鼓励开发者喜欢你自己来实现此功能,并在这里对你是一个解决办法:

  1. 打开Revit项目与房间元素只能通过Navisworks中,并上传为了翻译,请将此结果用作查看器应用程序的辅助模型。 [这是一些信息。关于我的同事的房间(link)]。
  2. 将您应用中所选资产的片段转换为纯粹的THREE.Geometry。 [这是一个访问网格信息的例子。 Forge Viewer(link)]。
  3. step. 2中计算THREE.Geometry的计算BoundingSphere,并将球体中心视为所选资产的中心点。
  4. Three.js raytracingBoundingSphere中心的房间几何图形,以找到一些没有任何阻碍摄像机和所选资产之间的光线。 [这是一个示例,显示如何使用Forge Viewer(link)]使用Three.js光线跟踪。
  5. 治疗来自step. 4的射线为视线。
  6. step. 5中选择所需的视线以重新计算摄像机的位置,目标和支点。


附:由于这只是一个解决方法,而不是正式的解决方案。您必须自行承担风险才能使用它。