Найти в Дзене
Let's manage #BIM

Применение ассоциаций материалов в IFC 4.3.2

Корректное назначение материалов в BIM-моделях является фундаментальным аспектом информационного моделирования. Без материалов модель остается лишь геометрическим представлением, лишенным ключевых атрибутов, необходимых для управления данными, к примеру, оценки стоимости. Данное руководство для BIM-специалистов и разработчиков ПО по применению ассоциаций материалов в соответствии со стандартом IFC 4.3.2. В статье рассмотрены: Далее мы рассмотрим базовые принципы и сущности, лежащие в основе всех сценариев ассоциации материалов в IFC. Центральным механизмом для связи материалов с объектами служит взаимосвязь IfcRelAssociatesMaterial. Эта сущность соединяет один или несколько объектов (IfcObjectDefinition) с одним материалом (IfcMaterialDefinition). IfcObjectDefinition - это одна из базовых, фундаментальных сущностей IFC. Она находится очень высоко в иерархии и служит родительским классом для большинства объектов. Если коротко: IfcObjectDefinition = всё, что можно назвать объектом или г
Оглавление

1. Цель и аудитория

Корректное назначение материалов в BIM-моделях является фундаментальным аспектом информационного моделирования. Без материалов модель остается лишь геометрическим представлением, лишенным ключевых атрибутов, необходимых для управления данными, к примеру, оценки стоимости.

Данное руководство для BIM-специалистов и разработчиков ПО по применению ассоциаций материалов в соответствии со стандартом IFC 4.3.2. В статье рассмотрены:

  • Общая концепция назначения материалов
  • Практические сценарии применения: от простых до сложных объектов
  • Назначение свойств материалам

Далее мы рассмотрим базовые принципы и сущности, лежащие в основе всех сценариев ассоциации материалов в IFC.

2. База

Центральным механизмом для связи материалов с объектами служит взаимосвязь IfcRelAssociatesMaterial. Эта сущность соединяет один или несколько объектов (IfcObjectDefinition) с одним материалом (IfcMaterialDefinition).

IfcRelAssociatesMaterial
IfcRelAssociatesMaterial
IfcObjectDefinition - это одна из базовых, фундаментальных сущностей IFC. Она находится очень высоко в иерархии и служит родительским классом для большинства объектов. Если коротко: IfcObjectDefinition = всё, что можно назвать объектом или группой объектов в IFC.
-3
IfcMaterialDefinition - всё, что может описывать материал или набор материалов в IFC.
-4

Базовой единицей для описания материала является сущность IfcMaterial. Она используется для представления однослойного объекта и характеризуется атрибутами: Name (Наименование), Description (Описание), Category (Категория)

Одним из важнейших принципов является иерархия назначения материалов. Стандарт IFC позволяет назначать материалы как на уровне типа объекта (IfcTypeObject), так и на уровне конкретного экземпляра (IfcObject). При этом действует строгое правило приоритета:

Материал, назначенный непосредственно экземпляру объекта (IfcObject), всегда имеет приоритет и переопределяет материал, назначенный его типу (IfcTypeObject).

Это позволяет задать общий материал для всех экземпляров типа, например, через IfcWindowType указать сосновый каркас для всех окон типа "ОК-1", и при необходимости переопределить его для конкретного экземпляра IfcWindow, назначив ему материал "Дуб".

Перейдем к практике.

3.1. Сценарий 1: Однослойные конструкции (IfcMaterial)

Этот подход применяется для объектов, которые полностью состоят из одного материала и не имеют сложной внутренней структуры.

Реализация этого сценария проста и включает два основных шага:

  • Шаг 1: Определение материала. Создается экземпляр сущности IfcMaterial, которому присваивается уникальное наименование (например, "Бетон B25" или "Сталь С245").
  • Шаг 2: Создание связи. Создается экземпляр взаимосвязи IfcRelAssociatesMaterial, который связывает целевой объект (атрибут RelatedObjects) с ранее определенным материалом (атрибут RelatingMaterial).

Например:

#6709= IFCMATERIAL('Древесина темная',$,$)
#6716= IFCRELASSOCIATESMATERIAL('3PS6KWEUn0uPqLJavVIwmM',$,$,$, (#6761 и другие элементы),#6709);

Задали материал "Древесина темная" и создали связь с объектами. Какими?

