gpt4 book ai didi

javascript - 锻造查看器 : Zoom in on a asset inside a room (front of the asset)

转载 作者:行者123 更新时间:2023-12-03 04:11:04 24 4
gpt4 key购买 nike

我正在使用 JS forge 查看器。

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

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

但这会放大,但不是正确的方向(准确地说是从外部) enter image description here

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

最佳答案

抱歉让您久等了。经开发团队确认,在Model Derivative服务的翻译过程中,Revit room不会被翻译。因此,Forge Viewer 目前不支持房间相关功能或 API。

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

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

  1. 通过 Navisworks 打开包含房间元素的 Revit 项目,然后上传到 Forge 进行翻译,也可以将此结果用作查看器应用程序的辅助模型。 [这是一些信息。我的同事 ( link )] 介绍了房间。
  2. 将应用中所选资源的片段转换为纯 THREE.Geometry。 [这是访问网格信息的示例。 Forge 查看器 ( link )]。
  3. 根据步骤计算THREE.GeometryBoundingSphere。 2,将球心视为所选资源的中心点。
  4. 使用来自 BoundingSphere 中心的房间几何图形进行 Three.js 光线追踪,以查找相机和所选资源之间没有任何遮挡的光线。 [以下示例展示了如何将 Three.js 光线追踪与 Forge Viewer ( link ) 结合使用]。
  5. 处理从步骤获得的射线。 4作为视线。
  6. 步骤中选择所需的视线。 5重新计算相机的位置、目标和枢轴。


附注因为这只是一个解决方法,而不是正式的解决方案。您必须自行承担使用它的风险。

关于javascript - 锻造查看器 : Zoom in on a asset inside a room (front of the asset),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44330902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com