Revit-ферма
Revit-ферма
В этом разделе описана технология фонового экспорта моделей формата .rvt.
Задача системы - осуществление фоновой конвертации моделей формата .rvt в формат Тангл.
Основные части системы
- Координатор агентов. Находится в облаке Тангл. Управляет запуском и отслеживанием задач экспорта.
- Агент для экспорта - windows-служба, обрабатывающая задачи координатора и перенаправляющая их на Revit с плагином Тангл.
- Плагин для Revit, настроенный на работу с агентом.
Схема работы системы:
Процесс работы
- Внешняя система формирует запрос на экспорт модели и отправляет его на облако Тангл.
- Координатор на стороне облака Тангл определяет свободные агенты для экспорта и отправлят задачу на один из них.
- Агент передает задачу на плагин Revit, плагин производит конвертацию модели.
- Плагин отправляет сконвертированную модель на сервер Тангл.
Установка и запуск агентов и воркеров для синхронизации моделей
Для корректной работы системы синхронизации моделей с помощью Tangl необходимо настроить "воркеры" Revit и Revit Агент. "Воркеры" Revit - это запущенные Revit определенной версии с установленным плагином Tangl, с помощью которых будут конвертироваться модели. Revit Агент - это служба, координирующая запущенные Revit воркеры на одном ПК.
Установка Revit агента:
Скачать установщик Tangl Revit Agent из Личного кабинета. Запустить с правами администратора. После этого в службах Windows появится служба TanglRevitAgent. Она будет запускаться автоматически при запуске ПК.
Установка и настройка Revit Воркера:
Для настройки Revit воркера необходимо установить плагин для Revit из личного кабинета. В плагине необходимо авторизоваться, выбрать необходимую компанию. После этого в настройках плагина необходимо отметить галочку "Режим воркера", и Revit подключится к Агенту и будет доступен для задач экспорта моделей. Внимание: Получение задачи экспорта прервет работу пользователя в ревите и начнет выполнять экспорт модели, отправленный ей из Координатора. Для избежание потерь результатов работы, режим воркера рекомендуется включать для Revit, в которых не будут работать пользователи напрямую, а которые будут использоваться только для экспорта моделей в автономном режиме.
Ошибки подключения
Если по какой-либо причине Revit воркеру не удалось подключиться к Агенту или серверу Координатору появится окно с информацией об ошибке. Для повторного подключения необходимо будет повторно зайти в настройки и повторно отметить галочку "Режим воркера".
API интерфейс для управления задачами экспорта (Export Farm Coordinator)
Для управления очередью задач экспорта и мониторинга воркеров можно использовать следующие методы API.
Swagger-документация доступна по адресу https://export-coordinator.tangl.cloud/swagger **** либо стандартному пути /swagger
на вашем инстансе сервера.
Получение токена доступа
Для обращения к точкам сервера необходимо получить Bearer токен доступа. Как его получать описано тут: https://help.tangl.cloud/api/tangl/tangl-howto/auth-access.html
Получение списка задач экспорта для компании
GET https://export-coordinator.tangl.cloud/api/export-job/{companyId}
- companyId (path, uuid) - идентификатор компании, для которой запрашиваются задачи
- pageNumber (query, int32) - номер страницы (по умолчанию 1)
- pageSize (query, int32) - размер страницы (по умолчанию 10)
Пример:
curl -X GET "https://export-coordinator.tangl.cloud/api/export-job/478e78b2-78a1-485b-311b-3a0a1b503878?pageNumber=1&pageSize=20" \
-H Authorization:"Bearer ..."
Ответ:
{
"pageNumber": 1,
"pageSize": 20,
"totalItems": 45,
"totalPages": 3,
"jobs": [
{
"id": "a3ee8672-287e-45fb-bfe7-8e0de1bcef8b",
"modelUrl": "https://storage.models/example.rvt",
"modelName": "office_building.rvt",
"creationTime": "2023-10-05T12:34:56.789Z",
"software": {
"type": "Revit",
"version": "2023"
},
"status": {
"status": "Processing",
"progress": 65,
"changedTime": "2023-10-05T12:40:23.456Z",
"error": null
}
}
]
}
Создание новой задачи экспорта
POST https://export-coordinator.tangl.cloud/api/export-job
Тело запроса (application/json):
- modelName (string) - название модели
- companyId (uuid) - идентификатор компании
- modelUrl (string) - URL до файла модели
- softwareType (enum) - тип ПО (Revit)
- softwareVersion (string) - версия ПО
Пример:
curl -X POST https://export-coordinator.tangl.cloud/api/export-job \
-H Authorization:"Bearer ..." \
-H Content-Type:"application/json" \
-d '{
"modelName": "office_building.rvt",
"companyId": "478e78b2-78a1-485b-311b-3a0a1b503878",
"modelUrl": "https://storage.models/example.rvt",
"softwareType": "Revit",
"softwareVersion": "2023"
}'
Ответ:
{
"id": "a3ee8672-287e-45fb-bfe7-8e0de1bcef8b",
"concurrencyStamp": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"companyId": "478e78b2-78a1-485b-311b-3a0a1b503878",
"modelUrl": "https://storage.models/example.rvt",
"modelName": "office_building.rvt",
"creationTime": "2023-10-05T12:34:56.789Z",
"software": {
"type": "Revit",
"version": "2023"
},
"status": {
"status": "Enqueued",
"workerConnectionId": null,
"progress": 0,
"changedTime": "2023-10-05T12:34:56.789Z",
"error": null
}
}
Получение информации о воркерах компании
GET https://export-coordinator.tangl.cloud/api/export-worker/{companyId}
- companyId (path, uuid) - идентификатор компании
Пример:
curl -X GET https://export-coordinator.tangl.cloud/api/export-worker/478e78b2-78a1-485b-311b-3a0a1b503878 \
-H Authorization:"Bearer ..."
Ответ:
[
{
"companyId": "478e78b2-78a1-485b-311b-3a0a1b503878",
"software": {
"type": "Revit",
"version": "2023"
},
"job": {
"id": "a3ee8672-287e-45fb-bfe7-8e0de1bcef8b",
"modelUrl": "https://storage.models/example.rvt",
"modelName": "office_building.rvt",
"creationTime": "2023-10-05T12:34:56.789Z",
"software": {
"type": "Revit",
"version": "2023"
},
"status": {
"status": "Processing",
"progress": 65,
"changedTime": "2023-10-05T12:40:23.456Z",
"error": null
}
}
}
]
Получение информации о всех воркерах
GET https://export-coordinator.tangl.cloud/api/export-worker
Пример:
curl -X GET https://export-coordinator.tangl.cloud/api/export-worker \
-H Authorization:"Bearer ..."
Ответ аналогичен предыдущему, но содержит информацию о всех воркерах системы.
Статусы задач экспорта
- Enqueued - задача поставлена в очередь, ожидает обработки
- Sent - задача отправлена воркеру
- Processing - воркeр начал обработку задачи
- Succeeded - задача успешно выполнена
- Failed - выполнение задачи завершилось ошибкой
- WorkerNotFound - не найден подходящий воркер для задачи
- WorkerDisconnected - воркер отключился во время выполнения задачи
Дополнительные материалы
Интерфейс командной строки
Утилита для работы с заданиями экспорта моделей. Готова к использованию - просто скачайте и запускайте.
Скачивание
Выберите версию для вашей операционной системы:
Windows
# Скачайте файл
curl -LO https://storage.yandexcloud.net/tangl-export-farm-cli/host/export-tool-windows.exe
# Или через браузер:
# https://storage.yandexcloud.net/tangl-export-farm-cli/host/export-tool-windows.exe
Linux
# Скачайте файл
curl -LO https://storage.yandexcloud.net/tangl-export-farm-cli/host/export-tool-linux
# Сделайте исполняемым
chmod +x export-tool-linux
Быстрый старт
1. Просмотр заданий
# Windows
export-tool-windows.exe list --token YOUR_TOKEN --company COMPANY_ID
# Linux
./export-tool-linux list --token YOUR_TOKEN --company COMPANY_ID
- Создание задания
# Windows
export-tool-windows.exe create --token YOUR_TOKEN --company COMPANY_ID \
--model-name "My Model" \
--model-url "https://example.com/model.stl" \
--software-type "Revit" \
--software-version "2024"
# Linux
./export-tool-linux create --token YOUR_TOKEN --company COMPANY_ID \
--model-name "My Model" \
--model-url "https://example.com/model.stl" \
--software-type "Revit" \
--software-version "2024"
3. Мониторинг в реальном времени
# Обновление каждые 5 секунд
export-tool-windows.exe watch --token YOUR_TOKEN --company COMPANY_ID
# Обновление каждые 3 секунды
export-tool-windows.exe watch --token YOUR_TOKEN --company COMPANY_ID --interval 3
Команды
Просмотр заданий (list
)
Показывает список всех заданий компании.
Обязательные параметры:
--token
- Ваш токен авторизации--company
- ID вашей компании
Пример:
export-tool-windows.exe list --token abc123xyz --company comp_789
Создание задания (create
)
Создает новое задание экспорта.
Обязательные параметры:
--token
- Ваш токен авторизации--company
- ID вашей компании--model-name
- Название модели--model-url
- URL модели для обработки--software-type
- Тип программного обеспечения--software-version
- Версия программного обеспечения
Пример:
export-tool-windows.exe create --token abc123xyz --company comp_789 \
--model-name "Engine Block" \
--model-url "https://storage.com/models/engine.stl" \
--software-type "SolidWorks" \
--software-version "2023"
Мониторинг (watch
)
Отслеживание статуса заданий в реальном времени.
Обязательные параметры:
--token
- Ваш токен авторизации--company
- ID вашей компании
Дополнительные параметры:
--interval
- Интервал обновления в секундах (по умолчанию: 5)
Пример:
# Мониторинг с обновлением каждые 5 секунд
export-tool-windows.exe watch --token abc123xyz --company comp_789
# Мониторинг с обновлением каждые 3 секунды
export-tool-windows.exe watch --token abc123xyz --company comp_789 --interval 3
Практические примеры
Пример 1: Быстрая проверка заданий
export-tool-windows.exe list --token abc123 --company comp_456
Пример 2: Создание и отслеживание задания
# Создаем задание
export-tool-windows.exe create --token abc123 --company comp_456 \
--model-name "model-1" \
--model-url "https://example.com/model.rvt" \
--software-type "Revit" \
--software-version "2024"
# Отслеживаем статус
export-tool-windows.exe watch --token abc123 --company comp_456
Пример 3: Постоянный мониторинг
# Запуск мониторинга с частым обновлением
export-tool-windows.exe watch --token abc123 --company comp_456 --interval 2
Понимание вывода
Формат таблицы заданий
NAME DATE STATUS PROGRESS URL JOBID SOFT
My Model 2024-01-15T10:30:00Z Succeeded 100 https://.../model.stl job_123 Revit-2024
Test Model 2024-01-15T09:15:00Z Processing 75 https://.../test.zip job_456 Revit-2023
Статусы заданий
- ⏳
Enqueued
- Задание в очереди на обработку - 📤
Sent
- Задание отправлено воркеру - 🔄
Processing
- Задание выполняется - ✅
Succeeded
- Задание успешно завершено - ❌
Failed
- Завершено с ошибкой - 🔍
WorkerNotFound
- Воркер для обработки не найден - 🔌
WorkerDisconnected
- Потеряно соединение с воркером
Решение проблем
Файл не запускается (Windows)
- Убедитесь, что скачали
export-tool-windows.exe
- Запускайте из командной строки или PowerShell
Файл не запускается (Linux)
# Сделайте файл исполняемым
chmod +x export-tool-linux
# Запускайте с указанием пути
./export-tool-linux list --token abc123 --company comp_456
Ошибка аутентификации
❌ Ошибка: 401 Unauthorized
- Проверьте правильность токена
- Убедитесь, что токен действителен
Ошибка подключения
❌ Ошибка: ConnectionError
- Проверьте интернет-соединение
- Убедитесь, что API доступен
Советы по использованию
- Для мониторинга используйте команду
watch
- она автоматически обновляет информацию - При создании задания дождитесь подтверждения успешного создания
- Для частых запросов используйте переменные окружения
- Для автоматизации можно использовать в скриптах и CI/CD
Безопасность
- Токены не сохраняются на диск
- Все соединения защищены HTTPS
- Минимальные требуемые права доступа
Поддержка
Получение справки
# Общая справка
export-tool-windows.exe --help
# Справка по команде
export-tool-windows.exe list --help
export-tool-windows.exe create --help
export-tool-windows.exe watch --help
Проверка версии
export-tool-windows.exe --version
Важно: Сохраняйте токен в безопасности и не передавайте посторонним.
Обновления: Регулярно проверяйте наличие новых версий утилиты.