Any product or product type can have associated materials indicating the physical composition of an object.
EXAMPLE An object can be comprised of a single material or a set of materials with a particular layout. Several examples include: > * a slab may have an associated layer of concrete;
- a beam may have an associated I-Shape profile of steel;
- a door may have associated constituents for framing and glazing;
- a port may have an associated profile and/or material flowing through it such as hot water.
Materials can have representations for surface styles indicating colors, textures, and light reflectance for 3D rendering. Materials can have representations for fill styles indicating colors, tiles, and hatch patterns for 2D rendering. Materials can have properties such as density, elasticity, thermal resistance, and others as defined in this specification. Materials can also be classified according to a referenced industry standard.
EXAMPLE Material information can also be given at object type, defining the common material data for all occurrences of the same type. It is then accessible by the inverse IsTypedBy relationship pointing via HasAssociations and via IfcRelAssociatesMaterial.RelatingMaterial to the material information. If both are given, then the material directly assigned to object occurrence overrides the material assigned to object type.
Figure 13 illustrates an instance diagram.
Figure 13 — Material Association |
<?xml version="1.0"?>
<ConceptTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" uuid="ea2a63be-fd0d-426d-863b-52c3970ca585" name="Material Association" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
<Rules>
<AttributeRule AttributeName="HasAssociations">
<EntityRules>
<EntityRule EntityName="IfcRelAssociatesMaterial">
<AttributeRules>
<AttributeRule AttributeName="RelatingMaterial" />
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</Rules>
<SubTemplates>
<ConceptTemplate uuid="d96f7f7d-e742-4db8-9b5d-18a36a6df884" name="Material Constituent Set" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
<Rules>
<AttributeRule AttributeName="HasAssociations">
<EntityRules>
<EntityRule EntityName="IfcRelAssociatesMaterial">
<AttributeRules>
<AttributeRule AttributeName="RelatingMaterial">
<EntityRules>
<EntityRule EntityName="IfcMaterialConstituentSet">
<AttributeRules>
<AttributeRule AttributeName="MaterialConstituents">
<EntityRules>
<EntityRule EntityName="IfcMaterialConstituent">
<AttributeRules>
<AttributeRule RuleID="ConstituentName" AttributeName="Name">
<EntityRules>
<EntityRule EntityName="IfcLabel" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Description">
<EntityRules>
<EntityRule EntityName="IfcText" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Material">
<EntityRules>
<EntityRule EntityName="IfcMaterial">
<References>
<Template ref="5986b61a-b79f-44e0-a93f-9fddf470a4e1" />
</References>
</EntityRule>
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Category">
<EntityRules>
<EntityRule EntityName="IfcLabel" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Fraction">
<EntityRules>
<EntityRule EntityName="IfcNormalisedRatioMeasure" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Name">
<EntityRules>
<EntityRule EntityName="IfcLabel" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Description">
<EntityRules>
<EntityRule EntityName="IfcText" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</Rules>
</ConceptTemplate>
<ConceptTemplate uuid="6d5fb86f-3f2d-49fb-9528-077855ddcc47" name="Material Layer Set Usage" applicableSchema="IFC4" applicableEntity="IfcProduct">
<Rules>
<AttributeRule AttributeName="HasAssociations">
<EntityRules>
<EntityRule EntityName="IfcRelAssociatesMaterial">
<AttributeRules>
<AttributeRule AttributeName="RelatingMaterial">
<EntityRules>
<EntityRule EntityName="IfcMaterialLayerSetUsage">
<AttributeRules>
<AttributeRule AttributeName="ForLayerSet">
<EntityRules>
<EntityRule EntityName="IfcMaterialLayerSet">
<AttributeRules>
<AttributeRule AttributeName="MaterialLayers">
<EntityRules>
<EntityRule EntityName="IfcMaterialLayer">
<AttributeRules>
<AttributeRule RuleID="Name" AttributeName="Name" />
<AttributeRule AttributeName="Material">
<EntityRules>
<EntityRule EntityName="IfcMaterial">
<AttributeRules>
<AttributeRule AttributeName="HasRepresentation">
<EntityRules>
<EntityRule EntityName="IfcMaterialDefinitionRepresentation">
<References>
<Template ref="6e4e5d36-ea3c-46d5-a490-99abffb4e317" />
</References>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="LayerThickness">
<EntityRules>
<EntityRule EntityName="IfcNonNegativeLengthMeasure" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
<EntityRule EntityName="IfcMaterialLayerWithOffsets">
<AttributeRules>
<AttributeRule AttributeName="OffsetDirection">
<EntityRules>
<EntityRule EntityName="IfcLayerSetDirectionEnum" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="OffsetValues">
<EntityRules>
<EntityRule EntityName="IfcLengthMeasure" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="LayerSetDirection">
<EntityRules>
<EntityRule EntityName="IfcLayerSetDirectionEnum" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="DirectionSense">
<EntityRules>
<EntityRule EntityName="IfcDirectionSenseEnum" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="OffsetFromReferenceLine">
<EntityRules>
<EntityRule EntityName="IfcLengthMeasure" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="ReferenceExtent">
<EntityRules>
<EntityRule EntityName="IfcPositiveLengthMeasure" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</Rules>
</ConceptTemplate>
<ConceptTemplate uuid="dfb5b3a9-50e3-46e2-8518-1f03e7cfd886" name="Material Layer Set" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
<Rules>
<AttributeRule AttributeName="HasAssociations">
<EntityRules>
<EntityRule EntityName="IfcRelAssociatesMaterial">
<AttributeRules>
<AttributeRule AttributeName="RelatingMaterial">
<EntityRules>
<EntityRule EntityName="IfcMaterialLayerSet">
<AttributeRules>
<AttributeRule RuleID="HasLayer" AttributeName="MaterialLayers">
<EntityRules>
<EntityRule EntityName="IfcMaterialLayer">
<AttributeRules>
<AttributeRule RuleID="LayerName" AttributeName="Name">
<EntityRules>
<EntityRule EntityName="IfcLabel" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Description">
<EntityRules>
<EntityRule EntityName="IfcText" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Material">
<EntityRules>
<EntityRule EntityName="IfcMaterial">
<References>
<Template ref="5986b61a-b79f-44e0-a93f-9fddf470a4e1" />
</References>
</EntityRule>
</EntityRules>
</AttributeRule>
<AttributeRule RuleID="LayerThickness" AttributeName="LayerThickness">
<EntityRules>
<EntityRule EntityName="IfcNonNegativeLengthMeasure" />
</EntityRules>
</AttributeRule>
<AttributeRule RuleID="AirGap" AttributeName="IsVentilated">
<EntityRules>
<EntityRule EntityName="IfcLogical" />
</EntityRules>
</AttributeRule>
<AttributeRule RuleID="Category" AttributeName="Category">
<EntityRules>
<EntityRule EntityName="IfcLabel" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Priority">
<EntityRules>
<EntityRule EntityName="IfcNormalisedRatioMeasure" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="LayerSetName">
<EntityRules>
<EntityRule EntityName="IfcLabel" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Description">
<EntityRules>
<EntityRule EntityName="IfcText" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</Rules>
</ConceptTemplate>
<ConceptTemplate uuid="6aa01429-b566-4b36-875a-3162088a9831" name="Material Profile Set Usage" applicableSchema="IFC4" applicableEntity="IfcProduct">
<Rules>
<AttributeRule AttributeName="HasAssociations">
<EntityRules>
<EntityRule EntityName="IfcRelAssociatesMaterial">
<AttributeRules>
<AttributeRule AttributeName="RelatingMaterial">
<EntityRules>
<EntityRule EntityName="IfcMaterialProfileSetUsage">
<AttributeRules>
<AttributeRule AttributeName="ForProfileSet">
<EntityRules>
<EntityRule EntityName="IfcMaterialProfileSet">
<AttributeRules>
<AttributeRule AttributeName="MaterialProfiles">
<EntityRules>
<EntityRule EntityName="IfcMaterialProfile">
<AttributeRules>
<AttributeRule RuleID="Name" AttributeName="Name" />
<AttributeRule AttributeName="Material">
<EntityRules>
<EntityRule EntityName="IfcMaterial">
<AttributeRules>
<AttributeRule AttributeName="HasRepresentation">
<EntityRules>
<EntityRule EntityName="IfcMaterialDefinitionRepresentation">
<References>
<Template ref="6e4e5d36-ea3c-46d5-a490-99abffb4e317" />
</References>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Profile">
<EntityRules>
<EntityRule EntityName="IfcProfileDef" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
<EntityRule EntityName="IfcMaterialProfileWithOffsets">
<AttributeRules>
<AttributeRule AttributeName="OffsetValues">
<EntityRules>
<EntityRule EntityName="IfcLengthMeasure" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="CardinalPoint">
<EntityRules>
<EntityRule EntityName="IfcCardinalPointReference" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="ReferenceExtent">
<EntityRules>
<EntityRule EntityName="IfcPositiveLengthMeasure" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
<EntityRule EntityName="IfcMaterialProfileSetUsageTapering">
<AttributeRules>
<AttributeRule AttributeName="ForProfileEndSet">
<EntityRules>
<EntityRule EntityName="IfcMaterialProfileSet" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="CardinalEndPoint">
<EntityRules>
<EntityRule EntityName="IfcCardinalPointReference" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</Rules>
</ConceptTemplate>
<ConceptTemplate uuid="427ac055-2a71-42c2-a423-71689fa75c59" name="Material Profile Set" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
<Rules>
<AttributeRule AttributeName="HasAssociations">
<EntityRules>
<EntityRule EntityName="IfcRelAssociatesMaterial">
<AttributeRules>
<AttributeRule AttributeName="RelatingMaterial">
<EntityRules>
<EntityRule EntityName="IfcMaterialProfileSet">
<AttributeRules>
<AttributeRule RuleID="HasProfiles" AttributeName="MaterialProfiles">
<EntityRules>
<EntityRule EntityName="IfcMaterialProfile">
<AttributeRules>
<AttributeRule AttributeName="Name">
<EntityRules>
<EntityRule EntityName="IfcLabel" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Description">
<EntityRules>
<EntityRule EntityName="IfcText" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Material">
<EntityRules>
<EntityRule EntityName="IfcMaterial">
<References>
<Template ref="5986b61a-b79f-44e0-a93f-9fddf470a4e1" />
</References>
</EntityRule>
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Profile">
<EntityRules>
<EntityRule EntityName="IfcProfileDef">
<AttributeRules>
<AttributeRule AttributeName="ProfileType">
<EntityRules>
<EntityRule EntityName="IfcProfileTypeEnum" />
</EntityRules>
</AttributeRule>
<AttributeRule RuleID="ProfileName" AttributeName="ProfileName">
<EntityRules>
<EntityRule EntityName="IfcLabel" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
<AttributeRule RuleID="Category" AttributeName="Category">
<EntityRules>
<EntityRule EntityName="IfcLabel" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Priority">
<EntityRules>
<EntityRule EntityName="IfcInteger" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Name">
<EntityRules>
<EntityRule EntityName="IfcLabel" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="Description">
<EntityRules>
<EntityRule EntityName="IfcText" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</Rules>
</ConceptTemplate>
<ConceptTemplate uuid="5f39a814-44a0-4fb3-8dc6-ddaa0560fc54" name="Material Single" applicableSchema="IFC4" applicableEntity="IfcObjectDefinition">
<Rules>
<AttributeRule AttributeName="HasAssociations">
<EntityRules>
<EntityRule EntityName="IfcRelAssociatesMaterial">
<AttributeRules>
<AttributeRule AttributeName="RelatingMaterial">
<EntityRules>
<EntityRule EntityName="IfcMaterial">
<References>
<Template ref="5986b61a-b79f-44e0-a93f-9fddf470a4e1" />
</References>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</Rules>
</ConceptTemplate>
</SubTemplates>
</ConceptTemplate>