EXPRESS Definition for IfcMaterialResource

Link to Documentation

Documentation

Link to EXPRESS-G Diagram

EXPRESS-G Diagram



SCHEMA IfcMaterialResource;

REFERENCE FROM IfcPropertyResource (
    IfcSimpleProperty
   ,IfcSimplePropertyWithUnit );

REFERENCE FROM IfcMeasureResource (
    IfcLengthMeasure
   ,IfcPositiveLengthMeasure
   ,IfcDerivedUnit
   ,IfcNamedUnit
   ,IfcSiUnit
   ,IfcConversionBasedUnit);

REFERENCE FROM IfcClassificationResource (
    IfcClassificationList );

REFERENCE FROM IfcUtilityResource (
    IfcTable );

IfcMaterialPropertySelect

Link to Documentation

Documentation


TYPE IfcMaterialPropertySelect = SELECT (
    IfcSimpleProperty
   ,IfcSimplePropertyWithUnit
   ,IfcTable);
END_TYPE;


IfcMaterialSelect

Link to Documentation

Documentation


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


IfcMaterial

Link to Documentation

Documentation


ENTITY IfcMaterial;
    MaterialName           : STRING;
    MaterialClassification : OPTIONAL IfcClassificationList;
    MaterialFinishes       : SET [0:?] OF IfcMaterialFinish;
    Properties             : SET [0:?] OF IfcMaterialPropertySelect;
END_ENTITY;


IfcMaterialFinish

Link to Documentation

Documentation


ENTITY IfcMaterialFinish;
    FinishName : STRING;
    Properties : LIST [0:?] OF IfcMaterialPropertySelect;
  INVERSE
    ForMaterial : IfcMaterial
                  FOR MaterialFinishes;
END_ENTITY;


IfcMaterialLayer

Link to Documentation

Documentation


ENTITY IfcMaterialLayer;
    Material          : IfcMaterial;
    OffsetFromMLSBase : IfcLengthMeasure;
    LayerThickness    : IfcPositiveLengthMeasure;
  INVERSE
    ToMaterialLayerSet : IfcMaterialLayerSet
                         FOR HasMaterialLayers;
END_ENTITY;


IfcMaterialLayerSet

Link to Documentation

Documentation


ENTITY IfcMaterialLayerSet;
    HasMaterialLayers : LIST [1:?] OF IfcMaterialLayer;
    IsVentilated      : BOOLEAN;
END_ENTITY;


IfcMaterialLayerSetUsage

Link to Documentation

Documentation


ENTITY IfcMaterialLayerSetUsage;
    ForLayerSet           : IfcMaterialLayerSet;
    MlsOffsetFromBaseline : IfcLengthMeasure;
    MlsSenseLtoR          : BOOLEAN;
  DERIVE
    TotalThickness : IfcLengthMeasure
                   := IfcMlsTotalThickness(ForLayerSet);
END_ENTITY;


IfcMaterialList

Link to Documentation

Documentation


ENTITY IfcMaterialList;
    Materials : LIST [1:?] OF IfcMaterial;
END_ENTITY;


IfcMlsTotalThickness


FUNCTION IfcMlsTotalThickness
(LayerSet : IfcMaterialLayerSet)
            : IfcLengthMeasure;
LOCAL
  Max : IfcLengthMeasure
      := LayerSet.HasMaterialLayers[1].OffsetFromMLSBase
         + LayerSet.HasMaterialLayers[1].LayerThickness;
  Min : IfcLengthMeasure
      := LayerSet.HasMaterialLayers[1].OffsetFromMLSBase;
END_LOCAL;
  IF SIZEOF(LayerSet.HasMaterialLayers) > 1 THEN
    REPEAT i := 2 TO HIINDEX(LayerSet.HasMaterialLayers);
      IF (LayerSet.HasMaterialLayers[i].OffsetFromMLSBase
        + LayerSet.HasMaterialLayers[i].LayerThickness) > Max
        THEN Max := LayerSet.HasMaterialLayers[i].OffsetFromMLSBase
          + LayerSet.HasMaterialLayers[i].LayerThickness;
      END_IF;
      IF LayerSet.HasMaterialLayers[i].OffsetFromMLSBase < Min
        THEN Min := LayerSet.HasMaterialLayers[i].OffsetFromMLSBase;
      END_IF;
    END_REPEAT;
  END_IF;
  RETURN (Max - Min);
END_FUNCTION;



END_SCHEMA;