#6761= IFCCOLUMN('1H7Ngnf_ZT6vuk2wPyeNFh',$,'Колонна - Прямоугольная 50x150',$,$,#6766,#6774,$,$);
-5

В данном примере на колонну (IfcColumn) через IfcRelAssociatesMaterial назначили единый материал "Древесина темная" (IfcMaterial).

3.2. Сценарий 2: Многослойные конструкции (IfcMaterialLayerSet)

Для конструкций, таких как стены, перекрытия и покрытия, которые состоят из нескольких функциональных слоев.

IfcMaterialLayerSet: Эта сущность определяет саму структуру слоев — их состав (IfcMaterial), толщину и порядок следования. Как правило, IfcMaterialLayerSet ассоциируется с типом объекта (например, IfcWallType или IfcSlabType).

IfcMaterialLayerSetUsage: Эта сущность ссылается на IfcMaterialLayerSet и свойства ориентации:

  • LayerSetDirection — направление слоёв (AXIS1 / AXIS2 / AXIS3)
    (обычно по толщине элемента)
  • DirectionSense — внутренняя или внешняя сторона (POSITIVE / NEGATIVE)
  • OffsetFromReferenceLine — смещение относительно референсной линии стены или плиты (например: от оси стены мы кладём слои наружу или внутрь).

В качестве практического примера, я привела материал отделки пола из керамической плитки:

#142=IFCCURTAINWALL('2wB8Y5u1vEKRMt$0UOe$oT',#20,'Облицовка','ограждение конструкций','облицовка',#127,#141,'263499',.NOTDEFINED.);
#168=IFCMATERIALLAYER(#143,20.,$,'Плитка керамическая 200х300 мм, цвет- белый',$,'Не назначено',$);
#169=IFCMATERIALLAYER(#147,110.,$,'Воздушный зазор',$,'Gas',$);
#170=IFCMATERIALLAYER(#154,120.,$,'Пароизоляция типа Изоспан D',$,'Общего типа',$);
#171=IFCMATERIALLAYERSET((#168,#169,#170),'Базовая стена:КРпо250_Ут120_Вз110_Кг20(500)_тест',$);
#172=IFCMATERIALLAYERSETUSAGE(#171,.AXIS2.,.NEGATIVE.,124.99999999999999,$);
#211=IFCRELASSOCIATESMATERIAL('0ro__iIcch20QoIJuBZ1YP',#20,$,$,(#142),#172);
-6

Если возникли вопросы, что за значения в скобочках, которые прописаны через запятую, - читай в документации (buildingSMART IFC4.3 Documentation)

Применимые сущности: IfcWall, IfcSlab, IfcPlate, IfcCovering, IfcStructuralSurfaceMember (это элемент для Finite Element Analysis (FEA) — конечных элементов пластин, оболочек, диафрагм, стен, панелей.)

Перейдем от многослойных конструкций к объектам, структура которых описывается через поперечное сечение.

3.3. Сценарий 3: Профильные элементы (IfcMaterialProfileSet)

Применяется к элементам, геометрия которых получена путем выдавливания поперечного сечения (профиля) вдоль траектории, таким как балки, трубы и воздуховоды.

Механизм IfcMaterialProfileSet позволяет ассоциировать один или несколько материалов с геометрией профиля элемента.

  • IfcMaterialProfileSet - эта сущность связывает один или несколько материалов (IfcMaterial) с профилем (IfcProfileDef). Набор IfcMaterialProfile описывает: материал, форму профиля (IfcProfileDef), позиционирование материала на профиле (опционально).Такая связка может быть назначена на уровне типа объекта (например, IfcBeamType).
  • IfcMaterialProfileSetUsage: Эта сущность применяется к экземпляру объекта и позволяет точно определить расположение материального профиля относительно осевой линии элемента. Например, с помощью кардинальной точки (CardinalPoint) можно задать выравнивание профиля по верхней грани, центру или нижнему краю.

Применимые сущности: IfcBeam, IfcColumn, IfcCovering, IfcFlowSegment, IfcFooting, IfcMember, IfcPile, IfcReinforcingBar, IfcStructuralCurveMember

Однако существуют объекты, материальную структуру которых невозможно описать ни слоями, ни профилями. Для таких случаев предназначен следующий, наиболее гибкий метод.

3.4. Сценарий 4: Сложные составные объекты (IfcMaterialConstituentSet)

