Log In   View a printable version of the current page.
Associate Material Layer Set (FP)
Added by Brendan McFarlane, last edited by Brendan McFarlane on Oct 05, 2006  (view change)
Labels: 
(None)


Associate Material Layer Set (FP)

Overview

Provides for the association of a materials specification with one or more product types or product occurrences that are constructed or manufactured as a set of layers where each layer is identifiable and is of a single material.

Generally, all product types and product occurrences may have a material association expressed as a material layer set. The exceptions are subtypes of IfcFeatureElementSubtraction and IfcVirtualElement which, by definition, express the absence of a material.

Typically, a material layer set is associated with constructed building elements such as walls, slabs, roofs etc. However, there are no explicit rules within the IFC model that prohibit the use of a material layer set with other elements (or element types). Therefore, any element having a 'sandwich' construction may have a material association expressed as a layer set.

Where a material layer set is associated with a product type, it is implied that all product occurrences conforming to that type also have the material layer set association. That is, where a material layer set is associated with a product type, product occurrences participating in the IfcRelDefinesByType relationship should not have own material layer set associations.

Results

Material layer set associated with the product type or product occurrence

Description Entity/Pset/Functional Part MAN REC OPT
For each layer within the layer set:        
Define the thickness of each material layer IfcMaterialLayer.LayerThickness -> IfcPositiveLengthMeasure    
Identify if the material layer is ventilated.
A cavity layer within a material layer set may be ventilated and therefore could have the value TRUE. Solid layers are expected to have the value FALSE.
IfcMaterialLayer.IsVentilated -> IfcBoolean    
Identify the material from which the layer is constructed IfcMaterialLayer.Material -> IfcMaterial    
Specify the name of the material used IfcMaterial.Name -> IfcLabel    
         
For the complete layer set:        
Specify the name of the layer set IfcMaterialLayerSet.Name -> IfcLabel    
Identify the layers within the layer set IfcMaterialLayerSet.MaterialLayers -> IfcMaterialLayer    
Derive the total thickness of all the layers in the layer set from the thickness of the individual layers.
Note that the IFC model can be used directly to derive the total thickness using the function IfcMLSTotalThickness
IfcMaterialLayerSet.TotalThickness -> IfcLengthMeasure    
         
For the layer set usage:        
Define the direction of measurement of the layer set in terms of X (AXIS1), Y (AXIS2), or Z (AXIS3) axis measurement. IfcMaterialLayerSetUsage.LayerSetDirection -> IfcLayerSetDirectionEnum    
Define the direction sense of the layer set.
The direction sense is measured in terms of a reference line and the direction of measurement. This will take the value of POSITIVE if measured in a positive direction from the reference line or NEGATIVE if measured in a negative direction.
IfcMaterialLayerSetUsage.DirectionSense -> IfcDirectionSenseEnum    
Specify the offset distance from the reference line IfcMaterialLayerSetUsage.OffsetFromReferenceLine -> IfcLengthMeasure    
Identify the material layer set for which the usage is specified IfcMaterialLayerSetUsage.ForLayerSet -> IfcMaterialLayerSet    
         
For associating a particular material layer set with one or more product occurrences (IfcProduct subtypes), make the association relationship        
Associate the products as the related objects within the association relationship.
Note that the graphical form of the IFC model shows the RelatedObjects attribute having IfcRoot as the datatype. The actual subtype that can be related is however constrained to being IfcProduct through the use of the WHERE rule 2 in the EXPRESS language specification.
IfcRelAssociatesMaterial.RelatedObjects -> IfcProduct    
Associate the material as the relating material within the association relationship. IfcRelAssociatesMaterial.RelatingMaterial -> IfcMaterialLayerSetUsage    
Apply the owner history information to the association relationship IfcRelAssociatesMaterial.OwnerHistory -> fp_apply_owner_history    
         
For associating a particular material layer set with one or more product types (IfcTypeProduct subtypes), make the association relationship        
Associate the type products as the related objects within the association relationship.
Note that the graphical form of the IFC model shows the RelatedObjects attribute having IfcRoot as the datatype. The actual subtype that can be related is however constrained to being IfcTypeProduct through the use of the WHERE rule 2 in the EXPRESS language specification.
IfcRelAssociatesMaterial.RelatedObjects -> IfcTypeProduct    
Associate the material as the relating material within the association relationship. IfcRelAssociatesMaterial.RelatingMaterial -> IfcMaterialLayerSetUsage    
Apply the owner history information to the association relationship IfcRelAssociatesMaterial.OwnerHistory -> fp_apply_owner_history    
  • IFC Entities Required
    • IfcMaterial
    • IfcMaterialLayer
    • IfcMaterialLayerSet
    • IfcMaterialLayerSetUsage
    • IfcObject
    • IfcProduct
    • IfcPropertyDefinition
    • IfcRelationship
    • IfcRelAssociates
    • IfcRelAssociatesMaterial
    • IfcRoot
    • IfcTypeObject
    • IfcTypeProduct

