【问题标题】:Autodesk Forge Viewer - Getting different values dbId from "viewer.model.search" and "viewer.getSelection()"Autodesk Forge 查看器 - 从“viewer.model.search”和“viewer.getSelection()”获取不同的值 dbId
【发布时间】:2019-07-31 14:03:42
【问题描述】:

我正在尝试隔离一些我使用方法 viewer.model.search 搜索的元素,但是当我使用 viewer.isolate 方法时,我会隐藏所有内容。

我已经使用getSelection 来隔离元素,我注意到它们为同一元素提供了不同的 dbId 值。使用getSelection dbId 有效,但使用search 无效

有人有同样的错误吗?

2019 年 3 月 11 日更新:
当我试图弄清楚发生了什么时,我意识到search 方法给你的数字是减一,例如:如果你用getSelection 得到数字2302,search 给你的数字是2301。

这是一个错误吗?

【问题讨论】:

    标签: javascript autodesk-forge autodesk-viewer autodesk


    【解决方案1】:

    差异可能是由那些 dbId 代表层次结构中不同级别的相同元素造成的。当您通过单击在 UI 中选择某些内容时,然后是叶子(层次结构树中的最低元素,通常是 body 或 solid ) 被选中。

    您可以在 Hierarchy Browser 面板中查看正在选择的确切节点:

    同样讲到这个现象,这里有一篇关于覆盖在哪个层级选择元素的文章: Selection override

    编辑:Body 和 Solid 叶实体的父级的 dbId 数往往比叶本身的 dbId 少 1,如下图所示:

    【讨论】:

    • 嗨,亚当,感谢您的回答。但是我已经放弃了这个选项,因为我查找了每个组 id 并且没有一个等于“搜索”给我的那个。尝试了一段时间后,我发现“搜索”方法给了我数字 - 1。
    • 这正好指向我所指出的方向 - 请参阅编辑后的回复。
    • 这篇关于快速测试的文章也可能会派上用场https://forge.autodesk.com/blog/do-simple-viewer-api-tests-quickly
    • 所以我得到了搜索在该组中找到的第一个元素。有没有办法获取所有元素而不是组中的第一个?
    • 我想我不妨为此写一篇博文。我希望它包含您需要的一切:search returns different dbId than selection in UI
    猜你喜欢
    • 2017-02-13
    • 2021-05-08
    • 2020-07-05
    • 2021-05-27
    • 2021-12-19
    • 2020-09-06
    • 2021-11-12
    • 1970-01-01
    • 2021-09-19
    相关资源
    最近更新 更多