IfcNoOfLayers

Semantic definitions at the function
Function Definition

The function IfcNoOfLayers returns the number of layer from the material description attached to an element.

Formal representations
EXPRESS Specification

FUNCTION IfcNoOfLayers
    (Element : IfcElement )
                : INTEGER;
    
    LOCAL
      Association : BAG OF IfcRelAssociates := [];
      MaterialAssociation : SET OF IfcRelAssociatesMaterial := [];
    END_LOCAL;
    
    Association := USEDIN(Element, 'IFCKERNEL.IFCRELASSOCIATES.RELATEDOBJECTS');

    IF SIZEOF (Association) > 0 THEN
      REPEAT i := 1 TO HIINDEX(Association);
        IF ('IFCPRODUCTEXTENSION.IFCRELASSOCIATESMATERIAL' IN TYPEOF(Association[i])) THEN
          MaterialAssociation := MaterialAssociation + Association[i];
        END_IF;
      END_REPEAT;
    END_IF;
    
    IF (SIZEOF(MaterialAssociation) <> 1) THEN
      RETURN (?);
    ELSE
      IF 'IFCMATERIALRESOURCE.IFCMATERIAL' IN TYPEOF(MaterialAssociation[1].RelatingMaterial) THEN
         RETURN (1);
      END_IF;
      IF 'IFCMATERIALRESOURCE.IFCMATERIALLAYERSETUSAGE' IN TYPEOF(MaterialAssociation[1].RelatingMaterial) THEN
         RETURN (SIZEOF(MaterialAssociation[1].RelatingMaterial.ForLayerSet.MaterialLayers));
      END_IF;
      IF 'IFCMATERIALRESOURCE.IFCMATERIALLIST' IN TYPEOF(MaterialAssociation[1].RelatingMaterial) THEN
         RETURN (?);
      END_IF;
    END_IF;
  
    RETURN (?);
END_FUNCTION;

Link to this page  Link to this page