【问题标题】:Get element Ids of isolated or cut-section objects in autodesk forge在 Autodesk forge 中获取孤立或剖切对象的元素 ID
【发布时间】:2018-09-16 00:47:31
【问题描述】:

我正在尝试显示在模型中隔离的元素名称和属性的列表,或者在模型中被切割的部分中显示的元素。有什么方法可以获取模型的元素ID,它的部分被切割或被隔离的元素。

【问题讨论】:

    标签: javascript autodesk-forge viewer


    【解决方案1】:

    要检索隔离的 ID,请使用以下命令:

    > NOP_VIEWER.getIsolatedNodes()
    [8, 14, 38, 47]
    

    这将返回一个 ID 数组,如图所示。

    要检索 ID 14 的属性,请使用:

    > NOP_VIEWER.model.getProperties( 14, i=>console.log(i)) 
    {dbId: 14, properties: Array(2), externalId: "xobxtGd+JEWr+mJcpKnNyg", name: "NOR-P-001:1" ...etc}
    

    你可以在这个返回的对象中找到所有的属性,具体来说,检查'properties'数组。

    除了隔离状态,还有隐藏状态和选择状态,您可以从视图状态中检索它们,如下所示:

    > NOP_VIEWER.getState().objectSet[0]
    {id: [14], isolated: [8, 14, 38, 47], hidden: [], explodeScale: 0.21, idType: "lmv"}
    

    请注意,id 14(绿色箭头)既被隔离又被选中。

    要检索由于截面框而隐藏的 ID 列表,您需要找到截面框 AABB 中的所有对象,然后从整个模型列表中减去该列表。请参阅 Philippe Leefsma 撰写的这篇很棒的博文,了解如何在边界框中查找对象:https://forge.autodesk.com/blog/custom-window-selection-forge-viewer-part-ii

    如果你在一个平面上进行剖切,那么你可以大大简化代码,但概念是一样的。

    希望对您有所帮助。

    【讨论】:

    • 解释的很好,谢谢!
    猜你喜欢
    • 2017-05-05
    • 2018-02-27
    • 2018-05-06
    • 2021-12-31
    • 2018-12-08
    • 2018-01-14
    • 2017-05-07
    • 1970-01-01
    • 2021-05-06
    相关资源
    最近更新 更多