Рубрики
Без рубрики

Cloud BIM-manager

Разработка инструмента помогающего выявлять ошибки на ранней стадии.

Архитектура приложения

Система состоит из:

  • набора системных служб (C#)
    • основная служба — контроллирует другие службы
    • служба работы с приложениями Autodesk Revit
    • служба сбора и анализа Log-файлов Revit
    • служба обновления
    • служба уведомления пользователя
    • служба отправки данных полученны из Log-файлов Revit
    • служба взаимодействия с сервером
  • плагины для САПР Autodesk Revit (каждый плагин отвечает за сбор конкретных данных, C#)
  • сервер принимающий и обрабатывающий данные (Java)
  • база данных (Postgres)
  • сервера ELK для работы с Log файлами Revit
  • UI интерфейса для отображения информации (vue, typescript)

Процесс работы системы выглядит следующим образом:

  1. Пользователь, работая в Revit, с некоторой периодичностью выполняет синхронизацию BIM модели (до 10-15 раз в сутки, в среднем 3-5 раз в сутки).
  2. При каждой синхронизации запускается механизм сбора данных: каждый плагин собирает свою часть данных из модели (информацию о типах, материалах, уровнях, осях, стенах, перекрытиях и другую информацию). Собранные данные отправляются в системную службу для отправки на сервер.
  3. Служба отправки данных пытается установить соединение с сервером и отправить данные. При этом этот процесс уже не «держит» Revit, и даже если пользователь закроет приложение или выключит ПК, данные не потеряются.
  4. Получив от пользователя данные сервер сохраняет их в базе данных и запускает процесс пересчёта и анализа полученных данных. Например, если пользователь случайно передвинул ось или изменил один из важных параметров, то система сопоставит новые данные с теми, что есть в базе и выполнит оповещение ответственного лица.

Текущий размер базы данных составляет более 600 Гб (работа порядка 30 проектировщиков за 2 года)