Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IfcVirtualElement provision for void #9

Open
aothms opened this issue Feb 16, 2022 · 2 comments
Open

IfcVirtualElement provision for void #9

aothms opened this issue Feb 16, 2022 · 2 comments

Comments

@aothms
Copy link
Member

aothms commented Feb 16, 2022

Handle provisions by means of virtual elements

@aothms
Copy link
Member Author

aothms commented Feb 16, 2022

--- tmp/a/IFC.exp	2022-02-06 16:40:50.904729000 +0100
+++ tmp/b/IFC.exp	2022-02-16 14:01:18.459259600 +0100
@@ -3166,20 +3166,30 @@
 END_TYPE;
 
 TYPE IfcVibrationIsolatorTypeEnum = ENUMERATION OF
 	(BASE
 	,COMPRESSION
 	,NOTDEFINED
 	,SPRING
 	,USERDEFINED);
 END_TYPE;
 
+TYPE IfcVirtualElementTypeEnum = ENUMERATION OF
+	(BOUNDARY
+	,CLEARANCE
+	,NOTDEFINED
+	,PROVISIONFORAREA
+	,PROVISIONFORSPACE
+	,PROVISIONFORVOID
+	,USERDEFINED);
+END_TYPE;
+
 TYPE IfcVoidingFeatureTypeEnum = ENUMERATION OF
 	(CHAMFER
 	,CUTOUT
 	,EDGE
 	,HOLE
 	,MITER
 	,NOTCH
 	,NOTDEFINED
 	,USERDEFINED);
 END_TYPE;
@@ -12187,20 +12197,25 @@
   ('IFC4X3_DEV.IFCVIBRATIONISOLATORTYPE' IN TYPEOF(SELF\IfcObject.IsTypedBy[1].RelatingType));
 END_ENTITY;
 
 ENTITY IfcVibrationIsolatorType
  SUBTYPE OF (IfcImpactProtectionDeviceType);
 	PredefinedType : IfcVibrationIsolatorTypeEnum;
 END_ENTITY;
 
 ENTITY IfcVirtualElement
  SUBTYPE OF (IfcElement);
+	PredefinedType : OPTIONAL IfcVirtualElementTypeEnum;
+ WHERE
+	CorrectPredefinedType : NOT(EXISTS(PredefinedType)) OR
+ (PredefinedType <> IfcVirtualElementTypeEnum.USERDEFINED) OR
+ ((PredefinedType = IfcVirtualElementTypeEnum.USERDEFINED) AND EXISTS (SELF\IfcObject.ObjectType));
 END_ENTITY;
 
 ENTITY IfcVirtualGridIntersection;
 	IntersectingAxes : LIST [2:2] OF UNIQUE IfcGridAxis;
 	OffsetDistances : LIST [2:3] OF IfcLengthMeasure;
 END_ENTITY;
 
 ENTITY IfcVoidStratum
  SUBTYPE OF (IfcGeotechnicalStratum);
 END_ENTITY;

@aothms
Copy link
Member Author

aothms commented Feb 16, 2022

