Я пытаюсь показать список имен элементов и свойств, которые изолированы в модели, или элементы, которые показаны в разрезе в модели. Есть ли способ получить идентификаторы элементов модели, секция которой вырезана, или изолированные элементы.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Чтобы получить изолированные идентификаторы, используйте это:
> NOP_VIEWER.getIsolatedNodes()
[8, 14, 38, 47]
который вернет массив идентификаторов, как показано на диаграмме.
Чтобы получить свойство ID 14, используйте это:
> NOP_VIEWER.model.getProperties( 14, i=>console.info(i))
{dbId: 14, properties: Array(2), externalId: "xobxtGd+JEWr+mJcpKnNyg", name: "NOR-P-001:1" ...etc}
Вы можете найти все атрибуты в этом возвращаемом объекте, в частности, проверить массив свойств.
Помимо изолированного состояния, есть также скрытое и выделенное состояние, которое вы можете получить из состояния просмотра, например:
> NOP_VIEWER.getState().objectSet[0]
{id: [14], isolated: [8, 14, 38, 47], hidden: [], explodeScale: 0.21, idType: "lmv"}
Обратите внимание, что идентификатор 14 (зеленая стрелка) изолирован и выбран.
Чтобы получить список идентификаторов, скрытых из-за поля сечения, вам нужно будет найти все объекты в поле сечения AABB и вычесть этот список из всего списка модели. Пожалуйста, обратитесь к этому замечательному сообщению в блоге Филиппа Лифсмы о том, как найти объекты в ограничивающей рамке: https://forge.autodesk.com/blog/custom-window-selection-forge-viewer-part-ii
Если вы выполняете секционирование в одной плоскости, вы можете значительно упростить код, но концепция остается той же.
Надеюсь, это поможет.
Объяснил очень хорошо, спасибо!