01.12.2025 • C3D Web Vision

Применение C3D Web Vision компанией «Цифрум» в продукте на базе платформы «Атомкод»

Татьяна Ковальчук, владелец продукта, Кирилл Гуж, бизнес-аналитик, и Максим Черный, teamlead, «Цифрум», рассказывают о продукте ЦИМ на базе платформы «Атомкод».

«Атомкод» — это универсальная российская платформа low-code-разработки, отличающаяся гибкой микросервисной архитектурой и эффективным сочетанием инструментов low-code и классической разработки. Платформа рассчитана на параллельную работу крупных команд, особенно в проектах уровня Enterprise. Ее надежность и масштабируемость подтверждены практикой использования в атомной отрасли, где она служит основой для построения сложных BIM- и PLM-решений. Следуя современным тенденциям, в платформу постепенно внедряются функции, основанные на использовании технологий искусственного интеллекта, что расширяет спектр задач, которые можно решать на ее основе.

Разработка нового продукта на базе «Атомкод» началась в конце 2024 года. Работа ведется одной командой, и в настоящий момент проект находится в стадии доработки до первой версии MVP, выпуск которой запланирован на конец текущего года. Несмотря на сжатые сроки, уже реализован полноценный прототип, включающий ключевые функции: взаимодействие с древовидной структурой проекта, 3D-сцена, инструменты для анализа коллизий, линейные измерения, работа с сечениями и комментариями. Добиться столь высокой скорости разработки удалось в том числе благодаря использованию движка C3D, чья функциональность значительно упростила реализацию базовых возможностей.

Применение C3D Web Vision компанией «Цифрум» в продукте на базе платформы «Атомкод», фото 1
Рис. 1. Сравнение версий модели

Одной из ключевых задач при работе с цифровыми моделями стало выявление различий между несколькими версиями. Эта проблема приобрела особую актуальность из-за итеративного характера работы над моделями: модель изменяется по мере доработки, устранения замечаний и проверки различных инженерных решений. В результате пользователь сталкивается с необходимостью анализа десятков версий одного и того же объекта.

На практике это приводит к попыткам вручную сопоставить два файла, открытых в разных вкладках или окнах, визуально выискивая различия (рис. 1). Такой подход неэффективен, особенно в случае работы с крупными моделями. Трудности возникают как при поиске добавленных элементов (появившихся во второй версии и отсутствующих в первой), так и при поиске удаленных (присутствовавших в первой, но исчезнувших во второй). Наибольшую сложность представляют измененные элементы, поскольку отличия могут касаться как геометрии, так и положения объекта в пространстве, либо изменения метаданных. Поиск таких изменений вручную требует значительных усилий и времени, что снижает общую продуктивность.

Появление автоматизированного механизма сравнения версий в системе направлено именно на решение этой задачи: сделать анализ отличий быстрым, наглядным и надежным, обеспечивая поддержку BIM-координаторов, инженеров и менеджеров проектов в условиях многоверсионной среды.

Применение C3D Web Vision компанией «Цифрум» в продукте на базе платформы «Атомкод», фото 2 Применение C3D Web Vision компанией «Цифрум» в продукте на базе платформы «Атомкод», фото 3
Рис. 2. Визуализация результатов сравнения

В продукте реализовано сравнение версий, позволяющее выявлять различия между двумя моделями. Пользователь может отличить удаленные, измененные и добавленные элементы. Удаленные отображаются красным цветом, измененные — синим, а добавленные — зеленым (рис. 2). Остальные элементы, не подвергшиеся изменениям, затеняются. Это обеспечивает визуальное восприятие изменений в контексте всей сцены, не отвлекая внимание от ключевых объектов и не удаляя остальные элементы модели.

При выборе пользователем измененного элемента сцена автоматически разделяется на два синхронизированных окна. Это позволяет одновременно вращать обе версии модели и детально анализировать отличия между ними. Такой подход способствует принятию обоснованных решений при дальнейшем проектировании.

