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

28/02/2021

Design Automation: Задаем несколько AppBundle-ов в одной Activity

Ранее мы уже обсуждали запуск собственных утилит в WorkItem  (на нашем сайте есть перевод этой статьи). В этой статье мы показали, как использовать в одной Activity несколько AppBundle-ов. Тем не менее, хотелось бы посвятить этому вопросу отдельную статью.

На мой взгляд, есть две основные причины использования нескольких AppBundle-ов в одной Activity.

a) Модульность.

Вам может оказаться по душе идея разделить логику задачи на несколько отдельных компонентов вместо того, чтобы размещать всю логику в одном большом AppBundle. Например, у Вас есть AppBundle, который (1) обновляет параметры в сборке, (2) создает чертежи, (3) экспортирует их в PDF. Тогда его можно разделить на 3 отдельных AppBundle-а. У этого подхода имеются как достоинства, так и недостатки.

Достоинства: разделив логику на независимые модули, вы сможете повторно использовать их, возможно, совмещая с другими AppBundle-ами в новых Activity.

Недостатки: при запуске WorkItem-ов появляются дополнительные накладные расходы, поскольку InventorCoreConsole.exe может загружать AppBundle-ы по одному (я полагаю, так же, как и версия Revit для Design Automation). Так, для примера выше, Activity потребуется запускать InventorCoreConsole.exe трижды, трижды открывая исходные модели. Командная строка этой Activity может выглядеть следующим образом:

Код - JavaScript: [Выделить]
  1. "commandLine" : [
  2.   "$(engine.path)\\InventorCoreConsole.exe /al $(appbundles[UpdateParameters].path)",
  3.   "$(engine.path)\\InventorCoreConsole.exe /al $(appbundles[CreateDrawing].path)",
  4.   "$(engine.path)\\InventorCoreConsole.exe /al $(appbundles[CreatePDF].path)"
  5. ]

б) Распределение ресурсов

Как мы уже упоминали в статье Оптимизация процессов в сервисе Design Automation, Вы можете уменьшить время обработки workItem-а путём сокращения фазы загрузки необходимых приложению ресурсов, разместив эти ресурсы в AppBundle. Тем не менее, сервисы Design Automation накладывают ограничения на размеры AppBundle-ов, см. подробнее здесь. Разместив ресурсы в нескольких AppBundle-ах, Вы сможете сможете обойти его. Более того, в некоторых случаях есть смысл раделить ресурсы на несколько AppBundle-ов даже если Ваш изначальный AppBundle укладывается в отведенные сервисом лимиты.

 

Источник: https://forge.autodesk.com/blog/use-multiple-app-bundles

Автор перевода: Александр Игнатович
Опубликовано 28.02.2021