Получение идентификаторов элементов изолированных или разрезаемых объектов в autodesk forge

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

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
553
1

Ответы 1

Чтобы получить изолированные идентификаторы, используйте это:

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

который вернет массив идентификаторов, как показано на диаграмме.

isolatedShaver.jpg

Чтобы получить свойство 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

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

Надеюсь, это поможет.

Объяснил очень хорошо, спасибо!

melledijkstra 08.04.2018 16:17

Другие вопросы по теме