Просмотрщик кузницы: увеличьте актив внутри комнаты (перед активом)

Я использую JS Forge Viewer.

Я пытаюсь выбрать актив в здании, а затем увеличить его с помощью камеры в комнате, где находится актив. Я пытаюсь использовать

let boundingBox = this.viewer.utilities.getBoundingBox(false); this.viewer.navigation.fitBounds(false, boundingBox, true);

Но это увеличит, но не в правильном направлении (если быть точным снаружи)

Можно ли автоматически определить переднюю часть актива, повернуть камеру и увеличить масштаб?

1 ответ

Решение

Извиняюсь за долгое ожидание. Команда разработчиков подтвердила, что Revit room не будет переведен в процедуру перевода службы Model Derivative. Поэтому функции, связанные с помещением, или API-интерфейсы не поддерживаются в настоящее время в Forge Viewer.

Кроме того, мы обнаружили, что ваш запрос API для увеличения актива внутри комнаты подходит только для приложения BIM, разработанного с использованием технологии Forge, и на основании этого запроса может быть много разных вариантов использования. Поэтому сложно разработать общую функцию или API для вашего запроса в Forge Viewer. Поэтому он может не поддерживаться в будущих выпусках Forge Viewer.

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

  1. Откройте ваш проект Revit с элементами комнаты только через Navisworks и загрузите в Forge для перевода, используйте этот результат также в качестве дополнительной модели вашего приложения Viewer. [Вот немного информации. о комнате от моего коллеги ( ссылка)].
  2. Конвертировать фрагменты выбранного ресурса в вашем приложении в чистый THREE.Geometry, [Вот пример для доступа к информации о сетке. Forge Viewer ( ссылка)].
  3. вычисление BoundingSphere из THREE.Geometry от step. 2 и обрабатывать центр сферы как центральную точку выбранного актива.
  4. Делать Three.js raytracing с геометрией комнаты от BoundingSphere центр, чтобы найти лучи без каких-либо препятствий между камерой и выбранным активом. [Вот пример, который показывает, как использовать трассировку лучей Three.js с помощью Forge Viewer ( ссылка)].
  5. Лечить лучами, полученными от step. 4 как линии взгляда.
  6. Выберите желаемую линию взгляда из step. 5 пересчитать положение, цель и поворот камеры.


PS Так как это всего лишь обходной путь, а не формальное решение. Вы должны использовать его на свой страх и риск.

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