Note that IfcFeatureElementSubtraction and IfcVirtualElement are legal subtypes of IfcProduct that are prohibited from having a material association. These entities are not shown in the EXPRESS-G and EXPRESS specifications below.

  • IFC Datatypes Required
    • IfcGloballyUniqueId
    • IfcLabel
    • IfcMaterialSelect
    • IfcText
  • IFC Functions Required
    • IfcMLSTotalThickness
  • IDM Functional Parts Required
    • fp_apply_owner_history
    • fp_associates_classification (material)

Note that fp_place_object and fp_represent_product are shown in the EXPRESS-G diagram and EXPRESS specification for completeness based on the provisions limiting the association of materials to product types and occurrences. They are not asserted within this functional part.

EXPRESS-G

EXPRESS Schema

SCHEMA FP_ASSOCIATE_MATERIAL_LAYER_SET;

  TYPE IfcBoolean = BOOLEAN;
  END_TYPE;

  TYPE IfcGloballyUniqueId = STRING (22) FIXED;
  END_TYPE;

  TYPE IfcLabel = STRING;
  END_TYPE;

  TYPE IfcLengthMeasure = REAL;
  END_TYPE;

  TYPE IfcPositiveLengthMeasure = IfcLengthMeasure;
    WHERE
      WR1 : SELF > 0;
  END_TYPE;

  TYPE IfcText = STRING;
  END_TYPE;

  TYPE IfcDirectionSenseEnum = ENUMERATION OF
    (POSITIVE,
     NEGATIVE);
  END_TYPE;

  TYPE IfcLayerSetDirectionEnum = ENUMERATION OF
    (AXIS1,
     AXIS2,
     AXIS3);
  END_TYPE;

  TYPE IfcMaterialSelect = SELECT
    (IfcMaterial,
     IfcMaterialLayerSetUsage,
     IfcMaterialLayerSet,
     IfcMaterialLayer);
  END_TYPE;

  ENTITY IfcMaterial;
      Name : IfcLabel;
  END_ENTITY;

  ENTITY IfcMaterialLayerSetUsage;
      ForLayerSet             : IfcMaterialLayerSet;
      LayerSetDirection       : IfcLayerSetDirectionEnum;
      DirectionSense          : IfcDirectionSenseEnum;
      OffsetFromReferenceLine : IfcLengthMeasure;
  END_ENTITY;

  ENTITY IfcMaterialLayerSet;
      MaterialLayers : LIST [1:?] OF IfcMaterialLayer;
      LayerSetName   : OPTIONAL IfcLabel;
    DERIVE
      TotalThickness : IfcLengthMeasure := IfcMlsTotalThickness(SELF);
  END_ENTITY;

  ENTITY IfcMaterialLayer;
      Material           : OPTIONAL IfcMaterial;
      LayerThickness     : IfcPositiveLengthMeasure;
      IsVentilated       : OPTIONAL IfcBoolean;
    INVERSE
      ToMaterialLayerSet : IfcMaterialLayerSet FOR MaterialLayers;
  END_ENTITY;

  ENTITY IfcProduct
    ABSTRACT SUPERTYPE
    SUBTYPE OF(IfcObject);
    WHERE
      WR1 : (EXISTS(Representation) AND EXISTS(ObjectPlacement))
            OR (EXISTS(Representation) AND 
            (NOT('IFC2X2_FINAL.IFCPRODUCTDEFINITIONSHAPE' IN TYPEOF(Representation))))
            OR (NOT(EXISTS(Representation)));
  END_ENTITY;

  ENTITY IfcObject
    ABSTRACT SUPERTYPE
    SUBTYPE OF(IfcRoot);
      ObjectType      : OPTIONAL IfcLabel;
      ObjectPlacement : OPTIONAL fp_place_object;
      Representation  : OPTIONAL fp_represent_product;
    INVERSE
      HasAssociations : SET OF IfcRelAssociates FOR RelatedObjects;
    WHERE
      WR1 : SIZEOF(QUERY(temp <* IsDefinedBy | 'IFC2X2_FINAL.IFCRELDEFINESBYTYPE' IN TYPEOF(temp))) <= 1;
  END_ENTITY;

  ENTITY IfcRoot
    ABSTRACT SUPERTYPE OF (ONEOF(IfcObject, IfcPropertyDefinition, IfcRelationship));
      GlobalId     : IfcGloballyUniqueId;
      Name         : OPTIONAL IfcLabel;
      Description  : OPTIONAL IfcText;
      OwnerHistory : fp_apply_owner_history;
    UNIQUE
      UR1 : GlobalId;
  END_ENTITY;

  ENTITY IfcPropertyDefinition
    ABSTRACT SUPERTYPE
    SUBTYPE OF(IfcRoot);
    INVERSE
      HasAssociations : SET OF IfcRelAssociates FOR RelatedObjects;
  END_ENTITY;

  ENTITY IfcRelationship
    ABSTRACT SUPERTYPE
    SUBTYPE OF(IfcRoot);
  END_ENTITY;

  ENTITY IfcRelAssociates
    SUBTYPE OF(IfcRelationship);
      RelatedObjects : SET [1:?] OF IfcRoot;
    WHERE
      WR1 : SIZEOF(QUERY(temp <* RelatedObjects |
            NOT(('IFC2X2_FINAL.IFCOBJECT' IN TYPEOF(temp)) 
            OR ('IFC2X2_FINAL.IFCPROPERTYDEFINITION' IN TYPEOF(temp)))
            )) = 0;
  END_ENTITY;

  ENTITY IfcRelAssociatesMaterial
    SUBTYPE OF(IfcRelAssociates);
      RelatingMaterial : IfcMaterialSelect;
    WHERE
      WR1 : SIZEOF(QUERY(temp <* SELF\IfcRelAssociates.RelatedObjects | 
            ('IFC2X2_FINAL.IFCFEATUREELEMENTSUBTRACTION' IN TYPEOF(temp))
            OR ('IFC2X2_FINAL.IFCVIRTUALELEMENT' IN TYPEOF(temp))
            )) = 0;
      WR2 : SIZEOF(QUERY(temp <* SELF\IfcRelAssociates.RelatedObjects | 
            NOT(
            ('IFC2X2_FINAL.IFCPRODUCT' IN TYPEOF(temp)) OR
            ('IFC2X2_FINAL.IFCTYPEPRODUCT' IN TYPEOF(temp))
            ))) = 0;
  END_ENTITY;

  ENTITY IfcTypeObject
    SUBTYPE OF(IfcPropertyDefinition);
      ApplicableOccurrence : OPTIONAL IfcLabel;
    WHERE
      WR1 : EXISTS(SELF\IfcRoot.Name);
  END_ENTITY;

  ENTITY IfcTypeProduct
    SUBTYPE OF(IfcTypeObject);
      Tag : OPTIONAL IfcLabel;
    WHERE
      WR41 : NOT(EXISTS(SELF\IfcTypeObject.ObjectTypeOf[1])) OR
             (SIZEOF(QUERY(temp <* SELF\IfcTypeObject.ObjectTypeOf[1].RelatedObjects |
             NOT('IFC2X2_FINAL.IFCPRODUCT' IN TYPEOF(temp)))
             ) = 0);
  END_ENTITY;

  ENTITY fp_associate_classification;
  END_ENTITY;

  ENTITY fp_apply_owner_history;
  END_ENTITY;

  ENTITY fp_place_object;
  END_ENTITY;

  ENTITY fp_represent_product;
  END_ENTITY;

  FUNCTION IfcMLSTotalThickness
  (LayerSet : IfcMaterialLayerSet)
  	: IfcLengthMeasure;
      LOCAL
        Max : IfcLengthMeasure := LayerSet.MaterialLayers[1].LayerThickness;    
      END_LOCAL;
    
      IF SIZEOF(LayerSet.MaterialLayers) > 1 THEN
        REPEAT i := 2 TO HIINDEX(LayerSet.MaterialLayers);
           Max := Max + LayerSet.MaterialLayers[i].LayerThickness;
        END_REPEAT;
      END_IF;
      RETURN (Max);
  END_FUNCTION;

END_SCHEMA;

Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.1.3 Build:#408 Jan 23, 2006) - Bug/feature request - Contact Administrators