Механизм IfcMaterialConstituentSet является наиболее гибким, но и самым сложным способом описания материалов. Он предназначен для объектов со сложной геометрией или произвольным расположением материалов, которое не укладывается в рамки слоев или профилей.

IfcShapeAspect - ассоциирует материал с конкретными частями геометрии путем сравнения имени составляющей материала (находящейся внутри IfcMaterialConstituentSet) с именем IfcShapeAspect.

Проще говоря, если вы представляете объект (например, окно) как состоящий из разных материалов (например, дерево для рамы и стекло для остекления), но хотите, чтобы эти материалы были связаны с геометрически разными частями 3D-модели, вы используете IfcShapeAspect как посредника, который по имени связывает часть геометрии с соответствующим материалом.

#41= IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#5,$,.MODEL_VIEW.,$);
#1344= IFCMATERIAL('Бетон',$,$);
#8340= IFCMATERIALCONSTITUENT('Слой 1 - Бетон: 200,00 мм',$,#1344,$,$);
#8341= IFCMATERIALCONSTITUENTSET('Бетон',$,(#8340));
#13442= IFCSHAPEREPRESENTATION(#41,'Body','AdvancedSweptSolid',(#13441));
-7

Применимые сущности: IfcWindow, IfcDoor, IfcFurniture, IfcRailing

Рассмотрев способы определения структуры материалов, перейдем к обогащению этих данных количественными показателями и свойствами.

4. Назначение физических и эксплуатационных свойств

Само по себе название материала, такое как "Бетон" или "Сталь", не несет достаточной информации для проведения инженерных расчетов или анализа. Чтобы сделать модель по-настоящему "информационной", необходимо присвоить материалам конкретные физические, механические, тепловые или иные эксплуатационные свойства.

В IFC назначение свойств материалам реализуется через сущность IfcMaterialProperties. Любое определение материала (IfcMaterialDefinition, являющийся родительским классом для IfcMaterial, IfcMaterialLayerSet и др.) может иметь один или несколько связанных с ним наборов свойств IfcMaterialProperties.

Каждый IfcMaterialProperties выступает в роли контейнера для набора отдельных свойств. Эти свойства являются экземплярами IfcProperty и его подтипов, таких как IfcPropertySingleValue, IfcPropertyBoundedValue или IfcPropertyListValue. Стандарт IFC определяет множество предопределенных наборов свойств (Psets) для различных нужд.

  • Pset_MaterialCommon - Общие свойства материала (например, плотность)
  • Pset_MaterialThermal - Теплофизические свойства (теплопроводность, теплоемкость)
  • Pset_MaterialMechanical - Механические свойства (модуль упругости, предел прочности)
  • Pset_MaterialOptical - Оптические свойства (коэффициент отражения, прозрачность)
  • Pset_MaterialConcrete - Специфические свойства для бетона (класс прочности, марка по водонепроницаемости)
  • Pset_MaterialSteel - Специфические свойства для стали (класс прочности, предел текучести)
  • Pset_MaterialWood - Специфические свойства для древесины (порода, влажность)

На первом примере посмотрим, какие есть параметры. Согласно значениям масса в единице объёма 600 кг/м3 для данной деревянной колонны:

#40008=IFCPROPERTYSINGLEVALUE('MassDensity',$,IFCMASSDENSITYMEASURE(600.),$);
#40009= IFCMATERIALPROPERTIES('Pset_MaterialCommon',$,(#40008),#6709);
Удобная визуализация в Tree View(OpenIFC Viewer)
Удобная визуализация в Tree View(OpenIFC Viewer)

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

5. Заключение и ключевые рекомендации

Правильный выбор метода ассоциации зависит от типа объекта и требуемого уровня детализации. Для упрощения этого выбора можно руководствоваться таблицей:

-9

При внедрении этих механизмов важно помнить ключевое правило иерархии, которое обеспечивает гибкость и предсказуемость модели данных:

  • Материал, назначенный на уровне экземпляра объекта, всегда переопределяет материал, назначенный на уровне его типа.
  • Последовательный и стандартизированный подход к назначению материалов является залогом создания качественных ЦИМ, обеспечивая совместимость данных между различными программными платформами и участниками проекта.

Мы в Larix развиваем работу с IFC. И обеспечиваем чтение требуемых параметров.

🪐 Планета информационного менеджмента — место для нетворкинга специалистов из строительной сферы.