Проверяемые компоненты:
• Основное веб-приложение Vitro — загрузка моделей для хранения и организации совместной работы.
• Брокер сообщений (RabbitMQ) — используется для автоматизации процессов конвертации загружаемых моделей при помощи публикации и обработки сообщений в виде упорядоченных очередей.
• Консьюмер — приложение, запускающее процессы, выполняющие конвертацию по командам в сообщениях от брокера.
• BIM-вьюер — интегрированное в веб-приложение хранилища средство просмотра 3D-моделей.
Форматы и очереди по умолчанию:
• IFC → IfcToXkt
• Navisworks (.nwd, .nwc, .nwf) → NavisToXkt
• Revit (.rvt, .rte) → RevitToXkt
• DWG → DXF → DwgToDxf
• LAS → LasToXkt.
1) Предварительные условия (без них система не будет работать).
1.1 Windows-хосты с установленным ПО Autodesk.
Цель: убедиться, что Revit/Navisworks установлены и активированы под тем пользователем, от имени которого запускается конвертация.
Примечание: данный пункт проверки актуален исключительно при наличии соответствующих настроенных очередей RevitToXkt/NavisToXkt. Если предполагается конвертация только Ifc формата и документов DWG, то следует пропустить.
Действия:
1. Проверьте, что установлены все версии Revit, Navisworks, используемые в компании.
2. Убедитесь, что создан отдельный Windows-пользователь, войдите под ним и активируйте лицензии Revit/Navisworks.
3. Удостоверьтесь, что консьюмер запускается по расписанию корректно.
Перезагрузитесь и войдите под этим пользователем.
Ожидаемый результат: Revit, Navisworks стартуют без ошибок лицензии, под нужным пользователем.
Если не так: лицензии не активированы/нет доступа к лицензии — конвертация для Revit/Navisworks зависнет/упадёт.
Диагностика/исправление: снова войдите под этим пользователем, проверьте лицензию Autodesk.
1.2 Поддержание сеанса Windows для сервисного пользователя запуска консьюмера
Цель: убедиться, что выполнены настройки поддержания сеанса пользователя Windows в активном состоянии.
ВАЖНО! Поддержание сеанса в активном состоянии требуется, поскольку процесс конвертации возможен только в рамках графического окружения рабочего.
Действия:
1. Проверьте, что параметры ограничений сессии удаленного рабочего стола в редакторе локальной групповой политики заданы в соответствии с указаниями в п.4 статьи.
2. Убедитесь, что настроен автоматический вход в систему для пользователя в соответствии с указаниями в примечании 3 в статье.
Если не так: При завершении сеанса Windows, либо при невыполненном входе в сеанс Windows (к примеру, после перезагрузки ОС) конвертация моделей выполняться не будет!
Диагностика/исправление: Выполните указания в п.4 и примечании 3 статьи.
1.3 Установка RabbitMQ
Цель: брокер поднят, управление доступно, тайм-аут консьюмера отключён.
Действия:
- Убедитесь, что установлено все перечисленное в документации по установке и настройке фермы ПО, рекомендованных версий: Erlang, RabbitMQ-Server, плагины rabbitmq_management.
- Удостоверьтесь, что в конфигурационном файле advanced.config отключен consumer_timeout:
- Зайдите в веб-интерфейс RabbitMQ: http://localhost:15672 (guest/guest), или http://<IP address>:15672 (<adminuser>/<adminpassword>), если RabbitMQ развернут на другом хосте
- Выполните если RabbitMQ развернут под ОС Windows, либо под Linux одну из команд
netstat -na | find "LISTENING"
ss -ltnp
чтобы убедиться, что необходимые службы ведут прослушивание соответствующих сетевых портовnetstat -ltnp
Ожидаемый результат: веб-панель доступна, плагины активны, тайм-аут отключён, порты прослушиваются.
Если не так: сервис RabbitMQ не запущен/порт занят.
Диагностика/исправление: services.msc → перезапустить RabbitMQ (или sudo systemctl restart rabbitmq-server.service под Linux); проверить файрвол, порты 15672,25672,5672.
1.3 Обменник и очереди в RabbitMQ
Цель: маршрутизация сообщений настроена.
Действия:
- Проверьте в панели управления RabbitMQ наличие обменника Vitro.
- Убедитесь, что созданы необходимые очереди: IfcToXkt, NavisToXkt, RevitToXkt, DwgToDxf, LasToXkt, Error.
- Удостоверьтесь, что для каждой очереди существуют привязка к обменнику Vitro с одноимённым Routing key.
Ожидаемый результат: все очереди существуют, привязки активны.
Если не так: нет привязки → сообщения «теряются»; нет очереди → консьюмер нечего слушать.
Диагностика/исправление: проверьте Bindings во вкладке Exchange и Queue.
1.4 Доступ веб-приложения к RabbitMQ / кэш вьюера
Цель: портал умеет публиковать задания, вьюер знает путь к локальному кэшу.
Действия: Проверить в списке «конфигурация» Веб-приложения Vitro что корректно заданы параметры:
- Viewer.BIM.Model.LocalStorage.Path.Root — путь к серверному кэшу (напр. /tmp/Vitro/BimViewer).
- Receiver.Converter.Rabbit.Connection — строка подключения к RabbitMQ (напр. amqp://admin:admin@127.0.0.1:5672).
Ожидаемый результат: при загрузке модели портал публикует сообщение в нужную очередь (на вкладке Queues в панели RabbitMQ можем наблюдать кратковременное изменение в счетчике в столбцах Unacked/> Total>0).
Если не так: сообщения не появляются — проверьте строку подключения/права пользователя в RabbitMQ.
2) Проверяем консьюмер
2.1 Установка и запуск
Цель: служба/задача консьюмера запускается под правильным пользователем.
Действия:
- Проверьте в панели управления Windows что установлен пакет Vitro Forge MultiPlatform. И в установочной директории C:\Program Files\Vitro Software\Vitro\Forge\MultiPlatform\Consumer существуют директории и программные файлы
- Убедитесь в наличии задачи VitroForgeTask в планировщике Windows, для которой в триггере запуска выбран пользователь, кому активированы лицензии Autodesk. Если используется сетевая лицензия — убедитесь, что задана задержка старта.
Ожидаемый результат: задача в Планировщике в состоянии Готово / Выполняется, в сессии нужного пользователя открыто окно консоли консюмера
Если не так: запущено от другого пользователя — Revit/Navisworks не смогут запуститься, т.к. не настроено лицензирование.
Диагностика/исправление: пересоздайте задание, проверьте учётные данные.
2.2 Конфигурация Consumer.json
Цель: консьюмер подключается к RabbitMQ и знает, чем и как конвертировать.
Действия:
откройте файл C:\Program Files\Vitro Software\Vitro\Forge\Consumer\Conf\Consumer.json и внимательно проверьте основные параметры для каждой очереди:
- ConnectionString – строка соединения с брокером RabbitMQ.
- VitroSitePath – Url портала (Веб-приложения) Vitro
- VitroUserName – Имя пользователя от которого возможно подключение к порталу Vitro
- VitroPassword – пароль пользователя от которого возможно подключение к порталу Vitro
- WorkingDirectory – проверить что соответствующие директории существуют на диске по указанному пути и доступны на запись для пользователя, от которого выполняется конвертация
Ожидаемый результат: при старте консьюмер без ошибок подключается к брокеру и «слушает» свои очереди.
Если не так: в панели управления RabbitMQ на вкладках «Channels» и «Connections» отсутствуют данные о соответствующих каналах/соединениях либо присутствуют но не для всех очередей.
Диагностика/исправление: исправьте строку подключения, проверьте физическую доступность сетевых ресурсов указанных в параметрах ConnectionString и VitroSitePath, а также доступность соответствующих сетевых портов в файле Consumer.json, проверьте доступ к каталогам, наличие исполняемых файлов плагинов.
3) Функциональный прогон
3.1 Публикация задания
Цель: удостовериться, что веб-приложение публикует сообщение в очередь.
Действия: загрузите в хранилище модель поддерживаемого типа (например, IFC). Затем в RabbitMQ-UI откройте соответствующую очередь (например, IfcToXkt).
Ожидаемый результат: кратковременное появление сообщения (Ready > Unacked > 0).
Если не так: сообщение не появляется — некорректная строка подключения портала к RabbitMQ/права; застряло в Ready — нет консьюмера/он не подключён к этой очереди.
Диагностика/исправление: см. разделы 1.4, 2.2 и 1.3.
3.2 Работа консьюмера
Цель: убедиться, что задание реально обрабатывается.
Действия: наблюдайте консоль/лог консьюмера — процесс конвертации должен быть виден (старт плагина, выполнение, завершение без исключений).
Ожидаемый результат: выполнение завершается без исключений.
Если не так: см. очередь Error — там будет сообщение об ошибке конвертации с деталями.
Диагностика/исправление: проверяйте версию Revit/Navisworks/путь к плагину/права, используйте NextQueue, если требуется более новая версия.
3.3 Проверка во вьюере
Цель: визуально подтвердить пригодность результата.
Действия: откройте модель во встроенном BIM-вьюере портала и оцените корректность отображения (геометрия/дерево/свойства).
Ожидаемый результат: модель отображается корректно.
Если не так: проверьте кэш-путь Viewer.BIM.Model.LocalStorage.Path.Root, права доступа и сообщение в Error.
4) Быстрый «диагностический маршрут» по симптомам
- Сообщений в очереди нет → проблема публикации с портала (строка подключения/права), либо использована неверная очередь/ключ.
- Сообщение висит в Ready → консьюмер не подключён/слушает другую очередь/неверная ConnectionString.
- Консьюмер видит задание, но падает → проверяйте лицензии Autodesk пользователя/путь к плагину/версию и ExtensionList.
- Задание обработано, но вьюер пустой → проверьте кэш-путь в BimViewer и права; см. Error.
- Нужна более новая Revit → используйте NextQueue для переадресации на подходящий хост.
5) Чек-листы
Брокер:
- Exchange Vitro существует
- Очереди: IfcToXkt, NavisToXkt, RevitToXkt, DwgToDxf, Error (+ LasToXkt при необходимости)
- Привязки к обменнику с одноимёнными routing-keys
- consumer_timeout = undefined
- Включены management и tracing плагины.
Консьюмер(ы):
- Запускаются под правильным пользователем (планировщик Windows) / systemd сервис активен (Linux - Ifc)
- Consumer.json: корректные ConnectionString, Queue, Exchange, PathExe, ExtensionList, WorkingDirectory
- (Опционально) NextQueue настроен.
BimViewer / Портал:
- Viewer.BIM.Model.LocalStorage.Path.Root указывает на доступный путь
- Receiver.Converter.Rabbit.Connection валиден
- Загрузка модели публикует сообщение в нужную очередь.
6) Полезные команды и «точки наблюдения»
- RabbitMQ-UI: http://<host>:15672 → Exchanges/Queues/Bindings (там же видны Ready/Unacked/Total).
- Windows Планировщик заданий: проверяйте «Выполняется ли задача», пользователя и историю выполнения.
- Логи консьюмера: окно/консоль при интерактивном запуске; для Linux — journalctl -u vitro_forge_consumer.
- Очередь Error: первоисточник причины падения обработки.
Логика первичного принятия решения
- Загружаемая модель корректно отображается во вьюере → ферма работоспособна.
- Нет сообщения в очереди → проблема публикации с портала (список конфигурации в центре администрирования / права RabbitMQ).
- Сообщение есть, но нет обработки → проблема с консьюмером/конфигом/правами/лицензией.
- Обработка шла, но ошибка → см. Error, проверяйте версии плагинов/Autodesk, ExtensionList, NextQueue.





