【问题标题】:Forge viewer: Zoom in on a asset inside a room (front of the asset)伪造查看器:放大房间内的资产(资产正面)
【发布时间】:2017-11-03 23:33:28
【问题描述】:

我正在使用 JS forge 查看器。

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

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

但这会放大但不是正确的方向(准确地说是从外面)

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

【问题讨论】:

  • 根据我的拇指可能目前不可用,在翻译过程中将删除房间几何图形。我将与开发团队核实这一点并尽快回复您
  • @EasonKang 好的,我等你的回复。提前致谢。

标签: javascript autodesk-forge forge


【解决方案1】:

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

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

但是,我们鼓励像您这样的开发人员自行实现此功能,以下是适合您的解决方法:

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


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

【讨论】:

    猜你喜欢
    • 2021-04-23
    • 2019-11-28
    • 2018-11-16
    • 1970-01-01
    • 2021-03-25
    • 1970-01-01
    • 2018-12-03
    • 2021-03-14
    • 1970-01-01
    相关资源
    最近更新 更多