БимПортал: как мы сделали BIM/IFC viewer для web, desktop и PWA

БимПортал: BIM/IFC viewer для web, desktop и PWA
БимПортал — один из самых технологически сильных проектов в нашем портфолио. Это продукт для просмотра BIM/IFC-моделей на desktop, в браузере и на мобильных устройствах через PWA. Главная идея: пользователь открывает модель в привычном интерфейсе, а тяжёлая работа с геометрией и рендерингом выполняется на сервере.
Основной домен продукта: бимпортал.рф. Кейс в портфолио: БимПортал — BIM/IFC viewer.
Почему это важно для строительной отрасли
BIM-модели часто тяжёлые: миллионы полигонов, сложная геометрия, инженерные элементы, большие IFC-файлы. Обычному пользователю не всегда удобно устанавливать специализированное CAD/BIM-ПО, настраивать окружение и держать мощное железо только ради просмотра модели.
Для строительных компаний, проектировщиков, подрядчиков и заказчиков важен другой сценарий: открыть ссылку, посмотреть модель, обсудить объект, показать нужный ракурс, передать доступ коллегам или клиенту. Именно под этот сценарий и создавался БимПортал.
Задача проекта
Нужно было создать BIM-портал, который позволит работать с IFC-моделями через web, PWA и desktop-клиент, а также поддержит разные сценарии совместной работы.
- просмотр BIM/IFC-моделей без установки тяжёлого ПО на каждое устройство;
- серверный рендеринг и потоковая передача кадра клиентам;
- несколько режимов совместной работы с моделью;
- авторизация, роли, компании и управление пользователями;
- безопасные ссылки доступа к моделям;
- кеширование геометрии для ускорения повторных загрузок;
- механизм обновлений для production-сервера.
Три режима стриминга
Ключевая часть архитектуры — режимы стриминга. Они позволяют использовать один продукт для разных сценариев: презентаций, параллельной работы и полностью изолированных сессий.
Presentation
Режим презентации: все пользователи видят одну модель и одну камеру. Любой участник может управлять камерой, а остальные видят тот же кадр. Это режим с минимальной нагрузкой на сервер, подходящий для демонстраций, совместных обзоров и презентаций.
MultiSession
Мультисессия: модель загружена один раз, но каждый пользователь получает индивидуальную камеру. Это снижает нагрузку на сервер и позволяет нескольким людям параллельно изучать одну модель с разных ракурсов.
Isolated
Изолированный режим: у каждого пользователя своя модель и камера. Это наиболее ресурсоёмкий режим, но он нужен, когда пользователи работают независимо или загружают разные модели.
Управление камерой и game-inspired UX
Для BIM-viewer важна не только серверная часть, но и ощущение управления моделью. В БимПортале предусмотрены два основных сценария:
- Orbit — вращение вокруг модели, панорамирование и zoom;
- FPS — перемещение по модели от первого лица с коллизиями, гравитацией, прыжком и бегом.
FPS-режим особенно полезен для строительных и архитектурных сценариев: инженер или заказчик может буквально «пройтись» по модели, проверить помещения, маршруты и визуальное восприятие пространства. Камера не проходит сквозь стены — работают коллизии с геометрией здания.
Дополнительно:
- режим noclip для экспертов и быстрого обзора;
- выбор точки появления на модели;
- миникарта с планом этажей и текущей позицией камеры;
- мобильное управление: виртуальный джойстик, кнопки прыжка и бега в PWA.
Это не игровая геймификация с очками и рейтингами, а game-inspired UX — навигация, которой интуитивно пользуются на объекте и в офисе.
BIM-инструменты и desktop-клиент
Помимо просмотра, БимПортал даёт инженерные инструменты:
- BIM-панель свойств и позиции выбранного элемента;
- фильтры по этажам и инженерным системам;
- замеры по двум точкам и перпендикуляр до плоскости;
- скрытие, подсветка и wireframe-режим элементов.
Для профессиональной работы есть desktop-клиент с федерацией нескольких IFC-моделей и BCF-плагином: загрузка и сохранение BCF-разметок, переход к viewpoint из замечания — стандарт координации проектировщиков.
Авторизация, компании и роли
БимПортал проектировался как продукт, пригодный для реальной эксплуатации компаниями. Поэтому внутри есть ролевая модель и мультитенантность:
- администратор платформы — полный доступ, управление компаниями, пользователями и моделями;
- администратор компании — управление пользователями и моделями своей организации;
- пользователь — просмотр и загрузка моделей своей компании.
Модели привязаны к компаниям, пользователи видят только доступные им данные, а действия можно отслеживать через аудит-лог.
Безопасные ссылки на модели
Один из важных сценариев — быстро отправить модель другому человеку. Для этого после выбора или загрузки модели создаётся share-ссылка вида /share/<token>.
При этом ссылка не отдаёт IFC-файл напрямую. Она открывает viewer и разрешает серверу загрузить нужную модель в сессию. Предыдущая ссылка для той же модели может быть отозвана при создании новой.
Кеширование и производительность
IFC-файлы могут быть тяжёлыми, поэтому повторная полная обработка модели при каждом открытии была бы дорогой. В БимПортале реализовано кеширование геометрии: при повторной загрузке система использует сохранённый результат и пропускает тяжёлую генерацию.
Эксплуатация и обновления
Для production-сценариев важен не только запуск, но и дальнейшее обновление. Администратор видит доступное обновление в админ-панели и может установить его в контролируемом режиме — без ручного вмешательства на сервере.
NDA
Технологический стек, архитектура streaming-pipeline, внутренние алгоритмы рендеринга, параметры production-окружения и детали реализации защищены NDA и не публикуются. В открытых материалах описаны только продуктовые возможности и бизнес-результат — не техническая документация, по которой можно воспроизвести решение.
Результат
Получился полноценный BIM/IFC viewer для web, desktop и PWA-сценариев. Пользователь может работать с BIM-моделью через браузер, а сервер берёт на себя тяжёлый рендеринг и управление сессиями.
Проект закрывает сразу несколько потребностей строительного и проектного бизнеса:
- быстро показать BIM-модель без установки тяжёлого ПО;
- организовать презентацию модели нескольким участникам;
- дать каждому пользователю свою камеру при работе с одной моделью;
- изолировать сессии для независимой работы;
- управлять компаниями, пользователями и доступами;
- безопасно делиться ссылками на модели;
- обновлять серверную часть через админ-панель в контролируемом режиме.
Почему это крутой проект
БимПортал — это не обычный сайт и не простая админка. В нём соединяются BIM, 3D-графика, серверный рендеринг, game-inspired навигация, потоковое видео, PWA, desktop-сценарии, авторизация и мультитенантность.
Для нас это пример сильной заказной разработки: когда под задачу заказчика создаётся не шаблон, а настоящий технологический продукт с архитектурой, эксплуатацией и потенциалом развития.
Нужна предварительная оценка похожего проекта?
Опишите задачу — подготовим диапазон бюджета и сроков или предложим следующий шаг.
Расскажите о задаче
Короткий бриф помогает сразу подключить подходящего специалиста и вернуться с предметными вопросами по срокам, рискам и бюджету.