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


Associate Material List (FP)

Overview

Provides for the association of a list of materials with one or more product types or product occurrences.

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

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

Results

Material list associated with the product type or product occurrence

Description Entity/Pset/Functional Part MAN REC OPT
For associating a particular material list with one or more product occurrence (IfcProduct subtypes)        
Specify the product(s) to which the material list is to be associated.
Any subtype of IfcProduct may have a material list specification. The occurrences of IfcProduct selected for a given material list specification do not all have to be of the same subtype; the same material list may be specified for different subtypes.
IfcProduct (subtypes)    
Set the materials that are to be contained within the material list by name only. IfcMaterial.Name -> IfcLabel    
Set the material list to be associated with the product occurrence(s). IfcMaterialList.Materials -> IfcMaterial    
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 list as the relating material within the association relationship
Note that WHERE rule 1 in the EXPRESS language specification forbids the assignment of a material list to a substraction feature (such as an opening) or to a virtual element. This is logical since such features and elements specifically define the absence of material.
IfcRelAssociatesMaterial.RelatingMaterial -> IfcMaterialList    
Apply the owner history information to the association relationship IfcRelAssociatesMaterial.OwnerHistory -> fp_apply_owner_history    
         
For associating a particular material with one or more product types (IfcTypeProduct subtypes)        
Specify product type(s) to which the material list is to be associated.
Any subtype of IfcTypeProduct may have a material list specification. The occurrences of IfcTypeProduct selected for a given material list specification do not all have to be of the same subtype; the same material list may be specified for different subtypes.
IfcTypeProduct (subtypes)    
Set the materials that are to be contained within the material list by name only. IfcMaterial.Name -> IfcLabel    
Set the material list to be associated with the product occurrence(s). IfcMaterialList.Materials -> IfcMaterial    
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 list as the relating material within the association relationship. IfcRelAssociatesMaterial.RelatingMaterial -> IfcMaterialList    
Apply the owner history information to the association relationship IfcRelAssociatesMaterial.OwnerHistory -> fp_apply_owner_history    
  • IFC Entities Required
    • IfcMaterial
    • IfcMaterialList
    • 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 list association. These entities are not shown in the EXPRESS-G and EXPRESS specifications below.

  • IFC Datatypes Required
    • IfcGloballyUniqueId
    • IfcLabel
    • IfcMaterialSelect
    • IfcText
  • IFC Functions Required
    • -
  • 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 material lists to product types and occurrences. They are not asserted within this functional part.

EXPRESS-G

EXPRESS Schema

SCHEMA FP_ASSOCIATE_MATERIAL_LIST;

  TYPE IfcGloballyUniqueId = STRING (22) FIXED;
  END_TYPE;

  TYPE IfcLabel = STRING;
  END_TYPE;

  TYPE IfcText = STRING;
  END_TYPE;

  TYPE IfcMaterialSelect = SELECT
    (IfcMaterial,
     IfcMaterialList);
  END_TYPE;

  ENTITY IfcMaterial;
      Name : IfcLabel;
  END_ENTITY;

  ENTITY IfcMaterialList;
      Materials : LIST [1:?] OF IfcMaterial;
  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;

END_SCHEMA;

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