ADN Open CIS
Сообщество программистов Autodesk в СНГ

17/10/2017

Поддержка нескольких моделей в новой ModelStructurePanel

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

Мы еще не находимся в этой версии. На момент написания этой статьи текущая версия Viewer v.3.1.2 и недавние усовершенствования Model Structure Browser нарушают простую обходную процедуру, которая использовалась для переключения содержимого дерева модели, используя приведенный ниже подход: 

Код - JavaScript: [Выделить]
  1. function setActiveModel(model) {
  2.  
  3.   var instanceTree = model.getData().instanceTree;
  4.   viewer.modelstructure.setModel(instanceTree);
  5. }

Обходной путь теперь более сложен и требует внутренней модификации нескольких компонентов дерева модели. Вот почему я создал для вас сценарий замены вставкой. Просто включите этот код в свое приложение, и он позаботится о исправлении необходимых типов в API viewer3D.js. Вам все равно необходимо программно переключить активную модель в браузере с помощью приведенного выше кода, используя, например, AGGREGATE_SELECTION_CHANGED_EVENT.

 

Вот некоторые предыдущие статьи, которые могут оказаться полезными при работе в многомодельной среде:

Подготовка вашего приложения для просмотра многомодельных рабочих процессов - Часть I

Подготовка вашего приложения для просмотра многомодельных рабочих процессов - Часть II.

Демо-версия модели Loader доступна отсюда и вы также можете играть с 3-legged версией, которая может объединить ваши собственные модели из A360 и модели из галереи Forge RCDB.

Исходный код доступен здесь: https://gist.github.com/leefsmp/af38a1477a74ee8407eff4d2a37a0f71

Источник: https://forge.autodesk.com/blog/supporting-multiple-models-new-modelstructurepanel

Автор перевода: Дмитрий Емельянов

Обсуждение: http://adn-cis.org/forum/index.php?topic=8101

Опубликовано 17.10.2017