Annex E Examples - SpatialStructure_3
Example overview
SpatialStructure_3
Intent
This UT establishes a simple spatial structure for a level crossing (road/railway).
It is based on the storyline SLLC-DD.
Prerequisites
This scenario builds upon following other scenarios: - ProjectSetup_1
Content
This scenario covers the following concepts and/or IFC entities:
- spatial structure
- IfcSite
- IfcRailway
- IfcRoad
- IfcFacilityPart
with correct PredefinedType
- IfcRelInterferesElements
Situation
Project Breakdown
To represent the project breakdown for this unit test, we envision the following project structure:
- A. IfcProject
- A.a IfcSite
- IfcGeoModel (or similar representing terrain - optional for this unit test)
- A.a.1 IfcRoad
- IfcAlignment (optional for this unit test)
- A.a.1.1 IfcFacilityPart
- PredefinedType*=IfcRoadPartTypeEnum.ROADSEGMENT
- UsageType=LONGITUDINAL
- A.a.1.2 IfcFacilityPart
- PredefinedType*=IfcFacilityPartCommonTypeEnum.LEVELCROSSING
- UsageType=LONGITUDINAL
- A.a.1.3 IfcFacilityPart
- PredefinedType*=IfcRoadPartTypeEnum.ROADSEGMENT
- UsageType=LONGITUDINAL
- A.a.2 IfcRailway
- IfcAlignment (optional for this unit test)
- A.a.2.1 IfcFacilityPart
- PredefinedType*=IfcRailwayPartTypeEnum.TRACKSTUCTUREPART
- UsageType=LONGITUDINAL
- A.a.2.2 IfcFacilityPart
- PredefinedType*=IfcFacilityPartCommonTypeEnum.LEVELCROSSING
- UsageType=LONGITUDINAL
- A.a.2.3 IfcFacilityPart
- PredefinedType*=IfcRailwayPartTypeEnum.TRACKSTRUCTUREPART
- UsageType=LONGITUDINAL
- IfcRelInterferesElements
- InterferenceType="Crosses"
- RelatingElement=#A.a.1.2
- RelatedElement=#A.a.2.2
- InterferenceGeometry=optional for this unit test
* the PredefinedType enumeration is selected through "IfcFacilityPartTypeSelect".
Expected Results
The aim of this Unit Test, as explained above, is to test the implementation of the project breakdown through the spatial structure concepts of IFC 4.3.
As such, the expected results are:
- Screen-shot of the spatial structure breakdown as represented in the native application,
- The resulting IFC file containing the spatial structure requested.
For example, the application should be able to display something like what is shown in the picture below:
Supporting files
Following files correspond to this scenario:
Filename | Description |
---|---|
SpatialStructure_3.ifc |
IFC file with the content |
Figure 1 - Situation.png |
picture showing a map view of the situation |
Figure 2 - result.png |
picture showing possible result |
IFCTreeView.png |
picture showing file structure in IFCTreeView |
Images
IFC-SPF source
ISO-10303-21;
HEADER;
FILE_DESCRIPTION(('ViewDefinition [Ifc4X3NotAssigned]'),'2;1');
FILE_NAME(
/* name */ 'UT_RSS_2_RD.ifc',
/* time_stamp */ '2020-11-24T08:45:25',
/* author */ ('lars'),
/* organization */ ('Unknown'),
/* preprocessor_version */ 'GeometryGymIFC v0.1.4.0 by Geometry Gym Pty Ltd built 2020-11-12T09:32:58',
/* originating_system */ 'UT_RSS_2 v1.0.0.0',
/* authorization */ 'None');
FILE_SCHEMA (('IFC4X3_RC2'));
ENDSEC;
DATA;
#1= IFCCARTESIANPOINT((0.0,0.0,0.0));
#2= IFCAXIS2PLACEMENT3D(#1,$,$);
#3= IFCLOCALPLACEMENT($,#2);
#4= IFCSITE('3aT5HrPXr7ngZste8y1Cys',#10,'A.a Site',$,$,#3,$,$,$,$,$,$,$,$);
#5= IFCPERSON('lars','lars',$,$,$,$,$,$);
#6= IFCORGANIZATION($,'Unknown',$,$,$);
#7= IFCPERSONANDORGANIZATION(#5,#6,$);
#8= IFCAPPLICATION(#9,'0.1.4.0','UT_RSS_2 v1.0.0.0','UT_RSS_2 v1.0.0.0');
#9= IFCORGANIZATION($,'Geometry Gym Pty Ltd',$,$,$);
#10= IFCOWNERHISTORY(#7,#8,$,.ADDED.,1606203924,$,$,1606203924);
#11= IFCPROJECT('2JbM09ptr5SRkGdojkjLdj',#10,'UT_RSS_2',$,$,$,$,(#24),#12);
#12= IFCUNITASSIGNMENT((#13,#14,#15,#16,#17));
#13= IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);
#14= IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.);
#15= IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.);
#16= IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.);
#17= IFCSIUNIT(*,.TIMEUNIT.,$,.SECOND.);
#18= IFCRELAGGREGATES('22oqctZZ95DRRIKQ5FlGRP',#10,$,$,#11,(#4));
#19= IFCCARTESIANPOINT((0.0,0.0,0.0));
#20= IFCDIRECTION((0.0,0.0,1.0));
#21= IFCDIRECTION((1.0,0.0,0.0));
#22= IFCAXIS2PLACEMENT3D(#19,#20,#21);
#23= IFCDIRECTION((1.0,0.0,0.0));
#24= IFCGEOMETRICREPRESENTATIONCONTEXT('Model',$,3,0.00000001,#22,#25);
#25= IFCDIRECTION((0.0,1.0));
#26= IFCROAD('2ThS5Zzgr6meykdTzXJWSw',#10,'A.a.1 Road',$,$,#3,$,$,$);
#27= IFCRELAGGREGATES('1hoOjrxzz0APVTkiZGpE3s',#10,$,$,#4,(#26,#41));
#28= IFCCARTESIANPOINT((0.0,0.0,0.0));
#29= IFCAXIS2PLACEMENT3D(#28,$,$);
#30= IFCLOCALPLACEMENT(#3,#29);
#31= IFCFACILITYPART('1HDSYpfy9ErgGeNoKHiIlP',#10,'A.a.1.1',$,$,#30,$,$,$,IFCROADPARTTYPEENUM(.ROADSEGMENT.),.LONGITUDINAL.);
#32= IFCRELAGGREGATES('3eu1iTqoH3RgpRX$osb8Sf',#10,$,$,#26,(#31,#36,#40));
#33= IFCCARTESIANPOINT((0.0,0.0,0.0));
#34= IFCAXIS2PLACEMENT3D(#33,$,$);
#35= IFCLOCALPLACEMENT(#3,#34);
#36= IFCFACILITYPART('3t6Tql5cT8oAB9Q3DyUyls',#10,'A.a.1.2',$,$,#35,$,$,$,IFCFACILITYPARTCOMMONTYPEENUM(.LEVELCROSSING.),.LONGITUDINAL.);
#37= IFCCARTESIANPOINT((0.0,0.0,0.0));
#38= IFCAXIS2PLACEMENT3D(#37,$,$);
#39= IFCLOCALPLACEMENT(#3,#38);
#40= IFCFACILITYPART('2nvZS4udzFE9Nw_J5VXqJ3',#10,'A.a.1.3',$,$,#39,$,$,$,IFCROADPARTTYPEENUM(.ROADSEGMENT.),.LONGITUDINAL.);
#41= IFCRAILWAY('3kjzYIOwPCTxLYbGVHb6tk',#10,'A.a.2 Railway',$,$,#3,$,$,$);
#42= IFCCARTESIANPOINT((0.0,0.0,0.0));
#43= IFCAXIS2PLACEMENT3D(#42,$,$);
#44= IFCLOCALPLACEMENT(#3,#43);
#45= IFCFACILITYPART('063C1pbAr4DPfZ0j_Nv0aS',#10,'A.a.2.1',$,$,#44,$,$,$,IFCRAILWAYPARTTYPEENUM(.TRACKSTRUCTUREPART.),.LONGITUDINAL.);
#46= IFCRELAGGREGATES('0Z0tiCSHj8z8mfjiCJk1M8',#10,$,$,#41,(#45,#50,#54));
#47= IFCCARTESIANPOINT((0.0,0.0,0.0));
#48= IFCAXIS2PLACEMENT3D(#47,$,$);
#49= IFCLOCALPLACEMENT(#3,#48);
#50= IFCFACILITYPART('3k4A9vX2r8Pwg2Qwwxsk23',#10,'A.a.2.2',$,$,#49,$,$,$,IFCFACILITYPARTCOMMONTYPEENUM(.LEVELCROSSING.),.LONGITUDINAL.);
#51= IFCCARTESIANPOINT((0.0,0.0,0.0));
#52= IFCAXIS2PLACEMENT3D(#51,$,$);
#53= IFCLOCALPLACEMENT(#3,#52);
#54= IFCFACILITYPART('1H0wLuVEf6BOm6m611WE4V',#10,'A.a.2.3',$,$,#53,$,$,$,IFCRAILWAYPARTTYPEENUM(.TRACKSTRUCTUREPART.),.LONGITUDINAL.);
#55= IFCRELINTERFERESELEMENTS('2ZxY1voD9ENfzHS6C$5ONf',#10,$,$,#36,#50,$,'Crosses',.U.);
ENDSEC;
END-ISO-10303-21;