BimPublisher как автоматизация
Для Tekla есть самый популярный вариант полной автоматизации - это BimPublisher. Из названия понятно, что BimPublisher предназначен для публикации чего-то. И его даже можно использовать для других задач, не относящихся к экспорту. Для этих задач мы можем использовать макросы, которые запускаются перед экспортом (в BimPublisher это Run these macros before exports) и после экспорта (в BimPublisher это Run these macros after exports). Пример такой автоматизации можно найти в статье из раздела Tekla User Assistance про автоматическое обновление моделей из Model Sharing.
Проблема BimPublisher
Почему бы тогда не остановится на BimPublisher и пользоваться им для наших задач, зачем что-то придумывать? Проблема в том, что BimPublisher запускает Tekla с UI, который нужен человеку. Но у нас-то не будет никакого человека, который будет пользоваться Tekla, Tekla будет использоваться программой - т.е. нашим скриптом. Следовательно UI нам не нужен, но запуск Tekla и открытие модели большей частью состоит из загрузки UI.
Headless Tekla
Решением проблемы является Headless Tekla, пример можно найти в официальном репозитории Trimble на GitHub. Headless Tekla находится в сборке Tekla.Structures.Service
, а ее API не выпущен официально, поэтому в справке отсутствует документация. Но благодаря примеру можно быстро разобраться что к чему. Немного изменю файл Program.cs
из примера и приведу его здесь с комментариями:
|
|
Этот код можно использовать чтобы открыть модель Tekla в headless режиме, после чего можно обращаться к открытой модели с помощью Tekla Open API. В следующей статье рассмотрим какие есть преимущества у этого подхода с точки зрения производительности.