AECgeeks / infra-repo-issue-test-old

0 stars 0 forks source link

IfcFacilityPart issue 90 #1

Open aothms opened 2 years ago

aothms commented 2 years ago

Remove the modeling pattern of select of enumeration for predefined type

aothms commented 2 years ago
--- tmp/a/IFC.exp   2022-02-13 13:29:18.847287400 +0100
+++ tmp/b/IFC.exp   2022-02-16 14:00:27.267605000 +0100
@@ -3030,43 +3030,31 @@
    ,VOLTAGE);
 END_TYPE;

 TYPE IfcTransitionCode = ENUMERATION OF
    (CONTINUOUS
    ,CONTSAMEGRADIENT
    ,CONTSAMEGRADIENTSAMECURVATURE
    ,DISCONTINUOUS);
 END_TYPE;

-TYPE IfcTransportElementFixedTypeEnum = ENUMERATION OF
+TYPE IfcTransportElementTypeEnum = ENUMERATION OF
    (CRANEWAY
    ,ELEVATOR
    ,ESCALATOR
    ,HAULINGGEAR
    ,LIFTINGGEAR
    ,MOVINGWALKWAY
    ,NOTDEFINED
    ,USERDEFINED);
 END_TYPE;

-TYPE IfcTransportElementNonFixedTypeEnum = ENUMERATION OF
-   (CARGO
-   ,NOTDEFINED
-   ,ROLLINGSTOCK
-   ,USERDEFINED
-   ,VEHICLE
-   ,VEHICLEAIR
-   ,VEHICLEMARINE
-   ,VEHICLETRACKED
-   ,VEHICLEWHEELED);
-END_TYPE;
-
 TYPE IfcTrimmingPreference = ENUMERATION OF
    (CARTESIAN
    ,PARAMETER
    ,UNSPECIFIED);
 END_TYPE;

 TYPE IfcTubeBundleTypeEnum = ENUMERATION OF
    (FINNED
    ,NOTDEFINED
    ,USERDEFINED);
@@ -3149,20 +3137,32 @@
    ,NOTDEFINED
    ,PRESSUREREDUCING
    ,PRESSURERELIEF
    ,REGULATING
    ,SAFETYCUTOFF
    ,STEAMTRAP
    ,STOPCOCK
    ,USERDEFINED);
 END_TYPE;

+TYPE IfcVehicleTypeEnum = ENUMERATION OF
+   (CARGO
+   ,NOTDEFINED
+   ,ROLLINGSTOCK
+   ,USERDEFINED
+   ,VEHICLE
+   ,VEHICLEAIR
+   ,VEHICLEMARINE
+   ,VEHICLETRACKED
+   ,VEHICLEWHEELED);
+END_TYPE;
+
 TYPE IfcVibrationDamperTypeEnum = ENUMERATION OF
    (AXIAL_YIELD
    ,BENDING_YIELD
    ,FRICTION
    ,NOTDEFINED
    ,RUBBER
    ,SHEAR_YIELD
    ,USERDEFINED
    ,VISCOUS);
 END_TYPE;
@@ -3745,22 +3745,22 @@
    (IfcDuration
    ,IfcRatioMeasure);
 END_TYPE;

 TYPE IfcTranslationalStiffnessSelect = SELECT
    (IfcBoolean
    ,IfcLinearStiffnessMeasure);
 END_TYPE;

 TYPE IfcTransportElementTypeSelect = SELECT
