Оригинал в блоге C3D Labs
На вебинаре «C3D Toolkit для разработки BIM-приложений» впервые о своей работе с C3D-компонентами рассказала команда Pilot-BIM (АСКОН). Система автоматически собирает сводную информационную модель здания/сооружения и организует коллективную работу в среде общих данных. В Pilot-BIM используются два компонента C3D Toolkit — геометрическое ядро C3D Modeler и модуль преобразования полигональных моделей в граничное представление C3D B-Shaper.
В этой заметке публикуем главное из выступления Дмитрия Поскрёбышева, руководителя разработки продуктов линейки Pilot.
Назначение Pilot-BIM
Pilot-BIM — это клиент-серверная система для координации и экспертизы информационных моделей, которые поступают к нам в формате IFC. Далее мы должны обработать эти модели на сервере таким образом, чтобы они мгновенно загружались на рабочих местах, с комфортной навигацией при выполнении экспертизы.
Роль C3D в Pilot-BIM
Мы получаем на вход BIM-объекты через формат IFC. Объект в IFC может быть представлен по-разному. В идеальном случае это твердое тело (солид). Тогда мы с помощью геометрического ядра преобразуем солид в триангуляционную сетку, но делаем это управляемо, под контролем ядра, с количеством триангуляций, необходимым и достаточным, чтобы получить качественную визуализацию.Другая ситуация, когда из IFC к нам приходит полигональная сетка. В этом случае результат, скорее всего, будет непредсказуемым, так как модель могла быть загружена из интернета или изначально имела сложную геометрию (например, дверная ручка). Для того чтобы управлять тем, в каком виде эта сетка окажется у клиента, мы используем MeshProcessor, ключевым элементом которого является B-Shaper. Он получает полигональную сетку из IFC, преобразует ее в солид, из которого мы снова управляемо делаем сетку.
Поддержка многопоточности
Мы используем многопоточную обработку моделей, B-Shaper также работает многопоточно. Это позволяет сокращать время получения общей модели, когда большое количество участников моделирования отправляют свои модели на изменения. В зависимости от мощности сервера, количества ядер клиент/пользователь может управлять количеством потоков. Соответственно, C3D будет работать в том количестве потоков, которое он указал.Результат обработки модели в B-Shaper
На рисунке показаны две версии одной и той же модели, полученной от пользователя. Слева — до обработки в B-Shaper, справа — после. Кроме основного объекта на заднем плане есть оборудование.
Управление обработкой модели
B-Shaper позволяет задавать настройки и управлять обработкой полученных триангуляций. Мы вытащили эти настройки в пользовательский интерфейс, чтобы задавать абсолютную и относительную точность преобразования. В одной и той же модели могут присутствовать и крупные, и малые объекты — B-Shaper должен применяться и к тем, и к другим. Поэтому добавлена возможность задавать относительную толерантность.Ниже представлены предпочтительные настройки «по умолчанию», которые мы выработали опытным путем совместно со специалистами C3D Labs. Рекомендуем пользователям именно такой набор настроек применительно к строительным моделям.