Для реализации сравнения используются C3D Web Vision, C3D Converter и плагин IFC. При анализе геометрических изменений полигональные объекты моделей передаются в ядро C3D для вычислений. Применяются массово-инерционные характеристики, что позволяет отслеживать смещение центра масс, геометрические изменения и изменение глобальных координат тела. Удаленные и добавленные объекты фиксируются при формировании новой модели, в которую добавляются скопированные элементы, после чего сцена обновляется.

Применение C3D Web Vision компанией «Цифрум» в продукте на базе платформы «Атомкод», фото 4
Применение C3D Web Vision компанией «Цифрум» в продукте на базе платформы «Атомкод», фото 5
Рис. 3. Сравнение атрибутов

Для сравнения атрибутов и свойств объектов используется инструмент C3D Converter, который позволяет получить метаданные и сопоставить элементы по идентификаторам. В результате система определяет, какие элементы были изменены, удалены или добавлены, и возвращает эту информацию (рис. 3). BIM-менеджер получает возможность изучить изменения, сформировать список замечаний и направить его проектировщику для корректировки модели.

Применение C3D Web Vision компанией «Цифрум» в продукте на базе платформы «Атомкод», фото 6
Рис. 4. Синхронизация сцен

Две сцены можно выводить на одной странице — такое решение оказалось значительно удобнее, хотя ранее оно не реализовывалось средствами C3D (рис. 4). Для каждой сцены используется отдельная область heap-памяти, что позволяет обрабатывать их независимо. Сцены синхронизированы между собой: нажатия мыши, перемещения, масштабирование — все действия отслеживаются и передаются между сценами в реальном времени. Камера в активной сцене передает свои координаты во вторую сцену без видимой задержки, что обеспечивает плавную, слаженную работу интерфейса.

Реализация такой синхронизации потребовала преодоления ряда технических сложностей. Одной из них стала проблема с пересчетом размера второй сцены: при изменении размеров окна браузера она не всегда корректно пересчитывалась. Этот вопрос уже обсужден с разработчиками, и найдены возможности решения.

Кроме того, возникла проблема двойного выделения оперативной памяти. Контекстные модели, подгружаемые в сцену, оказываются загруженными дважды — по одной на каждую из сцен, несмотря на то что объекты идентичны. Это ведет к лишним затратам ресурсов. В последующих версиях платформы данную ситуацию планируется оптимизировать.

Сложности возникали и с аннотациями. Однако все эти вопросы находятся в процессе решения совместно с командой C3D Labs. На некоторых моделях возникали ошибки при загрузке — часть геометрии не отображалась. На начальном этапе воспроизвести проблему на стороне разработчиков не удавалось. В итоге удалось наладить коммуникацию и передать примеры моделей, несмотря на ограничения, связанные с соглашениями о неразглашении (NDA). После анализа и исправлений компоненты начали загружаться корректно.

Одной из серьезных проблем при подготовке отчетов о коллизиях было отсутствие возможности делать скриншоты без сдвига камеры. Мы планировали сопровождать каждую коллизию наглядным изображением, однако при автоматическом формировании отчета происходило «мерцание» — камера перелетала от одной коллизии к другой, чтобы зафиксировать нужный ракурс. Это выглядело неаккуратно и мешало восприятию. Понимая важность данной функции, мы инициировали диалог с разработчиками, аргументировали необходимость изменений и добились включения новой функциональности в версию 1.9. Теперь скриншоты формируются без сдвига камеры, а отчеты содержат четкие и стабильные изображения каждой коллизии.

В этой статье мы не ставим цель подробно рассказывать обо всех доработках, но ключевая мысль заключается в следующем: даже при возникновении затруднений важно выходить на контакт, объяснять свои потребности и совместно искать решения. Только так можно добиться успешного развития как своего продукта, так и платформы C3D.

Татьяна Ковальчук,
Владелец продукта,
Цифрум

Кирилл Гуж,
Бизнес-аналитик,
Цифрум

Максим Черный,
Teamlead,
Цифрум
Поделиться материалом
Вверх