-   (IfcTransportElementFixedTypeEnum
-   ,IfcTransportElementNonFixedTypeEnum);
+   (IfcTransportElementTypeEnum
+   ,IfcVehicleTypeEnum);
 END_TYPE;

 TYPE IfcTrimmingSelect = SELECT
    (IfcCartesianPoint
    ,IfcParameterValue);
 END_TYPE;

 TYPE IfcUnit = SELECT
    (IfcDerivedUnit
    ,IfcMonetaryUnit
@@ -4511,20 +4511,25 @@

 ENTITY IfcBridge
  SUBTYPE OF (IfcFacility);
    PredefinedType : OPTIONAL IfcBridgeTypeEnum;
  WHERE
    CorrectPredefinedType : NOT(EXISTS(PredefinedType)) OR
 (PredefinedType <> IfcBridgeTypeEnum.USERDEFINED) OR
 ((PredefinedType = IfcBridgeTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcObject.ObjectType));
 END_ENTITY;

+ENTITY IfcBridgePart
+ SUBTYPE OF (IfcFacilityPart);
+   PredefinedType : OPTIONAL IfcBridgePartTypeEnum;
+END_ENTITY;
+
 ENTITY IfcBuilding
  SUBTYPE OF (IfcFacility);
    ElevationOfRefHeight : OPTIONAL IfcLengthMeasure;
    ElevationOfTerrain : OPTIONAL IfcLengthMeasure;
    BuildingAddress : OPTIONAL IfcPostalAddress;
 END_ENTITY;

 ENTITY IfcBuildingElementPart
  SUBTYPE OF (IfcElementComponent);
    PredefinedType : OPTIONAL IfcBuildingElementPartTypeEnum;
@@ -6342,21 +6347,21 @@
  ABSTRACT SUPERTYPE OF (ONEOF
    (IfcBuiltElement
    ,IfcCivilElement
    ,IfcDistributionElement
    ,IfcElementAssembly
    ,IfcElementComponent
    ,IfcFeatureElement
    ,IfcFurnishingElement
    ,IfcGeographicElement
    ,IfcGeotechnicalElement
-   ,IfcTransportElement
+   ,IfcTransportationDevice
    ,IfcVirtualElement))
  SUBTYPE OF (IfcProduct);
    Tag : OPTIONAL IfcIdentifier;
  INVERSE
    FillsVoids : SET [0:1] OF IfcRelFillsElement FOR RelatedBuildingElement;
    ConnectedTo : SET [0:?] OF IfcRelConnectsElements FOR RelatingElement;
    IsInterferedByElements : SET [0:?] OF IfcRelInterferesElements FOR RelatedElement;
    InterferesElements : SET [0:?] OF IfcRelInterferesElements FOR RelatingElement;
    HasProjections : SET [0:?] OF IfcRelProjectsElement FOR RelatingElement;
    HasOpenings : SET [0:?] OF IfcRelVoidsElement FOR RelatingBuildingElement;
@@ -6383,38 +6388,38 @@
 ENTITY IfcElementAssemblyType
  SUBTYPE OF (IfcElementType);
    PredefinedType : IfcElementAssemblyTypeEnum;
  WHERE
    CorrectPredefinedType : (PredefinedType <> IfcElementAssemblyTypeEnum.USERDEFINED) OR 
 ((PredefinedType = IfcElementAssemblyTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
 END_ENTITY;

 ENTITY IfcElementComponent
  ABSTRACT SUPERTYPE OF (ONEOF
-   (IfcBuildingElementPart
+   (IfcAbstractImpactProtectionDevice
+   ,IfcBuildingElementPart
    ,IfcDiscreteAccessory
    ,IfcFastener
-   ,IfcImpactProtectionDevice
    ,IfcMechanicalFastener
    ,IfcReinforcingElement
    ,IfcSign
    ,IfcVibrationDamper
    ,IfcVibrationIsolator))
  SUBTYPE OF (IfcElement);
 END_ENTITY;

 ENTITY IfcElementComponentType
  ABSTRACT SUPERTYPE OF (ONEOF
-   (IfcBuildingElementPartType
+   (IfcAbstractImpactProtectionDeviceType
+   ,IfcBuildingElementPartType
    ,IfcDiscreteAccessoryType
    ,IfcFastenerType
-   ,IfcImpactProtectionDeviceType
    ,IfcMechanicalFastenerType
    ,IfcReinforcingElementType
    ,IfcSignType
    ,IfcVibrationDamperType
    ,IfcVibrationIsolatorType))
  SUBTYPE OF (IfcElementType);
 END_ENTITY;

 ENTITY IfcElementQuantity
  SUBTYPE OF (IfcQuantitySet);
@@ -6426,21 +6431,21 @@

 ENTITY IfcElementType
  ABSTRACT SUPERTYPE OF (ONEOF
    (IfcBuiltElementType
    ,IfcCivilElementType
    ,IfcDistributionElementType
    ,IfcElementAssemblyType
    ,IfcElementComponentType
    ,IfcFurnishingElementType
    ,IfcGeographicElementType
-   ,IfcTransportElementType))
+   ,IfcTransportationDeviceType))
  SUBTYPE OF (IfcTypeProduct);
    ElementType : OPTIONAL IfcLabel;
 END_ENTITY;

 ENTITY IfcElementarySurface
  ABSTRACT SUPERTYPE OF (ONEOF
    (IfcCylindricalSurface
    ,IfcPlane
    ,IfcSphericalSurface
    ,IfcToroidalSurface))
@@ -6731,22 +6736,27 @@
  SUPERTYPE OF (ONEOF
    (IfcBridge
    ,IfcBuilding
    ,IfcMarineFacility
    ,IfcRailway
    ,IfcRoad))
  SUBTYPE OF (IfcSpatialStructureElement);
 END_ENTITY;

 ENTITY IfcFacilityPart
+ ABSTRACT SUPERTYPE OF (ONEOF
+   (IfcBridgePart
+   ,IfcFacilityPartCommon
+   ,IfcMarinePart
+   ,IfcRailwayPart
+   ,IfcRoadPart))
  SUBTYPE OF (IfcSpatialStructureElement);
-   PredefinedType : IfcFacilityPartTypeSelect;
    UsageType : IfcFacilityUsageEnum;
  WHERE
    CorrectPredefinedType : ((PredefinedType <> IfcBridgePartTypeEnum.USERDEFINED)
 OR
 (PredefinedType <> IfcRailwayPartTypeEnum.USERDEFINED)
 OR
 (PredefinedType <> IfcRoadPartTypeEnum.USERDEFINED)
 OR
 (PredefinedType <> IfcMarinePartTypeEnum.USERDEFINED)
 OR
@@ -6758,20 +6768,25 @@
 OR
 (PredefinedType = IfcRoadPartTypeEnum.USERDEFINED)
 OR
 (PredefinedType = IfcMarinePartTypeEnum.USERDEFINED)
 OR
 (PredefinedType = IfcFacilityPartCommonTypeEnum.USERDEFINED))
 AND
 EXISTS(SELF\IfcObject.ObjectType));
 END_ENTITY;

+ENTITY IfcFacilityPartCommon
+ SUBTYPE OF (IfcFacilityPart);
+   PredefinedType : OPTIONAL IfcFacilityPartCommonTypeEnum;
+END_ENTITY;
+
 ENTITY IfcFailureConnectionCondition
  SUBTYPE OF (IfcStructuralConnectionCondition);
    TensionFailureX : OPTIONAL IfcForceMeasure;
    TensionFailureY : OPTIONAL IfcForceMeasure;
    TensionFailureZ : OPTIONAL IfcForceMeasure;
    CompressionFailureX : OPTIONAL IfcForceMeasure;
    CompressionFailureY : OPTIONAL IfcForceMeasure;
    CompressionFailureZ : OPTIONAL IfcForceMeasure;
 END_ENTITY;

@@ -7424,58 +7439,35 @@
  (FilletRadius <= (OverallDepth - (2. * FlangeThickness))/2.));
 END_ENTITY;

 ENTITY IfcImageTexture
  SUBTYPE OF (IfcSurfaceTexture);
    URLReference : IfcURIReference;
 END_ENTITY;

 ENTITY IfcImpactProtectionDevice
  SUBTYPE OF (IfcElementComponent);
-   PredefinedType : OPTIONAL IfcImpactProtectionDeviceTypeSelect;
+   PredefinedType : OPTIONAL IfcImpactProtectionDeviceTypeEnum;
  WHERE
-   CorrectPredefinedType : NOT(EXISTS(PredefinedType))
-OR
-((PredefinedType <> IfcImpactProtectionDeviceTypeEnum.USERDEFINED)
-OR
-(PredefinedType <> IfcVibrationDamperTypeEnum.USERDEFINED)
-OR
-(PredefinedType <> IfcVibrationIsolatorTypeEnum.USERDEFINED))
- OR
-(((PredefinedType = IfcImpactProtectionDeviceTypeEnum.USERDEFINED)
-OR
-(PredefinedType = IfcVibrationDamperTypeEnum.USERDEFINED)
-OR
-(PredefinedType = IfcVibrationIsolatorTypeEnum.USERDEFINED))
-AND
-EXISTS(SELF\IfcObject.ObjectType));
+   CorrectPredefinedType : NOT(EXISTS(PredefinedType)) OR
+ (PredefinedType <> IfcImpactProtectionDeviceTypeEnum.USERDEFINED) OR
+ ((PredefinedType = IfcImpactProtectionDeviceTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcObject.ObjectType));
    CorrectTypeAssigned : (SIZEOF(IsTypedBy) = 0) OR
 ('IFC4X3_DEV.IFCIMPACTPROTECTIONDEVICETYPE' IN TYPEOF(SELF\IfcObject.IsTypedBy[1].RelatingType));
 END_ENTITY;

 ENTITY IfcImpactProtectionDeviceType
  SUBTYPE OF (IfcElementComponentType);
-   PredefinedType : IfcImpactProtectionDeviceTypeSelect;
+   PredefinedType : IfcImpactProtectionDeviceTypeEnum;
  WHERE
-   CorrectPredefinedType : ((PredefinedType <> IfcImpactProtectionDeviceTypeEnum.USERDEFINED)
-OR
-(PredefinedType <> IfcVibrationDamperTypeEnum.USERDEFINED)
-OR
-(PredefinedType <> IfcVibrationIsolatorTypeEnum.USERDEFINED))
-OR
-(((PredefinedType = IfcImpactProtectionDeviceTypeEnum.USERDEFINED)
-OR 
-(PredefinedType = IfcVibrationDamperTypeEnum.USERDEFINED)
-OR 
-(PredefinedType = IfcVibrationIsolatorTypeEnum.USERDEFINED))
-AND
-EXISTS(SELF\IfcObject.ObjectType));
+   CorrectPredefinedType : (PredefinedType <> IfcImpactProtectionDeviceTypeEnum.USERDEFINED) OR
+ ((PredefinedType = IfcImpactProtectionDeviceTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcElementType.ElementType));
 END_ENTITY;

 ENTITY IfcIndexedColourMap
  SUBTYPE OF (IfcPresentationItem);
    MappedTo : IfcTessellatedFaceSet;
    Opacity : OPTIONAL IfcNormalisedRatioMeasure;
    Colours : IfcColourRgbList;
    ColourIndex : LIST [1:?] OF IfcPositiveInteger;
 END_ENTITY;

@@ -7838,20 +7830,25 @@

 ENTITY IfcMarineFacility
  SUBTYPE OF (IfcFacility);
    PredefinedType : OPTIONAL IfcMarineFacilityTypeEnum;
  WHERE
    CorrectPredefinedType : NOT(EXISTS(PredefinedType)) OR
 (PredefinedType <> IfcMarineFacilityTypeEnum.USERDEFINED) OR
 ((PredefinedType = IfcMarineFacilityTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcObject.ObjectType));
 END_ENTITY;

+ENTITY IfcMarinePart
+ SUBTYPE OF (IfcFacilityPart);
+   PredefinedType : OPTIONAL IfcMarinePartTypeEnum;
+END_ENTITY;
+
 ENTITY IfcMaterial
  SUBTYPE OF (IfcMaterialDefinition);
    Name : IfcLabel;
    Description : OPTIONAL IfcText;
    Category : OPTIONAL IfcLabel;
  INVERSE
    HasRepresentation : SET [0:1] OF IfcMaterialDefinitionRepresentation FOR RepresentedMaterial;
    IsRelatedWith : SET [0:?] OF IfcMaterialRelationship FOR RelatedMaterials;
    RelatesTo : SET [0:1] OF IfcMaterialRelationship FOR RelatingMaterial;
 END_ENTITY;
@@ -9375,20 +9372,25 @@
 ENTITY IfcRailway
  SUBTYPE OF (IfcFacility);
    PredefinedType : OPTIONAL IfcRailwayTypeEnum;
  WHERE
    HasObjectType : NOT EXISTS(PredefinedType) OR (PredefinedType <> IfcRailwayTypeEnum.USERDEFINED) OR EXISTS(SELF\IfcObject.ObjectType);
    CorrectPredefinedType : NOT(EXISTS(PredefinedType)) OR
  (PredefinedType <> IfcRailwayTypeEnum.USERDEFINED) OR
  ((PredefinedType = IfcRailwayTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcObject.ObjectType));
 END_ENTITY;

+ENTITY IfcRailwayPart
+ SUBTYPE OF (IfcFacilityPart);
+   PredefinedType : OPTIONAL IfcRailwayPartTypeEnum;
+END_ENTITY;
+
 ENTITY IfcRamp
  SUBTYPE OF (IfcBuiltElement);
    PredefinedType : OPTIONAL IfcRampTypeEnum;
  WHERE
    CorrectPredefinedType : NOT(EXISTS(PredefinedType)) OR
  (PredefinedType <> IfcRampTypeEnum.USERDEFINED) OR
  ((PredefinedType = IfcRampTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcObject.ObjectType));
    CorrectTypeAssigned : (SIZEOF(IsTypedBy) = 0) OR
   ('IFC4X3_DEV.IFCRAMPTYPE' IN TYPEOF(SELF\IfcObject.IsTypedBy[1].RelatingType));
 END_ENTITY;
@@ -10222,20 +10224,25 @@
 ENTITY IfcRoad
  SUBTYPE OF (IfcFacility);
    PredefinedType : OPTIONAL IfcRoadTypeEnum;
  WHERE
    HasObjectType : NOT EXISTS(PredefinedType) OR (PredefinedType <> IfcRoadTypeEnum.USERDEFINED) OR EXISTS(SELF\IfcObject.ObjectType);
    CorrectPredefinedType : NOT(EXISTS(PredefinedType)) OR
  (PredefinedType <> IfcRoadTypeEnum.USERDEFINED) OR
  ((PredefinedType = IfcRoadTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcObject.ObjectType));
 END_ENTITY;

+ENTITY IfcRoadPart
+ SUBTYPE OF (IfcFacilityPart);
+   PredefinedType : OPTIONAL IfcRoadPartTypeEnum;
+END_ENTITY;
+
 ENTITY IfcRoof
  SUBTYPE OF (IfcBuiltElement);
    PredefinedType : OPTIONAL IfcRoofTypeEnum;
  WHERE
    CorrectPredefinedType : NOT(EXISTS(PredefinedType)) OR
  (PredefinedType <> IfcRoofTypeEnum.USERDEFINED) OR
  ((PredefinedType = IfcRoofTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcObject.ObjectType));
    CorrectTypeAssigned : (SIZEOF(IsTypedBy) = 0) OR
   ('IFC4X3_DEV.IFCROOFTYPE' IN TYPEOF(SELF\IfcObject.IsTypedBy[1].RelatingType));
 END_ENTITY;
@@ -11861,41 +11868,58 @@

 ENTITY IfcTransformerType
  SUBTYPE OF (IfcEnergyConversionDeviceType);
    PredefinedType : IfcTransformerTypeEnum;
  WHERE
    CorrectPredefinedType : (PredefinedType <> IfcTransformerTypeEnum.USERDEFINED) OR
 ((PredefinedType = IfcTransformerTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
 END_ENTITY;

 ENTITY IfcTransportElement
+ SUBTYPE OF (IfcTransportationDevice);
+   PredefinedType : OPTIONAL IfcTransportElementTypeEnum;
+ WHERE
+   CorrectTypeAssigned : (SIZEOF(IsTypedBy) = 0) OR
+  ('IFC4X3_DEV.IFCTRANSPORTELEMENTTYPE' IN TYPEOF(SELF\IfcObject.IsTypedBy[1].RelatingType));
+END_ENTITY;
+
+ENTITY IfcTransportElementType
+ SUBTYPE OF (IfcTransportationDeviceType);
+   PredefinedType : IfcTransportElementTypeEnum;
+END_ENTITY;
+
+ENTITY IfcTransportationDevice
+ ABSTRACT SUPERTYPE OF (ONEOF
+   (IfcTransportElement
+   ,IfcVehicle))
  SUBTYPE OF (IfcElement);
-   PredefinedType : OPTIONAL IfcTransportElementTypeSelect;
  WHERE
    CorrectPredefinedType : NOT(EXISTS(PredefinedType))
 OR
 ((PredefinedType <> IfcTransportElementFixedTypeEnum.USERDEFINED)
 AND
 (PredefinedType <> IfcTransportElementNonFixedTypeEnum.USERDEFINED))
 OR
 (((PredefinedType = IfcTransportElementFixedTypeEnum.USERDEFINED)
 OR
 (PredefinedType = IfcTransportElementNonFixedTypeEnum.USERDEFINED))
 AND
 EXISTS(SELF\IfcElementType.ElementType));
    CorrectTypeAssigned : (SIZEOF(IsTypedBy) = 0) OR
   ('IFC4X3_DEV.IFCTRANSPORTELEMENTTYPE' IN TYPEOF(SELF\IfcObject.IsTypedBy[1].RelatingType));
 END_ENTITY;

-ENTITY IfcTransportElementType
+ENTITY IfcTransportationDeviceType
+ ABSTRACT SUPERTYPE OF (ONEOF
+   (IfcTransportElementType
+   ,IfcVehicleType))
  SUBTYPE OF (IfcElementType);
-   PredefinedType : IfcTransportElementTypeSelect;
  WHERE
    CorrectPredefinedType : ((PredefinedType <> IfcTransportElementFixedTypeEnum.USERDEFINED)
 AND
 (PredefinedType <> IfcTransportElementNonFixedTypeEnum.USERDEFINED))
 OR
 ((PredefinedType = IfcTransportElementFixedTypeEnum.USERDEFINED)
 OR
 (PredefinedType = IfcTransportElementNonFixedTypeEnum.USERDEFINED)
 AND
 EXISTS(SELF\IfcElementType.ElementType));
@@ -12101,64 +12125,70 @@
  DERIVE
     Dim : IfcDimensionCount := Orientation.Dim;
  WHERE
    MagGreaterOrEqualZero : Magnitude >= 0.0;
 END_ENTITY;

 ENTITY IfcVegetation
  SUBTYPE OF (IfcGeographicElement);
 END_ENTITY;

+ENTITY IfcVehicle
+ SUBTYPE OF (IfcTransportationDevice);
+   PredefinedType : OPTIONAL IfcVehicleTypeEnum;
+ WHERE
+   CorrectTypeAssigned : (SIZEOF(IsTypedBy) = 0) OR
+  ('IFC4X3_DEV.IFCVEHICLETYPE' IN TYPEOF(SELF\IfcObject.IsTypedBy[1].RelatingType));
+END_ENTITY;
+
+ENTITY IfcVehicleType
+ SUBTYPE OF (IfcTransportationDeviceType);
+   PredefinedType : IfcVehicleTypeEnum;
+END_ENTITY;
+
 ENTITY IfcVertex
  SUPERTYPE OF (ONEOF
    (IfcVertexPoint))
  SUBTYPE OF (IfcTopologicalRepresentationItem);
 END_ENTITY;

 ENTITY IfcVertexLoop
  SUBTYPE OF (IfcLoop);
    LoopVertex : IfcVertex;
 END_ENTITY;

 ENTITY IfcVertexPoint
  SUBTYPE OF (IfcVertex);
    VertexGeometry : IfcPoint;
 END_ENTITY;

 ENTITY IfcVibrationDamper
- SUBTYPE OF (IfcElementComponent);
-   PredefinedType : OPTIONAL IfcVibrationDamperTypeEnum;
- WHERE
-   CorrectPredefinedType : NOT(EXISTS(PredefinedType)) OR
-(PredefinedType <> IfcVibrationDamperTypeEnum.USERDEFINED) OR
-((PredefinedType = IfcVibrationDamperTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcObject.ObjectType));
-   CorrectTypeAssigned : (SIZEOF(IsTypedBy) = 0) OR
-('IFC4X3_DEV.IFCVIBRATIONDAMPERTYPE' IN TYPEOF(SELF\IfcObject.IsTypedBy[1].RelatingType));
+ SUBTYPE OF (IfcAbstractImpactProtectionDevice);
+   PredefinedType : OPTIONAL IfcDamperTypeEnum;
 END_ENTITY;

 ENTITY IfcVibrationDamperType
- SUBTYPE OF (IfcElementComponentType);
-   PredefinedType : OPTIONAL IfcVibrationDamperTypeEnum;
- WHERE
-   CorrectPredefinedType : (PredefinedType <> IfcVibrationDamperTypeEnum.USERDEFINED) OR
-((PredefinedType = IfcVibrationDamperTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
+ SUBTYPE OF (IfcAbstractImpactProtectionDeviceType);
+   PredefinedType : IfcVibrationDamperTypeEnum;
 END_ENTITY;

 ENTITY IfcVibrationIsolator
  SUBTYPE OF (IfcElementComponent);
    PredefinedType : OPTIONAL IfcVibrationIsolatorTypeEnum;
  WHERE
    CorrectPredefinedType : NOT(EXISTS(PredefinedType)) OR 
  (PredefinedType <> IfcVibrationIsolatorTypeEnum.USERDEFINED) OR 
  ((PredefinedType = IfcVibrationIsolatorTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcObject.ObjectType));
    CorrectTypeAssigned : (SIZEOF(IsTypedBy) = 0) OR 
   ('IFC4X3_DEV.IFCVIBRATIONISOLATORTYPE' IN TYPEOF(SELF\IfcObject.IsTypedBy[1].RelatingType));
+   CorrectTypeAssigned : (SIZEOF(IsTypedBy) = 0) OR
+  ('IFC4X3_DEV.IFCVIBRATIONISOLATORTYPE' IN TYPEOF(SELF\IfcObject.IsTypedBy[1].RelatingType));
 END_ENTITY;

 ENTITY IfcVibrationIsolatorType
  SUBTYPE OF (IfcElementComponentType);
    PredefinedType : IfcVibrationIsolatorTypeEnum;
  WHERE
    CorrectPredefinedType : (PredefinedType <> IfcVibrationIsolatorTypeEnum.USERDEFINED) OR
 ((PredefinedType = IfcVibrationIsolatorTypeEnum.USERDEFINED) AND EXISTS(SELF\IfcElementType.ElementType));
 END_ENTITY;
aothms commented 2 years ago
--- tmp/a/IFC.exp.rej   1970-01-01 01:00:00.000000000 +0100
+++ tmp/b/IFC.exp.rej   2022-02-16 14:00:27.023258600 +0100
@@ -0,0 +1,80 @@
+--- IFC.exp    2022-02-06 15:26:01.808413300 +0100
++++ IFC.exp    2022-02-06 15:24:08.907832100 +0100
+@@ -6402,11 +6354,13 @@
+ ENTITY IfcElementComponent
+  ABSTRACT SUPERTYPE OF (ONEOF
+-  (IfcAbstractImpactProtectionDevice
+-  ,IfcBuildingElementPart
++  (IfcBuildingElementPart
+   ,IfcDiscreteAccessory
+   ,IfcFastener
++  ,IfcImpactProtectionDevice
+   ,IfcMechanicalFastener
+   ,IfcReinforcingElement
+-  ,IfcSign))
++  ,IfcSign
++  ,IfcVibrationDamper
++  ,IfcVibrationIsolator))
+  SUBTYPE OF (IfcElement);
+ END_ENTITY;
+@@ -6414,11 +6368,13 @@
+ ENTITY IfcElementComponentType
+  ABSTRACT SUPERTYPE OF (ONEOF
+-  (IfcAbstractImpactProtectionDeviceType
+-  ,IfcBuildingElementPartType
++  (IfcBuildingElementPartType
+   ,IfcDiscreteAccessoryType
+   ,IfcFastenerType
++  ,IfcImpactProtectionDeviceType
+   ,IfcMechanicalFastenerType
+   ,IfcReinforcingElementType
+-  ,IfcSignType))
++  ,IfcSignType
++  ,IfcVibrationDamperType
++  ,IfcVibrationIsolatorType))
+  SUBTYPE OF (IfcElementType);
+ END_ENTITY;
+@@ -12117,7 +12079,10 @@
+ 
+ ENTITY IfcVibrationDamper
+- SUBTYPE OF (IfcAbstractImpactProtectionDevice);
++ SUBTYPE OF (IfcElementComponent);
+   PredefinedType : OPTIONAL IfcDamperTypeEnum;
+  WHERE
++  CorrectPredefinedType : NOT(EXISTS(PredefinedType)) OR
++ (PredefinedType <> IfcDamperTypeEnum.USERDEFINED) OR
++ ((PredefinedType = IfcDamperTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcObject.ObjectType));
+   CorrectTypeAssigned : (SIZEOF(IsTypedBy) = 0) OR
+   ('IFC4X3_DEV.IFCVIBRATIONDAMPERTYPE' IN TYPEOF(SELF\IfcObject.IsTypedBy[1].RelatingType));
+@@ -12125,12 +12090,18 @@
+ 
+ ENTITY IfcVibrationDamperType
+- SUBTYPE OF (IfcAbstractImpactProtectionDeviceType);
++ SUBTYPE OF (IfcElementComponentType);
+   PredefinedType : IfcVibrationDamperTypeEnum;
++ WHERE
++  CorrectPredefinedType : (PredefinedType <> IfcVibrationDamperTypeEnum.USERDEFINED) OR
++ ((PredefinedType = IfcVibrationDamperTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcElementType.ElementType));
+ END_ENTITY;
+ 
+ ENTITY IfcVibrationIsolator
+- SUBTYPE OF (IfcAbstractImpactProtectionDevice);
++ SUBTYPE OF (IfcElementComponent);
+   PredefinedType : OPTIONAL IfcVibrationIsolatorTypeEnum;
+  WHERE
++  CorrectPredefinedType : NOT(EXISTS(PredefinedType)) OR
++ (PredefinedType <> IfcVibrationIsolatorTypeEnum.USERDEFINED) OR
++ ((PredefinedType = IfcVibrationIsolatorTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcObject.ObjectType));
+   CorrectTypeAssigned : (SIZEOF(IsTypedBy) = 0) OR
+   ('IFC4X3_DEV.IFCVIBRATIONISOLATORTYPE' IN TYPEOF(SELF\IfcObject.IsTypedBy[1].RelatingType));
+@@ -12138,6 +12109,9 @@
+ 
+ ENTITY IfcVibrationIsolatorType
+- SUBTYPE OF (IfcAbstractImpactProtectionDeviceType);
++ SUBTYPE OF (IfcElementComponentType);
+   PredefinedType : IfcVibrationIsolatorTypeEnum;
++ WHERE
++  CorrectPredefinedType : (PredefinedType <> IfcVibrationIsolatorTypeEnum.USERDEFINED) OR
++ ((PredefinedType = IfcVibrationIsolatorTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcElementType.ElementType));
+ END_ENTITY;
+ 
aothms commented 2 years ago
diff -N -w -U10 tmp/a/psd/Pset_CargoCommon.xml tmp/b/psd/Pset_CargoCommon.xml
--- tmp/a/psd/Pset_CargoCommon.xml  2022-02-13 13:30:03.563668200 +0100
+++ tmp/b/psd/Pset_CargoCommon.xml  2022-02-16 14:00:26.055844600 +0100
@@ -1,21 +1,21 @@
 <?xml version="1.0" ?>
 <PropertySetDef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" templatetype="PSET_TYPEDRIVENOVERRIDE" xsi:noNamespaceSchemaLocation="http://buildingSMART-tech.org/xml/psd/PSD_IFC4.xsd">
   <IfcVersion version="IFC4X3_DEV"/>
   <Name>Pset_CargoCommon</Name>
   <Definition>Properties common to the definition of all occurrences of _IfcTransportElement_ and types of _IfcTransportElementType_ with the predefined type set to CARGO.</Definition>
   <Applicability/>
   <ApplicableClasses>
-    <ClassName>IfcTransportElement/CARGO</ClassName>
-    <ClassName>IfcTransportElement/CARGO</ClassName>
+    <ClassName>IfcVehicle/CARGO</ClassName>
+    <ClassName>IfcVehicle/CARGO</ClassName>
   </ApplicableClasses>
-  <ApplicableTypeValue>IfcTransportElement/CARGO,IfcTransportElement/CARGO</ApplicableTypeValue>
+  <ApplicableTypeValue>IfcVehicle/CARGO,IfcVehicle/CARGO</ApplicableTypeValue>
   <PropertyDefs>
     <PropertyDef>
       <Name>ProcessItem</Name>
       <Definition>The type of item (and its measurement method) being modelled within a process. This can be cargo, passengers or vehicles that pass through the system.</Definition>
       <PropertyType>
         <TypePropertySingleValue>
           <DataType type="UNKNOWN"/>
         </TypePropertySingleValue>
       </PropertyType>
     </PropertyDef>
diff -N -w -U10 tmp/a/psd/Pset_ChamberCommon.xml tmp/b/psd/Pset_ChamberCommon.xml
--- tmp/a/psd/Pset_ChamberCommon.xml    2022-02-13 13:30:03.683350100 +0100
+++ tmp/b/psd/Pset_ChamberCommon.xml    2022-02-16 14:00:26.092746200 +0100
@@ -1,20 +1,20 @@
 <?xml version="1.0" ?>
 <PropertySetDef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" templatetype="PSET_TYPEDRIVENOVERRIDE" xsi:noNamespaceSchemaLocation="http://buildingSMART-tech.org/xml/psd/PSD_IFC4.xsd">
   <IfcVersion version="IFC4X3_DEV"/>
   <Name>Pset_ChamberCommon</Name>
   <Definition>Properties common to the definition of all occurrences of _IfcFacilityPart_ with the predefined type set to CHAMBER.</Definition>
   <Applicability/>
   <ApplicableClasses>
-    <ClassName>IfcFacilityPart/CHAMBER</ClassName>
+    <ClassName>IfcMarinePart/CHAMBER</ClassName>
   </ApplicableClasses>
-  <ApplicableTypeValue>IfcFacilityPart/CHAMBER</ApplicableTypeValue>
+  <ApplicableTypeValue>IfcMarinePart/CHAMBER</ApplicableTypeValue>
   <PropertyDefs>
     <PropertyDef>
       <Name>EffectiveChamberSize</Name>
       <Definition>Volumetric measure defining the effective chamber size for operational and design activities.</Definition>
       <PropertyType>
         <TypePropertySingleValue>
           <DataType type="IfcVolumeMeasure"/>
         </TypePropertySingleValue>
       </PropertyType>
     </PropertyDef>
diff -N -w -U10 tmp/a/psd/Pset_EnergyRequirements.xml tmp/b/psd/Pset_EnergyRequirements.xml
--- tmp/a/psd/Pset_EnergyRequirements.xml   2022-02-13 13:30:03.697311900 +0100
+++ tmp/b/psd/Pset_EnergyRequirements.xml   2022-02-16 14:00:27.113017500 +0100
@@ -1,23 +1,23 @@
 <?xml version="1.0" ?>
 <PropertySetDef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" templatetype="PSET_TYPEDRIVENOVERRIDE" xsi:noNamespaceSchemaLocation="http://buildingSMART-tech.org/xml/psd/PSD_IFC4.xsd">
   <IfcVersion version="IFC4X3_DEV"/>
   <Name>Pset_EnergyRequirements</Name>
   <Definition>Property set for the application of energy requirements to facility and physical elements</Definition>
   <Applicability/>
   <ApplicableClasses>
     <ClassName>IfcDistributionElement</ClassName>
     <ClassName>IfcDistributionElementType</ClassName>
-    <ClassName>IfcTransportElement</ClassName>
-    <ClassName>IfcTransportElementType</ClassName>
+    <ClassName>IfcTransportationDevice</ClassName>
+    <ClassName>IfcTransportationDeviceType</ClassName>
   </ApplicableClasses>
-  <ApplicableTypeValue>IfcDistributionElement,IfcDistributionElementType,IfcTransportElement,IfcTransportElementType</ApplicableTypeValue>
+  <ApplicableTypeValue>IfcDistributionElement,IfcDistributionElementType,IfcTransportationDevice,IfcTransportationDeviceType</ApplicableTypeValue>
   <PropertyDefs>
     <PropertyDef>
       <Name>EnergyConsumption</Name>
       <Definition>Annual energy consumption requirement</Definition>
       <PropertyType>
         <TypePropertySingleValue>
           <DataType type="IfcEnergyMeasure"/>
         </TypePropertySingleValue>
       </PropertyType>
     </PropertyDef>
diff -N -w -U10 tmp/a/psd/Pset_EnvironmentalEmissions.xml tmp/b/psd/Pset_EnvironmentalEmissions.xml
--- tmp/a/psd/Pset_EnvironmentalEmissions.xml   2022-02-13 13:30:06.319551300 +0100
+++ tmp/b/psd/Pset_EnvironmentalEmissions.xml   2022-02-16 14:00:27.135957800 +0100
@@ -1,23 +1,23 @@
 <?xml version="1.0" ?>
 <PropertySetDef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" templatetype="PSET_TYPEDRIVENOVERRIDE" xsi:noNamespaceSchemaLocation="http://buildingSMART-tech.org/xml/psd/PSD_IFC4.xsd">
   <IfcVersion version="IFC4X3_DEV"/>
   <Name>Pset_EnvironmentalEmissions</Name>
   <Definition>Property set for the application of energy emissions produced by facility and physical elements.</Definition>
   <Applicability/>
   <ApplicableClasses>
     <ClassName>IfcDistributionElement</ClassName>
     <ClassName>IfcDistributionElementType</ClassName>
-    <ClassName>IfcTransportElement</ClassName>
-    <ClassName>IfcTransportElementType</ClassName>
+    <ClassName>IfcTransportationDevice</ClassName>
+    <ClassName>IfcTransportationDeviceType</ClassName>
   </ApplicableClasses>
-  <ApplicableTypeValue>IfcDistributionElement,IfcDistributionElementType,IfcTransportElement,IfcTransportElementType</ApplicableTypeValue>
+  <ApplicableTypeValue>IfcDistributionElement,IfcDistributionElementType,IfcTransportationDevice,IfcTransportationDeviceType</ApplicableTypeValue>
   <PropertyDefs>
     <PropertyDef>
       <Name>CarbonDioxideEmissions</Name>
       <Definition>Rate of emission of carbon dioxide</Definition>
       <PropertyType>
         <TypePropertySingleValue>
           <DataType type="IfcMassFlowRateMeasure"/>
         </TypePropertySingleValue>
       </PropertyType>
     </PropertyDef>
diff -N -w -U10 tmp/a/psd/Pset_GateHeadCommon.xml tmp/b/psd/Pset_GateHeadCommon.xml
--- tmp/a/psd/Pset_GateHeadCommon.xml   2022-02-13 13:30:04.095248100 +0100
+++ tmp/b/psd/Pset_GateHeadCommon.xml   2022-02-16 14:00:26.138628100 +0100
@@ -1,20 +1,20 @@
 <?xml version="1.0" ?>
 <PropertySetDef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" templatetype="PSET_TYPEDRIVENOVERRIDE" xsi:noNamespaceSchemaLocation="http://buildingSMART-tech.org/xml/psd/PSD_IFC4.xsd">
   <IfcVersion version="IFC4X3_DEV"/>
   <Name>Pset_GateHeadCommon</Name>
   <Definition>Properties common to the definition of all occurrences of _IfcFacilityPart_ with the predefined type set to GATEHEAD.</Definition>
   <Applicability/>
   <ApplicableClasses>
-    <ClassName>IfcFacilityPart/GATEHEAD</ClassName>
+    <ClassName>IfcMarinePart/GATEHEAD</ClassName>
   </ApplicableClasses>
-  <ApplicableTypeValue>IfcFacilityPart/GATEHEAD</ApplicableTypeValue>
+  <ApplicableTypeValue>IfcMarinePart/GATEHEAD</ApplicableTypeValue>
   <PropertyDefs>
     <PropertyDef>
       <Name>StructuralType</Name>
       <Definition>Structural type of the object</Definition>
       <PropertyType>
         <TypePropertySingleValue>
           <DataType type="IfcLabel"/>
         </TypePropertySingleValue>
       </PropertyType>
     </PropertyDef>
diff -N -w -U10 tmp/a/psd/Pset_MarineVehicleCommon.xml tmp/b/psd/Pset_MarineVehicleCommon.xml
--- tmp/a/psd/Pset_MarineVehicleCommon.xml  2022-02-13 13:30:04.364524700 +0100
+++ tmp/b/psd/Pset_MarineVehicleCommon.xml  2022-02-16 14:00:26.156575500 +0100
@@ -1,21 +1,21 @@
 <?xml version="1.0" ?>
 <PropertySetDef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" templatetype="PSET_TYPEDRIVENOVERRIDE" xsi:noNamespaceSchemaLocation="http://buildingSMART-tech.org/xml/psd/PSD_IFC4.xsd">
   <IfcVersion version="IFC4X3_DEV"/>
   <Name>Pset_MarineVehicleCommon</Name>
   <Definition>Properties common to the definition of all occurrences of _IfcTransportElement_ and types of _IfcTransportElementType_ with the predefined type set to VEHICLEMARINE.</Definition>
   <Applicability/>
   <ApplicableClasses>
-    <ClassName>IfcTransportElement/VEHICLEMARINE</ClassName>
-    <ClassName>IfcTransportElement/VEHICLEMARINE</ClassName>
+    <ClassName>IfcVehicle/VEHICLEMARINE</ClassName>
+    <ClassName>IfcVehicle/VEHICLEMARINE</ClassName>
   </ApplicableClasses>
-  <ApplicableTypeValue>IfcTransportElement/VEHICLEMARINE,IfcTransportElement/VEHICLEMARINE</ApplicableTypeValue>
+  <ApplicableTypeValue>IfcVehicle/VEHICLEMARINE,IfcVehicle/VEHICLEMARINE</ApplicableTypeValue>
   <PropertyDefs>
     <PropertyDef>
       <Name>LengthBetweenPerpendiculars</Name>
       <Definition>Length of vessel from rudder shaft to crossing point of the bow and the loaded waterline.</Definition>
       <PropertyType>
         <TypePropertySingleValue>
           <DataType type="IfcPositiveLengthMeasure"/>
         </TypePropertySingleValue>
       </PropertyType>
     </PropertyDef>
diff -N -w -U10 tmp/a/psd/Pset_MarineVehicleDesignCriteria.xml tmp/b/psd/Pset_MarineVehicleDesignCriteria.xml
--- tmp/a/psd/Pset_MarineVehicleDesignCriteria.xml  2022-02-13 13:30:04.504153000 +0100
+++ tmp/b/psd/Pset_MarineVehicleDesignCriteria.xml  2022-02-16 14:00:26.184501700 +0100
@@ -1,21 +1,21 @@
 <?xml version="1.0" ?>
 <PropertySetDef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" templatetype="PSET_TYPEDRIVENOVERRIDE" xsi:noNamespaceSchemaLocation="http://buildingSMART-tech.org/xml/psd/PSD_IFC4.xsd">
   <IfcVersion version="IFC4X3_DEV"/>
   <Name>Pset_MarineVehicleDesignCriteria</Name>
   <Definition>Properties common to the definition of design criteria of all occurrences of _IfcTransportElement_ and types of _IfcTransportElementType_ with the predefined type set to MARINEVEHICLE</Definition>
   <Applicability/>
   <ApplicableClasses>
-    <ClassName>IfcTransportElement/VEHICLEMARINE</ClassName>
-    <ClassName>IfcTransportElement/VEHICLEMARINE</ClassName>
+    <ClassName>IfcVehicle/VEHICLEMARINE</ClassName>
+    <ClassName>IfcVehicle/VEHICLEMARINE</ClassName>
   </ApplicableClasses>
-  <ApplicableTypeValue>IfcTransportElement/VEHICLEMARINE,IfcTransportElement/VEHICLEMARINE</ApplicableTypeValue>
+  <ApplicableTypeValue>IfcVehicle/VEHICLEMARINE,IfcVehicle/VEHICLEMARINE</ApplicableTypeValue>
   <PropertyDefs>
     <PropertyDef>
       <Name>AllowableHullPressure</Name>
       <Definition>Allowable contact pressure between fender and hull</Definition>
       <PropertyType>
         <TypePropertySingleValue>
           <DataType type="IfcPressureMeasure"/>
         </TypePropertySingleValue>
       </PropertyType>
     </PropertyDef>
aothms commented 2 years ago
diff -N -w -U10 tmp/a/psd/Pset_ProcessCapacity.xml.orig tmp/b/psd/Pset_ProcessCapacity.xml.orig
--- tmp/a/psd/Pset_ProcessCapacity.xml.orig 1970-01-01 01:00:00.000000000 +0100
+++ tmp/b/psd/Pset_ProcessCapacity.xml.orig 2022-02-16 14:00:27.159893100 +0100
@@ -0,0 +1,69 @@
+<?xml version="1.0" ?>
+<PropertySetDef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" templatetype="PSET_TYPEDRIVENOVERRIDE" xsi:noNamespaceSchemaLocation="http://buildingSMART-tech.org/xml/psd/PSD_IFC4.xsd">
+  <IfcVersion version="IFC4X3_DEV"/>
+  <Name>Pset_ProcessCapacity</Name>
+  <Definition>Property set for the application of process data to spatial elements and transport assets</Definition>
+  <Applicability/>
+  <ApplicableClasses>
+    <ClassName>IfcBuiltSystem</ClassName>
+    <ClassName>IfcDistributionSystem</ClassName>
+    <ClassName>IfcDoor</ClassName>
+    <ClassName>IfcSpatialElement</ClassName>
+    <ClassName>IfcSpatialElementType</ClassName>
+    <ClassName>IfcTransportElement</ClassName>
+    <ClassName>IfcTransportElementType</ClassName>
+    <ClassName>IfcZone</ClassName>
+  </ApplicableClasses>
+  <ApplicableTypeValue>IfcBuiltSystem,IfcDistributionSystem,IfcDoor,IfcSpatialElement,IfcSpatialElementType,IfcTransportElement,IfcTransportElementType,IfcZone</ApplicableTypeValue>
+  <PropertyDefs>
+    <PropertyDef>
+      <Name>ProcessItem</Name>
+      <Definition>The type of item (and its measurement method) being modelled within a process. This can be cargo, passengers or vehicles that pass through the system.</Definition>
+      <PropertyType>
+        <TypePropertySingleValue>
+          <DataType type="UNKNOWN"/>
+        </TypePropertySingleValue>
+      </PropertyType>
+    </PropertyDef>
+    <PropertyDef>
+      <Name>ProcessCapacity</Name>
+      <Definition>The number of units that can be processed in the time defined in ProcessPerformance</Definition>
+      <PropertyType>
+        <TypePropertySingleValue>
+          <DataType type="IfcCountMeasure"/>
+        </TypePropertySingleValue>
+      </PropertyType>
+    </PropertyDef>
+    <PropertyDef>
+      <Name>ProcessPerformance</Name>
+      <Definition>Minimum time to accept or dispatch the entire item capacity.</Definition>
+      <PropertyType>
+        <TypePropertySingleValue>
+          <DataType type="UNKNOWN"/>
+        </TypePropertySingleValue>
+      </PropertyType>
+    </PropertyDef>
+    <PropertyDef>
+      <Name>DownstreamConnections</Name>
+      <Definition>Names of downstream connected equipment and spaces (comma-separated), if not otherwise represented</Definition>
+      <PropertyType>
+        <TypePropertyListValue>
+          <ListValue>
+            <DataType type="IfcLabel"/>
+          </ListValue>
+        </TypePropertyListValue>
+      </PropertyType>
+    </PropertyDef>
+    <PropertyDef>
+      <Name>UpstreamConnections</Name>
+      <Definition>Names of upstream connected equipment and spaces (comma-separated), if not otherwise represented</Definition>
+      <PropertyType>
+        <TypePropertyListValue>
+          <ListValue>
+            <DataType type="IfcLabel"/>
+          </ListValue>
+        </TypePropertyListValue>
+      </PropertyType>
+    </PropertyDef>
+  </PropertyDefs>
+</PropertySetDef>
diff -N -w -U10 tmp/a/psd/Pset_ProcessCapacity.xml.rej tmp/b/psd/Pset_ProcessCapacity.xml.rej
--- tmp/a/psd/Pset_ProcessCapacity.xml.rej  1970-01-01 01:00:00.000000000 +0100
+++ tmp/b/psd/Pset_ProcessCapacity.xml.rej  2022-02-16 14:00:27.167872300 +0100
@@ -0,0 +1,13 @@
+--- psd/Pset_ProcessCapacity.xml   2022-02-06 15:21:09.307219500 +0100
++++ psd/Pset_ProcessCapacity.xml   2022-02-06 15:19:18.907778400 +0100
+@@ -12,8 +12,8 @@
+     <ClassName>IfcSpatialElementType</ClassName>
+     <ClassName>IfcTransportationDevice</ClassName>
+-    <ClassName>IfcTransportElementType</ClassName>
++    <ClassName>IfcTransportationDeviceType</ClassName>
+     <ClassName>IfcZone</ClassName>
+   </ApplicableClasses>
+-  <ApplicableTypeValue>IfcBuiltSystem,IfcDistributionSystem,IfcDoor,IfcSpace,IfcSpatialElementType,IfcTransportationDevice,IfcTransportElementType,IfcZone</ApplicableTypeValue>
++  <ApplicableTypeValue>IfcBuiltSystem,IfcDistributionSystem,IfcDoor,IfcSpace,IfcSpatialElementType,IfcTransportationDevice,IfcTransportationDeviceType,IfcZone</ApplicableTypeValue>
+   <PropertyDefs>
+     <PropertyDef>
diff -N -w -U10 tmp/a/psd/Pset_RoadDesignCriteriaCommon.xml tmp/b/psd/Pset_RoadDesignCriteriaCommon.xml
--- tmp/a/psd/Pset_RoadDesignCriteriaCommon.xml 2022-02-13 13:30:08.205839800 +0100
+++ tmp/b/psd/Pset_RoadDesignCriteriaCommon.xml 2022-02-16 14:00:26.210431600 +0100
@@ -1,30 +1,30 @@
 <?xml version="1.0" ?>
 <PropertySetDef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" templatetype="PSET_TYPEDRIVENOVERRIDE" xsi:noNamespaceSchemaLocation="http://buildingSMART-tech.org/xml/psd/PSD_IFC4.xsd">
   <IfcVersion version="IFC4X3_DEV"/>
   <Name>Pset_RoadDesignCriteriaCommon</Name>
   <Definition>Road design criteria that may be attached to road parts.</Definition>
   <Applicability/>
   <ApplicableClasses>
-    <ClassName>IfcFacilityPart/JUNCTION</ClassName>
-    <ClassName>IfcFacilityPart/LEVELCROSSING</ClassName>
-    <ClassName>IfcFacilityPart/SEGMENT</ClassName>
-    <ClassName>IfcFacilityPart/BICYCLECROSSING</ClassName>
-    <ClassName>IfcFacilityPart/INTERSECTION</ClassName>
-    <ClassName>IfcFacilityPart/PEDESTRIAN_CROSSING</ClassName>
-    <ClassName>IfcFacilityPart/RAILWAYCROSSING</ClassName>
-    <ClassName>IfcFacilityPart/ROADSEGMENT</ClassName>
-    <ClassName>IfcFacilityPart/ROUNDABOUT</ClassName>
-    <ClassName>IfcFacilityPart/TOLLPLAZA</ClassName>
+    <ClassName>IfcFacilityPartCommon/JUNCTION</ClassName>
+    <ClassName>IfcFacilityPartCommon/LEVELCROSSING</ClassName>
+    <ClassName>IfcFacilityPartCommon/SEGMENT</ClassName>
+    <ClassName>IfcRoadPart/BICYCLECROSSING</ClassName>
+    <ClassName>IfcRoadPart/INTERSECTION</ClassName>
+    <ClassName>IfcRoadPart/PEDESTRIAN_CROSSING</ClassName>
+    <ClassName>IfcRoadPart/RAILWAYCROSSING</ClassName>
+    <ClassName>IfcRoadPart/ROADSEGMENT</ClassName>
+    <ClassName>IfcRoadPart/ROUNDABOUT</ClassName>
+    <ClassName>IfcRoadPart/TOLLPLAZA</ClassName>
     <ClassName>IfcRoad</ClassName>
   </ApplicableClasses>
-  <ApplicableTypeValue>IfcFacilityPart/JUNCTION,IfcFacilityPart/LEVELCROSSING,IfcFacilityPart/SEGMENT,IfcFacilityPart/BICYCLECROSSING,IfcFacilityPart/INTERSECTION,IfcFacilityPart/PEDESTRIAN_CROSSING,IfcFacilityPart/RAILWAYCROSSING,IfcFacilityPart/ROADSEGMENT,IfcFacilityPart/ROUNDABOUT,IfcFacilityPart/TOLLPLAZA,IfcRoad</ApplicableTypeValue>
+  <ApplicableTypeValue>IfcFacilityPartCommon/JUNCTION,IfcFacilityPartCommon/LEVELCROSSING,IfcFacilityPartCommon/SEGMENT,IfcRoadPart/BICYCLECROSSING,IfcRoadPart/INTERSECTION,IfcRoadPart/PEDESTRIAN_CROSSING,IfcRoadPart/RAILWAYCROSSING,IfcRoadPart/ROADSEGMENT,IfcRoadPart/ROUNDABOUT,IfcRoadPart/TOLLPLAZA,IfcRoad</ApplicableTypeValue>
   <PropertyDefs>
     <PropertyDef>
       <Name>Crossfall</Name>
       <Definition>Specifies the nominal crossfall as a ratio measure (slope) at the location of the event.</Definition>
       <PropertyType>
         <TypePropertySingleValue>
           <DataType type="IfcRatioMeasure"/>
         </TypePropertySingleValue>
       </PropertyType>
     </PropertyDef>
diff -N -w -U10 tmp/a/psd/Pset_TransportElementCommon.xml tmp/b/psd/Pset_TransportElementCommon.xml
--- tmp/a/psd/Pset_TransportElementCommon.xml   2022-02-13 13:30:06.562024500 +0100
+++ tmp/b/psd/Pset_TransportElementCommon.xml   2022-02-16 14:00:26.680175000 +0100
@@ -1,20 +1,20 @@
 <?xml version="1.0" ?>
 <PropertySetDef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" templatetype="PSET_TYPEDRIVENOVERRIDE" xsi:noNamespaceSchemaLocation="http://buildingSMART-tech.org/xml/psd/PSD_IFC4.xsd">
   <IfcVersion version="IFC4X3_DEV"/>
   <Name>Pset_TransportElementCommon</Name>
   <Definition>Properties common to the definition of all occurrences of IfcTransportElement or IfcTransportElementType</Definition>
   <Applicability/>
   <ApplicableClasses>
-    <ClassName>IfcTransportElement</ClassName>
+    <ClassName>IfcTransportationDevice</ClassName>
   </ApplicableClasses>
-  <ApplicableTypeValue>IfcTransportElement</ApplicableTypeValue>
+  <ApplicableTypeValue>IfcTransportationDevice</ApplicableTypeValue>
   <PropertyDefs>
     <PropertyDef>
       <Name>Reference</Name>
       <Definition>Reference ID for this specified type in this project (e.g. type 'A-1'), Also referred to as &quot;construction type&quot;. It should be provided as an alternative to the name of the &quot;object type&quot;, if the software does not support object types.</Definition>
       <PropertyType>
         <TypePropertySingleValue>
           <DataType type="IfcIdentifier"/>
         </TypePropertySingleValue>
       </PropertyType>
     </PropertyDef>
diff -N -w -U10 tmp/a/psd/Pset_TransportElementElevator.xml tmp/b/psd/Pset_TransportElementElevator.xml
--- tmp/a/psd/Pset_TransportElementElevator.xml 2022-02-13 13:30:06.568008200 +0100
+++ tmp/b/psd/Pset_TransportElementElevator.xml 2022-02-16 14:00:26.704110400 +0100
@@ -1,20 +1,20 @@
 <?xml version="1.0" ?>
 <PropertySetDef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" templatetype="PSET_TYPEDRIVENOVERRIDE" xsi:noNamespaceSchemaLocation="http://buildingSMART-tech.org/xml/psd/PSD_IFC4.xsd">
   <IfcVersion version="IFC4X3_DEV"/>
   <Name>Pset_TransportElementElevator</Name>
   <Definition>Properties common to the definition of all occurrences of IfcTransportElement with the predefined type =&quot;ELEVATOR&quot;</Definition>
   <Applicability/>
   <ApplicableClasses>
-    <ClassName>IfcTransportElement</ClassName>
+    <ClassName>IfcTransportationDevice</ClassName>
   </ApplicableClasses>
-  <ApplicableTypeValue>IfcTransportElement</ApplicableTypeValue>
+  <ApplicableTypeValue>IfcTransportationDevice</ApplicableTypeValue>
   <PropertyDefs>
     <PropertyDef>
       <Name>FireFightingLift</Name>
       <Definition>Indication whether the elevator is designed to serve as a fire fighting lift the case of fire (TRUE) or not (FALSE). A fire fighting lift is used by fire fighters to access the location of fire and to evacuate people.</Definition>
       <PropertyType>
         <TypePropertySingleValue>
           <DataType type="IfcBoolean"/>
         </TypePropertySingleValue>
       </PropertyType>
     </PropertyDef>
aothms commented 2 years ago
diff -N -w -U10 tmp/a/psd/Pset_VehicleAvailability.xml tmp/b/psd/Pset_VehicleAvailability.xml
--- tmp/a/psd/Pset_VehicleAvailability.xml  2022-02-13 13:30:05.474811700 +0100
+++ tmp/b/psd/Pset_VehicleAvailability.xml  2022-02-16 14:00:26.239354400 +0100
@@ -1,29 +1,29 @@
 <?xml version="1.0" ?>
 <PropertySetDef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" templatetype="PSET_TYPEDRIVENOVERRIDE" xsi:noNamespaceSchemaLocation="http://buildingSMART-tech.org/xml/psd/PSD_IFC4.xsd">
   <IfcVersion version="IFC4X3_DEV"/>
   <Name>Pset_VehicleAvailability</Name>
   <Definition>Property set for the application of availability data to vehicles and equipment.</Definition>
   <Applicability/>
   <ApplicableClasses>
-    <ClassName>IfcTransportElement/ROLLINGSTOCK</ClassName>
-    <ClassName>IfcTransportElement/ROLLINGSTOCK</ClassName>
-    <ClassName>IfcTransportElement/VEHICLEAIR</ClassName>
-    <ClassName>IfcTransportElement/VEHICLEAIR</ClassName>
-    <ClassName>IfcTransportElement/VEHICLEMARINE</ClassName>
-    <ClassName>IfcTransportElement/VEHICLEMARINE</ClassName>
-    <ClassName>IfcTransportElement/VEHICLE</ClassName>
-    <ClassName>IfcTransportElement/VEHICLE</ClassName>
-    <ClassName>IfcTransportElement/VEHICLETRACKED</ClassName>
-    <ClassName>IfcTransportElement/VEHICLETRACKED</ClassName>
+    <ClassName>IfcVehicle/ROLLINGSTOCK</ClassName>
+    <ClassName>IfcVehicle/ROLLINGSTOCK</ClassName>
+    <ClassName>IfcVehicle/VEHICLEAIR</ClassName>
+    <ClassName>IfcVehicle/VEHICLEAIR</ClassName>
+    <ClassName>IfcVehicle/VEHICLEMARINE</ClassName>
+    <ClassName>IfcVehicle/VEHICLEMARINE</ClassName>
+    <ClassName>IfcVehicle/VEHICLE</ClassName>
+    <ClassName>IfcVehicle/VEHICLE</ClassName>
+    <ClassName>IfcVehicle/VEHICLETRACKED</ClassName>
+    <ClassName>IfcVehicle/VEHICLETRACKED</ClassName>
   </ApplicableClasses>
-  <ApplicableTypeValue>IfcTransportElement/ROLLINGSTOCK,IfcTransportElement/ROLLINGSTOCK,IfcTransportElement/VEHICLEAIR,IfcTransportElement/VEHICLEAIR,IfcTransportElement/VEHICLEMARINE,IfcTransportElement/VEHICLEMARINE,IfcTransportElement/VEHICLE,IfcTransportElement/VEHICLE,IfcTransportElement/VEHICLETRACKED,IfcTransportElement/VEHICLETRACKED</ApplicableTypeValue>
+  <ApplicableTypeValue>IfcVehicle/ROLLINGSTOCK,IfcVehicle/ROLLINGSTOCK,IfcVehicle/VEHICLEAIR,IfcVehicle/VEHICLEAIR,IfcVehicle/VEHICLEMARINE,IfcVehicle/VEHICLEMARINE,IfcVehicle/VEHICLE,IfcVehicle/VEHICLE,IfcVehicle/VEHICLETRACKED,IfcVehicle/VEHICLETRACKED</ApplicableTypeValue>
   <PropertyDefs>
     <PropertyDef>
       <Name>VehicleAvailability</Name>
       <Definition>Vehicle or Plant availability</Definition>
       <PropertyType>
         <TypePropertySingleValue>
           <DataType type="IfcRatioMeasure"/>
         </TypePropertySingleValue>
       </PropertyType>
     </PropertyDef>
diff -N -w -U10 tmp/a/psd/Qto_VehicleBaseQuantities.xml tmp/b/psd/Qto_VehicleBaseQuantities.xml
--- tmp/a/psd/Qto_VehicleBaseQuantities.xml 2022-02-13 13:30:06.179925700 +0100
+++ tmp/b/psd/Qto_VehicleBaseQuantities.xml 2022-02-16 14:00:26.264288100 +0100
@@ -1,29 +1,29 @@
 <?xml version="1.0" ?>
 <QtoSetDef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:noNamespaceSchemaLocation="http://buildingSMART-tech.org/xml/psd/QTO_IFC4.xsd">
   <IfcVersion version="IFC4X3_DEV"/>
   <Name>Qto_VehicleBaseQuantities</Name>
   <Definition>Quantities for vehicles</Definition>
   <Applicability/>
   <ApplicableClasses>
-    <ClassName>IfcTransportElement/ROLLINGSTOCK</ClassName>
-    <ClassName>IfcTransportElement/ROLLINGSTOCK</ClassName>
-    <ClassName>IfcTransportElement/VEHICLEAIR</ClassName>
-    <ClassName>IfcTransportElement/VEHICLEAIR</ClassName>
-    <ClassName>IfcTransportElement/VEHICLEMARINE</ClassName>
-    <ClassName>IfcTransportElement/VEHICLEMARINE</ClassName>
-    <ClassName>IfcTransportElement/VEHICLE</ClassName>
-    <ClassName>IfcTransportElement/VEHICLE</ClassName>
-    <ClassName>IfcTransportElement/VEHICLETRACKED</ClassName>
-    <ClassName>IfcTransportElement/VEHICLETRACKED</ClassName>
+    <ClassName>IfcVehicle/ROLLINGSTOCK</ClassName>
+    <ClassName>IfcVehicle/ROLLINGSTOCK</ClassName>
+    <ClassName>IfcVehicle/VEHICLEAIR</ClassName>
+    <ClassName>IfcVehicle/VEHICLEAIR</ClassName>
+    <ClassName>IfcVehicle/VEHICLEMARINE</ClassName>
+    <ClassName>IfcVehicle/VEHICLEMARINE</ClassName>
+    <ClassName>IfcVehicle/VEHICLE</ClassName>
+    <ClassName>IfcVehicle/VEHICLE</ClassName>
+    <ClassName>IfcVehicle/VEHICLETRACKED</ClassName>
+    <ClassName>IfcVehicle/VEHICLETRACKED</ClassName>
   </ApplicableClasses>
-  <ApplicableTypeValue>IfcTransportElement/ROLLINGSTOCK,IfcTransportElement/ROLLINGSTOCK,IfcTransportElement/VEHICLEAIR,IfcTransportElement/VEHICLEAIR,IfcTransportElement/VEHICLEMARINE,IfcTransportElement/VEHICLEMARINE,IfcTransportElement/VEHICLE,IfcTransportElement/VEHICLE,IfcTransportElement/VEHICLETRACKED,IfcTransportElement/VEHICLETRACKED</ApplicableTypeValue>
+  <ApplicableTypeValue>IfcVehicle/ROLLINGSTOCK,IfcVehicle/ROLLINGSTOCK,IfcVehicle/VEHICLEAIR,IfcVehicle/VEHICLEAIR,IfcVehicle/VEHICLEMARINE,IfcVehicle/VEHICLEMARINE,IfcVehicle/VEHICLE,IfcVehicle/VEHICLE,IfcVehicle/VEHICLETRACKED,IfcVehicle/VEHICLETRACKED</ApplicableTypeValue>
   <QtoDefs>
     <QtoDef>
       <Name>Length</Name>
       <Definition>The nominal length of the transition section. The size information is provided in addition to the shape representation and the geometric parameters used within. In cases of inconsistency between the geometric parameters and the size properties, provided in the attached property set, the geometric parameters take precedence.</Definition>
       <QtoType>Q_LENGTH</QtoType>
     </QtoDef>
     <QtoDef>
       <Name>Width</Name>
       <Definition>The nominal width of the trench excavation. The size information is provided in addition to the shape representation and the geometric parameters used within. In cases of inconsistency between the geometric parameters and the size properties, provided in the attached property set, the geometric parameters take precedence.</Definition>
       <QtoType>Q_LENGTH</QtoType>