Параметрическая геометрия в IFC4: как работает то, что обещают в IFC5

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

Параметрическая геометрия в IFC4: как работает то, что обещают в IFC5

Параметрическая геометрия, которую buildingSMART анонсирует для грядущего IFC5, частично доступна уже в IFC4. Это стало возможным благодаря расширениям и практическим реализациям, опережающим формальную спецификацию. В этой статье разберем, как именно работает параметризация в текущей версии стандарта и что это значит для профессионалов BIM.

Как параметрическая геометрия реализована в IFC4

В IFC4 параметрическая геометрия строится на механизме IfcRepresentationItem и его подклассах, таких как IfcSurfaceCurveSweptAreaSolid или IfcFixedReferenceSweptAreaSolid. Эти объекты позволяют задавать форму не статическим набором точек, а математическими зависимостями — например, выдавливанием профиля вдоль кривой. Формально IFC4 поддерживает лишь ограниченный набор параметрических операций, но на практике разработчики CAD и BIM-инструментов уже используют эти возможности для создания адаптивных моделей.

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

Как параметризация в IFC4 применяется на практике?

На практике параметризация в IFC4 чаще всего реализуется через IfcPropertySet. Например, для колонны можно создать пользовательские свойства Width и Height, которые хранят исходные параметры. При экспорте из CAD-системы эти свойства сохраняются, и принимающая программа может их прочитать. Если она поддерживает параметрическое поведение, она воссоздает геометрию на основе этих значений. Однако это не стандартизировано, и совместимость зависит от конкретных инструментов.

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

Предыстория и контекст: от IFC2x3 к IFC5

Стандарт IFC развивается с середины 1990-х. Версия IFC2x3 (2006) стала основой открытого BIM, но строилась на жесткой объектно-ориентированной иерархии: каждый элемент наследовал фиксированный набор свойств. Это упрощало обмен данными, но делало модель статичной — любое изменение требовало пересоздания объекта.

IFC4 (2013) добавил гибкости: появились PropertySet и IfcProxy, но геометрия оставалась преимущественно явной — хранилась как набор вершин и граней. Параметрическая геометрия ограничивалась простыми профилями.

IFC5, разрабатываемый с 2020 года, предлагает революцию: компонентный ECS-подход (Entity Component System). Вместо монолитных классов объект собирается из независимых компонентов — геометрии, материалов, свойств. Это позволяет комбинировать и пересобирать части отдельно. buildingSMART ведет разработку публично на GitHub, но спецификация еще не финализирована.

Чем отличается параметризация в IFC4 и IFC5?

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

Однако уже сейчас, используя IFC4 и расширения вроде IfcRelDefinesByProperties, можно создавать параметрические связи на уровне данных. Некоторые BIM-платформы (Autodesk Revit, Allplan) реализуют собственную параметризацию поверх IFC, сохраняя результаты в IFC4. Это компромисс: данные передаются в открытом формате, но логика зависимостей теряется при экспорте без специализированных расширений.

Технические подробности: как это реализовано на практике

Рассмотрим пример: стандартная железобетонная колонна. В IFC4 ее можно описать через IfcColumn, а геометрию — через IfcExtrudedAreaSolid с IfcRectangleProfileDef. Если задать профиль с параметрами (ширина, высота), то при изменении этих параметров в CAD-системе геометрия перестроится. Но это работает только внутри одной системы — при передаче в другой инструмент параметры могут отвалиться, если не поддерживаются.

Для сохранения параметрической информации в IFC4 используется IfcPropertySet с пользовательскими свойствами. Например, можно добавить свойства Width и Height, которые будут хранить исходные значения. Тогда принимающая система может прочитать их и, если поддерживает, воссоздать параметрическое поведение. Это не стандартизировано, но широко применяется.

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

Кого затронет и как

Для разработчиков BIM-инструментов это означает, что уже сейчас можно внедрять параметрическую геометрию в IFC4, не дожидаясь IFC5. Это снижает порог входа для тех, кто хочет использовать открытые стандарты, но нуждается в гибкости. Однако придется работать с недокументированными расширениями или собственными решениями, что может вызвать проблемы совместимости.

Для проектных организаций, особенно в России и СНГ, где IFC4 активно внедряется, это возможность уже сегодня получить преимущества параметризации без перехода на нестабильную версию. Но нужно быть готовым к тому, что данные могут быть не полностью переносимы между разными CAD-системами.

Для buildingSMART это вызов: как стандартизировать уже существующие практики, не нарушая обратную совместимость. Возможно, часть наработок из IFC4 войдет в IFC5 в виде переходных механизмов.

Что будет дальше

Ожидается, что финальная спецификация IFC5 будет выпущена не ранее 2026–2027 годов. Пока buildingSMART фокусируется на ядре ECS и базовых компонентах. Параллельно сообщество разрабатывает расширения для IFC4, которые могут стать основой для официальной параметризации. Некоторые эксперты прогнозируют, что buildingSMART выпустит промежуточное обновление IFC4.3, которое включит часть функций IFC5, включая улучшенную параметрическую геометрию.

Итог

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