Система синхронизации моделей при помощи Tangl. Принцип работы.
Система синхронизации моделей при помощи Tangl. Принцип работы.
Tangl может связывать три части: внешнюю систему, облачный сервис Tangl Cloud и фермы с Autodesk Revit. Посредник в этом процессе — Координатор в Tangl Cloud, благодаря которому процесс обработки становится автоматическим.
Revit-ферма
Автоматическое преобразование моделей формата .rvt в формат Tangl, используя воркеры, осуществляется Revit-фермой.
Revit-ферма содержит:
- Координатор – размещён в облачной инфраструктуре Tangl Cloud, управляет процессом запуска и мониторинга заданий на экспорт.
- Агент Revit – представляет собой службу Windows, принимающую задачи от координатора и передающую их дальше на установленную копию Revit с плагином Tangl.
- Плагин Tangl для Revit – обеспечивает взаимодействие с агентом и обработку поступающих задач на экспорт.
Схема Revit-фермы:

Процесс работы:
- Внешняя система генерирует запрос на экспорт модели и направляет его в облачную инфраструктуру Tangl Cloud.
- Координатор выбирает доступный свободный агент и назначает ему данную задачу.
- Агент Revit получает задачу и переправляет её плагину Tangl для Revit, который выполняет непосредственное преобразование файла.
- Завершив преобразование, плагин отправляет готовый файл обратно на сервер Tangl Cloud.
Установка и запуск агентов и воркеров для синхронизации моделей
Предварительно, для корректной работы системы синхронизации моделей с помощью Tangl необходимо наличие установленного плагина Tangl для Revit, установленного Агент Revit и настроенные воркеры Revit.
Воркер Revit – запущенный Revit с установленным и авторизованным плагином Tangl, который работает в режиме воркера. Его задача — конвертировать и обрабатывать экспортируемые модели по поручениям, полученным от Координатора, без участия пользователя в самой Revit-сессии.
Агент Revit – это служба, координирующая запущенные воркеры Revit на одном ПК.
Установка Агента Revit
- Скачать установщик Tangl Revit Agent из Личного кабинета.
- Запустить установщик с правами администратора:
- Нажать правой кнопкой мыши на загруженный файл установщика
- Выбрать в меню пункт «Запуск от имени администратора».
После установки в списке служб Windows появится служба TanglRevitAgent, которая будет запускаться автоматически при запуске ПК.

Настройка воркера Revit
Для настройки воркера Revit необходимо:
- Установить плагин для Revit из личного кабинета, подробнее в статье Установка плагина для Revit.
- Авторизоваться в плагине, выбрать необходимую компанию.
- Открыть настройки плагина и отметить опцию Режим воркера.

- (Опционально) Ввести Personal Access Token
- Нажать «Ок» для сохранения изменений.
- Revit подключится к Агенту и будет доступен для задач экспорта моделей.
Внимание!
При получении задачи на экспорт работа текущего пользователя в Revit временно прекратится, и начнется процедура экспорта модели, инициированная Координатором.
Чтобы предотвратить потерю текущих изменений и рабочих файлов, рекомендуется активировать режим воркера только на отдельных копиях Revit, предназначенных исключительно для автоматического экспорта моделей и не используемых пользователями для непосредственной работы над проектами.
При использовании Revit в режиме воркера рекомендуется использовать Personal Access Token т.к. обычные токены авторизации, используемые в плагине, имеют ограниченный срок действия и по истечению срока действия токена воркер перестанет принимать работы и отправлять модели. (Получение и управление Personal Access Token описано в статье Управление Токенами)
Ошибки подключения
Если по какой-либо причине воркеру Revit не удалось подключиться к Агенту, или к Координатору, отобразится окно с информацией об ошибке. Для повторного подключения необходимо будет повторно зайти в настройки и повторно отметить опцию Режим воркера.
Если по каким-то причинам воркер Revit не смог подключиться к Агенту или Координатору, откроется окно с сообщением об ошибке. Для повторной попытки подключения следует снова открыть настройки плагина и заново отметить опцию Режим воркера.

Экспорт модели
При поступлении HTTP-запроса типа «Экспорт файла Х для компании Y» Координатор определяет, к какой компании он относится, проверяет наличие подключённых агентов для этой компании и, если агенты есть, направляет задание одному из них.
Агентов может быть много: для разных компаний — свои наборы агентов.
Агент получает команду, скачивает модель по предоставленной ссылке, открывает её в плагине Tangl для Revit и выполняет экспорт. В процессе выполнения агент отправляет координатору прогресс: подтверждения скачивания, процент выполнения, успех или провал. По завершении агент отсылает модель в облако и отмечает задачу как успешно выполненную.
Ошибки при работе
Если обработка файла прошла неудачно (невозможно скачать файл, ошибка при обработке), задача помечается как завершённая с ошибкой и автоматически не перезапускается. Однако существуют сценарии автоматической постановки задачи в очередь заново:
- Если агент недоступен в момент поступления задачи или сообщение не было принято агентом (потеря связи, закрытие приложения Revit).
- Повторные проверки происходят каждые пять минут вплоть до появления подходящего агента или изменения состояния задачи.
- В случае разрыва соединения между агентом и координатором во время обработки задачи агент продолжает выполнение локально. Когда соединение восстанавливается, агент должен подтвердить завершение процесса и отправить итоговую модель. Таким образом, несмотря на временное отсутствие связи, задача считается завершённой после успешного подключения и отправки результата.
Мониторинг и управление через административную панель
Для управления синхронизацией и воркерами используется административный интерфейс, расположенный в Tangl Cloud. Инфраструктура мониторинга разделена на две вкладки:
- Работы;
- Воркеры.

