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 может выглядеть следующим образом:
- "commandLine" : [
- "$(engine.path)\\InventorCoreConsole.exe /al $(appbundles[UpdateParameters].path)",
- "$(engine.path)\\InventorCoreConsole.exe /al $(appbundles[CreateDrawing].path)",
- "$(engine.path)\\InventorCoreConsole.exe /al $(appbundles[CreatePDF].path)"
- ]
б) Распределение ресурсов
Как мы уже упоминали в статье Оптимизация процессов в сервисе Design Automation, Вы можете уменьшить время обработки workItem-а путём сокращения фазы загрузки необходимых приложению ресурсов, разместив эти ресурсы в AppBundle. Тем не менее, сервисы Design Automation накладывают ограничения на размеры AppBundle-ов, см. подробнее здесь. Разместив ресурсы в нескольких AppBundle-ах, Вы сможете сможете обойти его. Более того, в некоторых случаях есть смысл раделить ресурсы на несколько AppBundle-ов даже если Ваш изначальный AppBundle укладывается в отведенные сервисом лимиты.
Источник: https://forge.autodesk.com/blog/use-multiple-app-bundles
Опубликовано 28.02.2021