【问题标题】:Select multiple objects in Autodesk Forge viewer在 Autodesk Forge 查看器中选择多个对象
【发布时间】:2023-03-06 20:00:01
【问题描述】:

我的场景:

我正在读取 IFC 文件(使用 api/forge/modelderivative/modelViewProperties)并使用 IFC 类型对对象进行分类。

因此,当您单击特定类型时,我需要选择对象/突出显示。

例如:如果您点击类型“IFCBUILDINGSTOREY”,模型应该能够突出显示像 level1、level2 等子对象...

目前我都试过了

viewerApp.getCurrentViewer().isolateById(idArray)

viewerApp.getCurrentViewer().select(idArray, Autodesk.Viewing.SelectionMode.REGULAR );

但似乎没有任何效果...有什么建议吗?

谢谢

编辑:

版本

  <script src="https://developer.api.autodesk.com/modelderivative/v2/viewers/6.*/viewer3D.min.js"></script>

和 JAVA SDK

        <dependency>
            <groupId>com.autodesk</groupId>
            <artifactId>forge-java-sdk</artifactId>
            <version>1.0.1</version>
        </dependency> 

我正在使用“forgeviewer/api/forge/modelderivative/modelViewProperties”获取属性

【问题讨论】:

  • 您能否提供有关您的用例的更多信息?您使用的是什么版本的查看器?您究竟如何获得 IFCBUILDINGSTOREY 类型(idArray)的对象列表?

标签: autodesk-forge autodesk-viewer


【解决方案1】:

有多种方法可以搜索具有特定属性的对象。通常您可以使用search 方法。这将返回在其属性名称或属性值之一中包含特定短语的所有对象的 ID。然后,您可以从该列表中根据需要进一步过滤对象,例如,通过使用 getProperties 方法获取单个对象的属性,或通过使用 getBulkProperties 方法一次请求多个对象的属性。

获得感兴趣的对象的 ID 后,您可以用不同的方式突出显示它们,例如,使用 select 方法选择它们,或使用 isolate 方法隐藏除这些对象之外的所有其他内容。

【讨论】:

  • 是的,我尝试了您提到的两种方法,如果您可以看到我已经复制了原始帖子中的代码。唯一的问题是当你传递一个数组时它没有被突出显示,适用于单个 Id。
  • 这就是我询问您正在使用的查看器版本的原因。在最新版本 (7.*) 中,isolate 方法既支持单个数字也支持数字数组。
  • 那是一个非常老的版本,可能当时还没有隔离多个对象。
  • 欧特克JAVA SDK: com-autodesk-client 1.0.1版本正在使用中,我会尝试迁移版本,谢谢
  • 您好,实际上我正在使用 V6*
猜你喜欢
  • 2021-11-12
  • 1970-01-01
  • 2018-03-16
  • 2019-07-19
  • 2017-05-06
  • 2021-09-19
  • 2021-02-24
  • 2018-07-11
  • 2020-10-23
相关资源
最近更新 更多