|
Documentation |
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 );
Documentation
TYPE IfcMaterialPropertySelect = SELECT (
IfcSimpleProperty
,IfcSimplePropertyWithUnit
,IfcTable);
END_TYPE;
Documentation
TYPE IfcMaterialSelect = SELECT (
IfcMaterial
,IfcMaterialList
,IfcMaterialLayer
,IfcMaterialLayerSet);
END_TYPE;
|
Documentation |
ENTITY IfcMaterial;
MaterialName : STRING;
MaterialClassification : OPTIONAL IfcClassificationList;
MaterialFinishes : SET [0:?] OF IfcMaterialFinish;
Properties : SET [0:?] OF IfcMaterialPropertySelect;
END_ENTITY;
|
Documentation |
ENTITY IfcMaterialFinish;
FinishName : STRING;
Properties : LIST [0:?] OF IfcMaterialPropertySelect;
INVERSE
ForMaterial : IfcMaterial
FOR MaterialFinishes;
END_ENTITY;
|
Documentation |
ENTITY IfcMaterialLayer;
Material : IfcMaterial;
OffsetFromMLSBase : IfcLengthMeasure;
LayerThickness : IfcPositiveLengthMeasure;
INVERSE
ToMaterialLayerSet : IfcMaterialLayerSet
FOR HasMaterialLayers;
END_ENTITY;
|
Documentation |
ENTITY IfcMaterialLayerSet;
HasMaterialLayers : LIST [1:?] OF IfcMaterialLayer;
IsVentilated : BOOLEAN;
END_ENTITY;
|
Documentation |
ENTITY IfcMaterialLayerSetUsage;
ForLayerSet : IfcMaterialLayerSet;
MlsOffsetFromBaseline : IfcLengthMeasure;
MlsSenseLtoR : BOOLEAN;
DERIVE
TotalThickness : IfcLengthMeasure
:= IfcMlsTotalThickness(ForLayerSet);
END_ENTITY;
|
Documentation |
ENTITY IfcMaterialList;
Materials : LIST [1:?] OF IfcMaterial;
END_ENTITY;
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;