【发布时间】:2018-09-16 00:47:31
【问题描述】:
我正在尝试显示在模型中隔离的元素名称和属性的列表,或者在模型中被切割的部分中显示的元素。有什么方法可以获取模型的元素ID,它的部分被切割或被隔离的元素。
【问题讨论】:
标签: javascript autodesk-forge viewer
我正在尝试显示在模型中隔离的元素名称和属性的列表,或者在模型中被切割的部分中显示的元素。有什么方法可以获取模型的元素ID,它的部分被切割或被隔离的元素。
【问题讨论】:
标签: javascript autodesk-forge viewer
要检索隔离的 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
如果你在一个平面上进行剖切,那么你可以大大简化代码,但概念是一样的。
希望对您有所帮助。
【讨论】: