Ксения Прокофьева, руководитель отдела разработки C3D Converter, C3D Labs, рассказывает об обновлениях и перспективах развития модуля C3D Converter.
До недавнего времени модуль C3D Converter поддерживал только стандартные форматы обмена данными — SAT, STEP, Parasolid и пр. С 2020 г. началась активная работа с проприетарными форматами: изначально с использованием сторонних решений. А начиная с 2023 г. началось развитие собственных разработок (рис. 1).
На сегодня наши конверторы поддерживает широкий набор проприетарных форматов (рис. 2). Некоторые из них, например CATIA и Solid Edge, пока доступны в бета-версии, но планируется их полноценная поддержка в ближайшее время.
Подключение конверторов стало значительно проще: вместо настройки путей к библиотекам, ввода лицензионного ключа и ручного управления ресурсами (рис. 3, а) теперь есть возможность использовать универсальную функцию ImportFromFile (рис. 3, б). Пользователю достаточно поместить библиотеки нужного проприетарного формата рядом с ядром C3D. Новый подход одинаково работает в средах Windows и Linux.
В рамках оптимизации интерфейса были оставлены только две основные функции — ImportFromFile и ExportIntoFile. Специфические методы для отдельных форматов объявлены устаревшими и в скором времени будут удалены. Несмотря на кажущуюся простоту, функциональность конвертера не сводится лишь к этим двум вызовам — об этом далее.
Поддержка строительных форматов потребовала доработок, поскольку некоторые типы данных не вписывались в привычную геометрическую модель.
Среди новых типов — многократно используемые объекты. Они отчасти схожи с традиционной вставкой компонентов в сборку, но все-таки имеют принципиальные отличия. Вставляемый в сборку компонент рассматривается как полноценная деталь с атрибутами и самостоятельным статусом. Многократно используемые объекты — это геометрия, повторно применяемая в модели, но не обладающая статусом отдельного компонента. Например, к ним могут относится стены, окна или целые этажи. Такие объекты могут содержать вложенные структуры. При вставке используется локальная система координат.
К числу новых типов объектов относятся и группы конструкционных осей — именованные плоские кривые, примеры которых представлены на рис. 4. При необходимости можно отключить их импорт с помощью стандартного механизма фильтрации — функцией SetIoPermission().
Еще один новый тип — объект, ограничивающий объем (рис. 5). В качестве него может выступать тело, поверхность или wireframe. В отличие от прочих объекты, ограничивающие объем, не являются частью архитектуры здания. Они используются как дополнительная информация — например, для обозначения границ помещения или террасы. Их импорт также можно выключить.
Получение всех описанных объектов возможно через отдельные функции только при использовании модельного документа. Это важное отличие. Функция ImportFromFile позволяет загружать файл как в модельный документ, так и в MbModel, результат при этом может различаться. При работе с модельным документом сохраняется структура, заложенная в исходном файле. Если же использовать импорт в MbModel, то иерархия теряется: многократно используемые объекты превращаются в обычные сборки, оси — в кривые, объекты, ограничивающие объем, — в обычные геометрические объекты. Примеры запроса новых функций приведены на рис. 6.
Еще один важный аспект в работе со строительными форматами — метаданные. В отличие от простых атрибутов в формате «ключ–значение», которые применяются в машиностроении, BIM-модели требуют более гибкой и разветвленной архитектуры свойств. Также возможна передача различных деревьев для представления одной и той же модели. Теперь доступ к метаданным можно получить непосредственно из модельного документа без необходимости использовать экземпляр объекта IConverter3D (рис. 7). Работа с метаданными будет и дальше развиваться в соответствии с пользовательскими запросами.
Расширена работа с сетками, содержащими топологическую информацию (рис. 8). Такие сетки теперь можно импортировать напрямую, если активирована соответствующая опция и имеется лицензия PolyMesh. Есть и возможность включить автоматическое лечение сеток при импорте.
Добавлена поддержка новых форматов. В частности, реализован импорт бинарного SAB, а экспорт планируется в недалеком будущем. В формате 3MF уже реализован экспорт, а добавление импорта находится на финальной стадии. Кроме того, в планах стоит добавление поддержки формата PLY.
Особое внимание уделяется работе с большими моделями. Здесь важно не только обеспечить высокую скорость визуализации, но и ускорить сам процесс импорта. Ведутся активные исследования и разработка решений в этом направлении параллельно с постоянной работой по повышению качества импорта и развитию плагинов.
Развивается и еще одно перспективное направление — упрощенное создание тел на основе исходных данных. Это особенно будет полезно в случаях, когда пользователь реализует собственный механизм чтения, например формата IFC, и хочет упростить этап построения тел. Соответствующий функционал будет представлен в будущих версиях.

Ксения Прокофьева,
Руководитель отдела разработки C3D Converter
C3D Labs