На вкладке Работа представлен список всех запущенных процессов экспорта. Таблица позволяет отслеживать прогресс, и выявлять ошибки на разных этапах выполнения. Содержит столбцы:
- Имя модели – наименование модели, отправленной на обработку;
- Статус – отображает текущее состояние задачи. В случае ошибки выполнения текст статуса при наведении будет отображать текст ошибки, доступный для копирования.
- % – индикатор прогресса выполнения задачи в процентном соотношении;
- Дата создания – дата и время создания задачи;
- Дата изменения – дата последнего обновления статуса или параметров задачи;
- Адрес модели – локальный или сетевой путь к файлу исходной модели;
- id задачи – уникальный идентификатор процесса;
- id агента – идентификатор вычислительного узла (воркера), выполняющего задачу;
- id модели – Внутренний системный идентификатор модели в базе данных;
- Действия – в столбце расположены кнопки управления задачей:
- Отменить – для остановки выполнения задачи;
- Удалить –для удаления задачи.
Отображение столбцов id задачи, id агента и id модели настраиваемое, значения в столбцах отображаются и скрываются взаимозаменяемыми кнопками "Показать значения/ Скрыть значения".

Создание новой задачи на экспорт производится при нажатии кнопки "Создать работу". Откроется окно, в котором нужно указать:
- Имя модели – нужно указать наименование модели, экспорт которой будет производиться;
- Версия модели – выбрать из выпадающего списка год версии программного обеспечения, в котором подготовлена модель;
- Ссылка на модель – указать путь к экспортируемой модели.

Все поля являются обязательными для заполнения – после внесения данных во все поля активируется кнопка "Добавить", которая позволяет добавить созданную задачу по экспорту в работу.
Добавление нового клиента производится кнопкой "Новый API". После нажатия откроется форма с полями:
- Название – наименование клиента;
- Описание – краткая информация о клиенте;
- ID компании – уникальный идентификатор организации, к которой привязывается API-ключ. Доступна функция копирования ID.
- Сервисы Tangl – переключатели для активации доступа к сервисам Tangl;
- Статус клиента – переключатель "Активен", для активации или блокировки клиента;
- Разрешенный URI редиректа после входа – список адресов, на которые пользователь будет перенаправлен после успешной авторизации;
- Разрешенный URI редиректа после выхода – список адресов для перенаправления после завершения сессии;
- Разрешенный источник CORS – настройка списка разрешенных доменов для предотвращения несанкционированных кросс-доменных запросов (Cross-Origin Resource Sharing).
Для добавления нескольких адресов в списках используются кнопки "+"
После заполнения полей станет активна кнопка "Сохранить", нажатие которой создаст нового клиента.

Все клиенты отображаются в виде плиток на странице API. Плитка отображает информацию об имени, описании клиента и подключенных сервисах. Также она содержит кнопки для редактирования данных о клиенте и удаления клиента.

Количество работающих клиентов отражается на индикаторе в боковой панели.

На вкладке Воркеры отображается статус и загруженность всех подключенных агентов системы. Вкладка содержит таблицу со столбцами:
- Имя модели – название модели, которая находится в обработке на данном воркере в текущий момент;
- Статус – состояние текущей задачи воркера;
- % выполнения – прогресс обработки текущей задачи в процентах;
- Дата создания – временная метка постановки задачи на конкретный узел.
- Дата изменения статуса – время последнего обновления прогресса или состояния воркера.
- Адрес модели – путь к исходным данным обрабатываемого объекта
- id задачи – уникальный системный номер текущей работы
- id агента – уникальный идентификатор самого вычислительного узла.
Отображение столбца id задачи настраиваемое, значения в столбце отображаются и скрываются взаимозаменяемыми кнопками "Показать значения/ Скрыть значения".

Интеграция с внешней системой (СОД)
Предполагается, что внешняя система представлена как СОД (Система общих данных) — информационная система, предназначенная для централизованного хранения, обработки и предоставления общей информации различным пользователям и организациям.
Пользователь может загрузить в СОД rvt-файл; однако СОД сам по себе не способен запустить Autodesk Revit и конвертацию — необходим плагин. Чтобы автоматизировать передачу файлов из СОД в Tangl, провайдер СОД должен создать для rvt-файла ссылку для скачивания и сообщить Координатору об этом по HTTP: идентификатор компании, модель, имя файла и ссылка на скачивание. Координатор заносит такую задачу и, когда у компании подключится агент, агент увидит задачу, перейдёт по ссылке, скачает rvt и попробует загрузить её в плагин Tangl для Revit.
Если файл формата IFC, то он будет обработан в фоновом режиме на сервере Tangl без участия пользователя.