diff -N -w -U10 tmp/a/psd/Pset_BuildingElementProxyProvisionForVoid.xml tmp/b/psd/Pset_BuildingElementProxyProvisionForVoid.xml
--- tmp/a/psd/Pset_BuildingElementProxyProvisionForVoid.xml	2022-02-06 16:41:40.941278400 +0100
+++ tmp/b/psd/Pset_BuildingElementProxyProvisionForVoid.xml	1970-01-01 01:00:00.000000000 +0100
@@ -1,68 +0,0 @@
-<?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_BuildingElementProxyProvisionForVoid</Name>
-  <Definition>Properties common to the definition of a provision for void as a special type of an instance of IfcBuiltElementProxy. A provision for void is a spatial provision that might be resolved into a void in a building element. The properties carry requested values.</Definition>
-  <Applicability/>
-  <ApplicableClasses/>
-  <ApplicableTypeValue/>
-  <PropertyDefs>
-    <PropertyDef>
-      <Name>Shape</Name>
-      <Definition>Cross sectional shape. Note that this shape is uniform throughout the length of the segment. For nonuniform shapes, a transition fitting should be used instead.</Definition>
-      <PropertyType>
-        <TypePropertySingleValue>
-          <DataType type="IfcLabel"/>
-        </TypePropertySingleValue>
-      </PropertyType>
-    </PropertyDef>
-    <PropertyDef>
-      <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>
-      <PropertyType>
-        <TypePropertySingleValue>
-          <DataType type="IfcPositiveLengthMeasure"/>
-        </TypePropertySingleValue>
-      </PropertyType>
-    </PropertyDef>
-    <PropertyDef>
-      <Name>Height</Name>
-      <Definition>Height of the object. It is the upper hight of the railing above the floor or stair.
-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>
-      <PropertyType>
-        <TypePropertySingleValue>
-          <DataType type="IfcPositiveLengthMeasure"/>
-        </TypePropertySingleValue>
-      </PropertyType>
-    </PropertyDef>
-    <PropertyDef>
-      <Name>Diameter</Name>
-      <Definition>Diameter of the object. It is the diameter of the handrail of the railing.
-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.
-Here the diameter of the hand or guardrail within the railing.</Definition>
-      <PropertyType>
-        <TypePropertySingleValue>
-          <DataType type="IfcPositiveLengthMeasure"/>
-        </TypePropertySingleValue>
-      </PropertyType>
-    </PropertyDef>
-    <PropertyDef>
-      <Name>Depth</Name>
-      <Definition>The nominal depth 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>
-      <PropertyType>
-        <TypePropertySingleValue>
-          <DataType type="IfcPositiveLengthMeasure"/>
-        </TypePropertySingleValue>
-      </PropertyType>
-    </PropertyDef>
-    <PropertyDef>
-      <Name>System</Name>
-      <Definition>he building service system that requires the provision for voids, e.g. 'Air Conditioning', 'Plumbing', 'Electro', etc.</Definition>
-      <PropertyType>
-        <TypePropertySingleValue>
-          <DataType type="IfcLabel"/>
-        </TypePropertySingleValue>
-      </PropertyType>
-    </PropertyDef>
-  </PropertyDefs>
-</PropertySetDef>
diff -N -w -U10 tmp/a/psd/Pset_ProvisionForVoid.xml tmp/b/psd/Pset_ProvisionForVoid.xml
--- tmp/a/psd/Pset_ProvisionForVoid.xml	1970-01-01 01:00:00.000000000 +0100
+++ tmp/b/psd/Pset_ProvisionForVoid.xml	2022-02-16 14:01:18.349550300 +0100
@@ -0,0 +1,70 @@
+<?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_ProvisionForVoid</Name>
+  <Definition/>
+  <Applicability/>
+  <ApplicableClasses>
+    <ClassName>IfcVirtualElement/PROVISIONFORVOID</ClassName>
+  </ApplicableClasses>
+  <ApplicableTypeValue>IfcVirtualElement/PROVISIONFORVOID</ApplicableTypeValue>
+  <PropertyDefs>
+    <PropertyDef>
+      <Name>Shape</Name>
+      <Definition>Cross sectional shape. Note that this shape is uniform throughout the length of the segment. For nonuniform shapes, a transition fitting should be used instead.</Definition>
+      <PropertyType>
+        <TypePropertySingleValue>
+          <DataType type="IfcLabel"/>
+        </TypePropertySingleValue>
+      </PropertyType>
+    </PropertyDef>
+    <PropertyDef>
+      <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>
+      <PropertyType>
+        <TypePropertySingleValue>
+          <DataType type="IfcPositiveLengthMeasure"/>
+        </TypePropertySingleValue>
+      </PropertyType>
+    </PropertyDef>
+    <PropertyDef>
+      <Name>Height</Name>
+      <Definition>Height of the object. It is the upper hight of the railing above the floor or stair.
+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>
+      <PropertyType>
+        <TypePropertySingleValue>
+          <DataType type="IfcPositiveLengthMeasure"/>
+        </TypePropertySingleValue>
+      </PropertyType>
+    </PropertyDef>
+    <PropertyDef>
+      <Name>Diameter</Name>
+      <Definition>Diameter of the object. It is the diameter of the handrail of the railing.
+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.
+Here the diameter of the hand or guardrail within the railing.</Definition>
+      <PropertyType>
+        <TypePropertySingleValue>
+          <DataType type="IfcPositiveLengthMeasure"/>
+        </TypePropertySingleValue>
+      </PropertyType>
+    </PropertyDef>
+    <PropertyDef>
+      <Name>Depth</Name>
+      <Definition>The nominal depth 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>
+      <PropertyType>
+        <TypePropertySingleValue>
+          <DataType type="IfcPositiveLengthMeasure"/>
+        </TypePropertySingleValue>
+      </PropertyType>
+    </PropertyDef>
+    <PropertyDef>
+      <Name>System</Name>
+      <Definition>he building service system that requires the provision for voids, e.g. 'Air Conditioning', 'Plumbing', 'Electro', etc.</Definition>
+      <PropertyType>
+        <TypePropertySingleValue>
+          <DataType type="IfcLabel"/>
+        </TypePropertySingleValue>
+      </PropertyType>
+    </PropertyDef>
+  </PropertyDefs>
+</PropertySetDef>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant