diff --git a/Georeferencing-1/UT_GeoRef_1.ifc b/Georeferencing-1/UT_GeoRef_1.ifc index 8425e10d..ca6abafe 100644 --- a/Georeferencing-1/UT_GeoRef_1.ifc +++ b/Georeferencing-1/UT_GeoRef_1.ifc @@ -7,7 +7,7 @@ ISO-10303-21; HEADER; FILE_DESCRIPTION (('ViewDefinition [Ifc4X3NotAssigned]'), '2;1'); FILE_NAME ('UT_GeoRef_1.ifc', '2020-07-27T12:00:00', ('Stefan Jaud'), ('bSI Infra Extension Deployment project'), 'manual text editing', 'SublimeText 3.0', 'GitHub pull request'); -FILE_SCHEMA (('IFC4X3_RC2')); +FILE_SCHEMA (('IFC4X3_RC3')); ENDSEC; DATA; @@ -37,11 +37,11 @@ DATA; /* ------- coordinate reference system --------------------------------------------------------- */ #30 = IFCPROJECTEDCRS('EPSG:5834', 'DB_REF / 3-degree Gauss-Kruger zone 4 (E-N) + DHHN92 height', 'EPSG:5684', 'EPSG:5783', 'Gauss-Kruger', '4', #18); /* ------- MapConversion provides information about the global-to-local transformation --------- */ -#31 = IFCMAPCONVERSION(#28, #30, 4468005., 5334600., 515., 1., 0., 1.); +#31 = IFCMAPCONVERSION(#28, #30, 4468005., 5334600., 515., 1., 0., 1., 1., 1.); /* ------- UT Tin_1 ---------------------------------------------------------------------------- */ /* ------- IfcSite is the top most element in the spatial structure ---------------------------- */ -#32 = IFCSITE('27H$neCQf1NwtmczxBInPR', $, $, $, $, #33, #40, $, .ELEMENT., $, $, $, $, $); +#32 = IFCSITE('27H$neCQf1NwtmczxBInPR', $, $, $, $, #33, $, $, .ELEMENT., $, $, $, $, $); /* ------- The IfcSite's placement is the top-most placement and uses the same ----------------- */ /* ------- IfcAxis2Placement as IfcGeometricRepresentationContext does ------------------------- */ #33 = IFCLOCALPLACEMENT($, #29); diff --git a/Georeferencing-3/GeoRef-3-d48.ifc b/Georeferencing-3/GeoRef-3-d48.ifc new file mode 100644 index 00000000..f3c74e49 --- /dev/null +++ b/Georeferencing-3/GeoRef-3-d48.ifc @@ -0,0 +1,78 @@ +ISO-10303-21; + +/* ------- This file was produced manually for IFC Infra Extension Deployment project. --------- */ +/* ------- (and my PhD) ------------------------------------------------------------------------ */ +/* ------- The file should come with a README.md with supplementing info. ---------------------- */ +/* ------- Stefan Jaud, stefan.jaud@tum.de, 2021.03.20. ---------------------------------------- */ + +HEADER; +FILE_DESCRIPTION (('ViewDefinition [Ifc4X3NotAssigned]'), '2;1'); +FILE_NAME ('GeoRef-3-d48.ifc', '2021-03-20T12:00:00', ('Stefan Jaud'), ('bSI Infra Extension Deployment project'), 'manual text editing', 'SublimeText 3.0', 'GitHub pull request'); +FILE_SCHEMA (('IFC4X3_RC3')); +ENDSEC; + +DATA; + +/* ------- UT ProjectSetup_1 ------------------------------------------------------------------- */ +#1 = IFCDIMENSIONALEXPONENTS(0, 0, 0, 0, 0, 0, 0); +#2 = IFCDIRECTION((1., 0., 0.)); +#3 = IFCDIRECTION((0., 1., 0.)); +#4 = IFCDIRECTION((0., 0., 1.)); +#5 = IFCCARTESIANPOINT((0., 0., 0.)); +#16 = IFCPROJECT('2DAvEupIz0HQr73cMaawtY', $, 'GeoRef_1', 'The bare minimum of an IFC file exchange with simple georeferencing meta data.', $, $, $, (#28), #17); +#17 = IFCUNITASSIGNMENT((#18, #19, #20, #24, #25, #26, #27)); +#18 = IFCSIUNIT(*, .LENGTHUNIT., $, .METRE.); +#19 = IFCSIUNIT(*, .AREAUNIT., $, .SQUARE_METRE.); +#20 = IFCSIUNIT(*, .VOLUMEUNIT., $, .CUBIC_METRE.); +#22 = IFCSIUNIT(*, .PLANEANGLEUNIT., $, .RADIAN.); +#23 = IFCMEASUREWITHUNIT(IFCPLANEANGLEMEASURE(0.017453292519943295), #22); +#24 = IFCCONVERSIONBASEDUNIT(#1, .PLANEANGLEUNIT., 'degree', #23); +#25 = IFCSIUNIT(*, .MASSUNIT., .KILO., .GRAM.); +#26 = IFCSIUNIT(*, .TIMEUNIT., $, .SECOND.); +#27 = IFCMONETARYUNIT('EUR'); +#28 = IFCGEOMETRICREPRESENTATIONCONTEXT($, 'Model', 3, 1.E-6, #29, #54); +#29 = IFCAXIS2PLACEMENT3D(#5, #4, #2); + +/* ------- UT GeoRef_1 ------------------------------------------------------------------------- */ +/* ------- ProjectedCRS provides information about the underlying geodetic --------------------- */ +/* ------- coordinate reference system --------------------------------------------------------- */ +#30 = IFCPROJECTEDCRS('EPSG:3912', 'MGI 1901 / Slovene National Grid', 'EPSG:3906', $, 'Gauss-Kruger', '5', #18); +/* ------- MapConversion provides information about the global-to-local transformation --------- */ +#31 = IFCMAPCONVERSION(#28, #30, 430500., 137100., 0., 1., 0., 1., 1., 1.); + +/* ------- UT SpatialStructure_1 --------------------------------------------------------------- */ +/* ------- IfcSite is the top most element in the spatial structure ---------------------------- */ +#32 = IFCSITE('27H$neCQf1NwtmczxBInPR', $, $, $, $, #33, $, $, .ELEMENT., $, $, $, $, $); +/* ------- The IfcSite's placement is the top-most placement and uses the same ----------------- */ +/* ------- IfcAxis2Placement as IfcGeometricRepresentationContext does ------------------------- */ +#33 = IFCLOCALPLACEMENT($, #29); +/* ------- Project/Spatial structure ----------------------------------------------------------- */ +#35 = IFCRELAGGREGATES('3Hu7f6BmT14B_XS9yS78Jr', $, $, $, #16, (#32)); + +/* ------- UT Georef-3 ------------------------------------------------------------------------- */ +/* ------- Representation of the building's outline: ------------------------------------------- */ +/* ------- Polyline with six points ------------------------------------------------------------ */ +#40= IFCPRODUCTDEFINITIONSHAPE($,$,(#41)); +#41= IFCSHAPEREPRESENTATION(#28,'Axis','Curve2D',(#42)); +#42= IFCPOLYLINE((#43,#44,#47,#48,#45,#46,#43)); +#43 = IFCCARTESIANPOINT((92.58,63.68)); +#44 = IFCCARTESIANPOINT((91.82,69.10)); +#45 = IFCCARTESIANPOINT((88.26,60.37)); +#46 = IFCCARTESIANPOINT((87.95,62.90)); +#47 = IFCCARTESIANPOINT((77.37,66.98)); +#48 = IFCCARTESIANPOINT((78.67,58.98)); + +/* ------ IfcBuilding has a representation of its outline -------------------------------------- */ +#50 = IFCBUILDING('28H$neCQf1NwtmczxBInPR', $, $, $, $, #53, #40, $, $, $, $, $); +/* ------ Spatial inclusion in the project ----------------------------------------------------- */ +#51 = IFCRELAGGREGATES('3Hu7f6BmT14B_XS9yS78Jq', $, $, $, #32, (#50)); +/* ------ Placement is relative to that of IfcSite according to the spatial structure ---------- */ +/* ------ The way it is modelled, there is no offset and no rotation. -------------------------- */ +#52 = IFCAXIS2PLACEMENT3D(#5, #4, #2); +#53 = IFCLOCALPLACEMENT(#33, #52); + +/* ------ TrueNorth of the geometric context must be a 2D vector ------------------------------- */ +#54 = IFCDIRECTION((0.,1.)); + +ENDSEC; +END-ISO-10303-21; diff --git a/Georeferencing-3/GeoRef-3-d96.ifc b/Georeferencing-3/GeoRef-3-d96.ifc new file mode 100644 index 00000000..b4d44180 --- /dev/null +++ b/Georeferencing-3/GeoRef-3-d96.ifc @@ -0,0 +1,78 @@ +ISO-10303-21; + +/* ------- This file was produced manually for IFC Infra Extension Deployment project. --------- */ +/* ------- (and my PhD) ------------------------------------------------------------------------ */ +/* ------- The file should come with a README.md with supplementing info. ---------------------- */ +/* ------- Stefan Jaud, stefan.jaud@tum.de, 2021.03.20. ---------------------------------------- */ + +HEADER; +FILE_DESCRIPTION (('ViewDefinition [Ifc4X3NotAssigned]'), '2;1'); +FILE_NAME ('GeoRef-3-d96.ifc', '2021-03-20T12:00:00', ('Stefan Jaud'), ('bSI Infra Extension Deployment project'), 'manual text editing', 'SublimeText 3.0', 'GitHub pull request'); +FILE_SCHEMA (('IFC4X3_RC3')); +ENDSEC; + +DATA; + +/* ------- UT ProjectSetup_1 ------------------------------------------------------------------- */ +#1 = IFCDIMENSIONALEXPONENTS(0, 0, 0, 0, 0, 0, 0); +#2 = IFCDIRECTION((1., 0., 0.)); +#3 = IFCDIRECTION((0., 1., 0.)); +#4 = IFCDIRECTION((0., 0., 1.)); +#5 = IFCCARTESIANPOINT((0., 0., 0.)); +#16 = IFCPROJECT('2DAvEupIz0HQr73cMaawtY', $, 'GeoRef_1', 'The bare minimum of an IFC file exchange with simple georeferencing meta data.', $, $, $, (#28), #17); +#17 = IFCUNITASSIGNMENT((#18, #19, #20, #24, #25, #26, #27)); +#18 = IFCSIUNIT(*, .LENGTHUNIT., $, .METRE.); +#19 = IFCSIUNIT(*, .AREAUNIT., $, .SQUARE_METRE.); +#20 = IFCSIUNIT(*, .VOLUMEUNIT., $, .CUBIC_METRE.); +#22 = IFCSIUNIT(*, .PLANEANGLEUNIT., $, .RADIAN.); +#23 = IFCMEASUREWITHUNIT(IFCPLANEANGLEMEASURE(0.017453292519943295), #22); +#24 = IFCCONVERSIONBASEDUNIT(#1, .PLANEANGLEUNIT., 'degree', #23); +#25 = IFCSIUNIT(*, .MASSUNIT., .KILO., .GRAM.); +#26 = IFCSIUNIT(*, .TIMEUNIT., $, .SECOND.); +#27 = IFCMONETARYUNIT('EUR'); +#28 = IFCGEOMETRICREPRESENTATIONCONTEXT($, 'Model', 3, 1.E-6, #29, #54); +#29 = IFCAXIS2PLACEMENT3D(#5, #4, #2); + +/* ------- UT GeoRef_1 ------------------------------------------------------------------------- */ +/* ------- ProjectedCRS provides information about the underlying geodetic --------------------- */ +/* ------- coordinate reference system --------------------------------------------------------- */ +#30 = IFCPROJECTEDCRS('EPSG:3794', 'Slovenia 1996 / Slovene National Grid', 'EPSG:4765', $, 'Gauss-Kruger', '5', #18); +/* ------- MapConversion provides information about the global-to-local transformation --------- */ +#31 = IFCMAPCONVERSION(#28, #30, 430200., 137600., 0., 1., 0., 1., 1., 1.); + +/* ------- UT SpatialStructure_1 --------------------------------------------------------------- */ +/* ------- IfcSite is the top most element in the spatial structure ---------------------------- */ +#32 = IFCSITE('27H$neCQf1NwtmczxBInPR', $, $, $, $, #33, $, $, .ELEMENT., $, $, $, $, $); +/* ------- The IfcSite's placement is the top-most placement and uses the same ----------------- */ +/* ------- IfcAxis2Placement as IfcGeometricRepresentationContext does ------------------------- */ +#33 = IFCLOCALPLACEMENT($, #29); +/* ------- Project/Spatial structure ----------------------------------------------------------- */ +#35 = IFCRELAGGREGATES('3Hu7f6BmT14B_XS9yS78Jr', $, $, $, #16, (#32)); + +/* ------- UT Georef-3 ------------------------------------------------------------------------- */ +/* ------- Representation of the building's outline: ------------------------------------------- */ +/* ------- Polyline with six points ------------------------------------------------------------ */ +#40= IFCPRODUCTDEFINITIONSHAPE($,$,(#41)); +#41= IFCSHAPEREPRESENTATION(#28,'Axis','Curve2D',(#42)); +#42= IFCPOLYLINE((#43,#44,#47,#48,#45,#46,#43)); +#43 = IFCCARTESIANPOINT((22.202,51.125)); +#44 = IFCCARTESIANPOINT((21.442,56.545)); +#45 = IFCCARTESIANPOINT((17.882,47.815)); +#46 = IFCCARTESIANPOINT((17.572,50.345)); +#47 = IFCCARTESIANPOINT((6.992,54.425)); +#48 = IFCCARTESIANPOINT((8.292,46.425)); + +/* ------ IfcBuilding has a representation of its outline -------------------------------------- */ +#50 = IFCBUILDING('28H$neCQf1NwtmczxBInPR', $, $, $, $, #53, #40, $, $, $, $, $); +/* ------ Spatial inclusion in the project ----------------------------------------------------- */ +#51 = IFCRELAGGREGATES('3Hu7f6BmT14B_XS9yS78Jq', $, $, $, #32, (#50)); +/* ------ Placement is relative to that of IfcSite according to the spatial structure ---------- */ +/* ------ The way it is modelled, there is no offset and no rotation. -------------------------- */ +#52 = IFCAXIS2PLACEMENT3D(#5, #4, #2); +#53 = IFCLOCALPLACEMENT(#33, #52); + +/* ------ TrueNorth of the geometric context must be a 2D vector ------------------------------- */ +#54 = IFCDIRECTION((0.,1.)); + +ENDSEC; +END-ISO-10303-21; diff --git a/Georeferencing-3/Georef-3-D48-OIP.png b/Georeferencing-3/Georef-3-D48-OIP.png new file mode 100644 index 00000000..399aed7f Binary files /dev/null and b/Georeferencing-3/Georef-3-D48-OIP.png differ diff --git a/Georeferencing-3/Georef-3-D96-OIP.png b/Georeferencing-3/Georef-3-D96-OIP.png new file mode 100644 index 00000000..92125ab6 Binary files /dev/null and b/Georeferencing-3/Georef-3-D96-OIP.png differ diff --git a/Georeferencing-3/readme.md b/Georeferencing-3/readme.md new file mode 100644 index 00000000..342c7c65 --- /dev/null +++ b/Georeferencing-3/readme.md @@ -0,0 +1,34 @@ + +### Intent + +This scenario provides the outline of a house in two separate files with different georeferencing: + +- D48/GK (EPSG:3912) +- D96/TM (EPSG:3794) + +The content of both files should overlay if interpreted correctly (up to a certain precision). + +### Prerequisites + +This scenario builds upon following other scenarios: + +- Georeferencing-1 +- SpatialStructure-1 + +### Content + +This scenario covers the following additional concepts and/or IFC entities: + +- representation of `IfcBuilding`: + - `IfcPolyline` + +### Supporting files + +Following files correspond to this scenario: + +| Filename | Description | +|:----------------------------------|-------------------------------------------| +| `GeoRef-3-d48.ifc` | the building's outline in D48/GK as IFC file | +| `GeoRef-3-d96.ifc` | the building's outline in D96/TM as IFC file | +| `GeoRef-3-D48-OIP.png` | screen shot of D48/GK file loaded in TUM Open Infra Platform | +| `GeoRef-3-D96-OIP.png` | screen shot of D96/TM file loaded in TUM Open Infra Platform | diff --git a/Georeferencing-4/GeoRef-4.ifc b/Georeferencing-4/GeoRef-4.ifc new file mode 100644 index 00000000..6f2aa665 --- /dev/null +++ b/Georeferencing-4/GeoRef-4.ifc @@ -0,0 +1,95 @@ +ISO-10303-21; + +/* ------- This file was produced manually for IFC Infra Extension Deployment project. --------- */ +/* ------- (and my PhD) ------------------------------------------------------------------------ */ +/* ------- The file should come with a README.md with supplementing info. ---------------------- */ +/* ------- Stefan Jaud, stefan.jaud@tum.de, 2021.03.22. ---------------------------------------- */ + +HEADER; +FILE_DESCRIPTION (('ViewDefinition [Ifc4X3NotAssigned]'), '2;1'); +FILE_NAME ('GeoRef-4.ifc', '2021-03-22T12:00:00', ('Stefan Jaud'), ('bSI Infra Extension Deployment project'), 'manual text editing', 'SublimeText 3.0', 'GitHub pull request'); +FILE_SCHEMA (('IFC4X3_RC3')); +ENDSEC; + +DATA; + +/* ------- UT ProjectSetup-1 ------------------------------------------------------------------- */ +#1 = IFCDIMENSIONALEXPONENTS(0, 0, 0, 0, 0, 0, 0); +#2 = IFCDIRECTION((1., 0., 0.)); +#3 = IFCDIRECTION((0., 1., 0.)); +#4 = IFCDIRECTION((0., 0., 1.)); +#5 = IFCCARTESIANPOINT((0., 0., 0.)); +#16 = IFCPROJECT('2DAvEupIz0HQr73cMaawtY', $, 'GeoRef-4', 'An IFC file exchange with two different georeferencing meta data.', $, $, $, (#28, #68), #17); +#17 = IFCUNITASSIGNMENT((#18, #19, #20, #24, #25, #26, #27)); +#18 = IFCSIUNIT(*, .LENGTHUNIT., $, .METRE.); +#19 = IFCSIUNIT(*, .AREAUNIT., $, .SQUARE_METRE.); +#20 = IFCSIUNIT(*, .VOLUMEUNIT., $, .CUBIC_METRE.); +#22 = IFCSIUNIT(*, .PLANEANGLEUNIT., $, .RADIAN.); +#23 = IFCMEASUREWITHUNIT(IFCPLANEANGLEMEASURE(0.017453292519943295), #22); +#24 = IFCCONVERSIONBASEDUNIT(#1, .PLANEANGLEUNIT., 'degree', #23); +#25 = IFCSIUNIT(*, .MASSUNIT., .KILO., .GRAM.); +#26 = IFCSIUNIT(*, .TIMEUNIT., $, .SECOND.); +#27 = IFCMONETARYUNIT('EUR'); +#54 = IFCDIRECTION((0.,1.)); + +/* ------- UT SpatialStructure-1 --------------------------------------------------------------- */ +/* ------- IfcSite is the top most element in the spatial structure ---------------------------- */ +#32 = IFCSITE('27H$neCQf1NwtmczxBInPR', $, $, $, $, #33, $, $, .ELEMENT., $, $, $, $, $); +/* ------- The IfcSite's placement is the top-most placement and uses the same ----------------- */ +/* ------- IfcAxis2Placement as IfcGeometricRepresentationContext does ------------------------- */ +#33 = IFCLOCALPLACEMENT($, #29); +/* ------- Project/Spatial structure ----------------------------------------------------------- */ +#35 = IFCRELAGGREGATES('3Hu7f6BmT14B_XS9yS78Jr', $, $, $, #16, (#32)); + +/* ------- UT GeoRef-4 ------------------------------------------------------------------------- */ +/* ------ IfcBuilding has two representations of its outline ----------------------------------- */ +#50 = IFCBUILDING('28H$neCQf1NwtmczxBInPR', $, $, $, $, #53, #40, $, $, $, $, $); +#40 = IFCPRODUCTDEFINITIONSHAPE($,$,(#41,#81)); +/* ------ Spatial inclusion in the project ----------------------------------------------------- */ +#51 = IFCRELAGGREGATES('3Hu7f6BmT14B_XS9yS78Jq', $, $, $, #32, (#50)); +/* ------ Placement is relative to that of IfcSite according to the spatial structure ---------- */ +/* ------ The way it is modelled, there is no offset and no rotation. -------------------------- */ +#52 = IFCAXIS2PLACEMENT3D(#5, #4, #2); +#53 = IFCLOCALPLACEMENT(#33, #52); + +/* ------- D48/GK ------------------------------------------------------------------------------ */ +#28 = IFCGEOMETRICREPRESENTATIONCONTEXT($, 'Model', 3, 1.E-6, #29, #54); +#29 = IFCAXIS2PLACEMENT3D(#5, #4, #2); +/* ------- ProjectedCRS provides information about the underlying geodetic --------------------- */ +/* ------- coordinate reference system --------------------------------------------------------- */ +#30 = IFCPROJECTEDCRS('EPSG:3912', 'MGI 1901 / Slovene National Grid', 'EPSG:3906', $, 'Gauss-Kruger', '5', #18); +/* ------- MapConversion provides information about the global-to-local transformation --------- */ +#31 = IFCMAPCONVERSION(#28, #30, 430500., 137100., 511., 1., 0., 1., 1., 1.); +/* ------- Representation of the building's outline: ------------------------------------------- */ +/* ------- Polyline with six points ------------------------------------------------------------ */ +#41= IFCSHAPEREPRESENTATION(#28,'Axis','Curve2D',(#42)); +#42= IFCPOLYLINE((#43,#44,#47,#48,#45,#46,#43)); +#43 = IFCCARTESIANPOINT((92.58,63.68)); +#44 = IFCCARTESIANPOINT((91.82,69.10)); +#45 = IFCCARTESIANPOINT((88.26,60.37)); +#46 = IFCCARTESIANPOINT((87.95,62.90)); +#47 = IFCCARTESIANPOINT((77.37,66.98)); +#48 = IFCCARTESIANPOINT((78.67,58.98)); + +/* ------- D96/TK ------------------------------------------------------------------------------ */ +#68 = IFCGEOMETRICREPRESENTATIONCONTEXT($, 'Model', 3, 1.E-6, #69, #54); +#69 = IFCAXIS2PLACEMENT3D(#5, #4, #2); +/* ------- ProjectedCRS provides information about the underlying geodetic --------------------- */ +/* ------- coordinate reference system --------------------------------------------------------- */ +#70 = IFCPROJECTEDCRS('EPSG:3794', 'Slovenia 1996 / Slovene National Grid', 'EPSG:4765', $, 'Gauss-Kruger', '5', #18); +/* ------- MapConversion provides information about the global-to-local transformation --------- */ +#71 = IFCMAPCONVERSION(#68, #70, 430200., 137600., 511.5, 1., 0., 1., 1., 1.); +/* ------- Representation of the building's outline: ------------------------------------------- */ +/* ------- Polyline with six points ------------------------------------------------------------ */ +#81 = IFCSHAPEREPRESENTATION(#68,'Axis','Curve2D',(#82)); +#82 = IFCPOLYLINE((#83,#84,#87,#88,#85,#86,#83)); +#83 = IFCCARTESIANPOINT((92.58,63.68)); +#84 = IFCCARTESIANPOINT((91.82,69.10)); +#85 = IFCCARTESIANPOINT((88.26,60.37)); +#86 = IFCCARTESIANPOINT((87.95,62.90)); +#87 = IFCCARTESIANPOINT((77.37,66.98)); +#88 = IFCCARTESIANPOINT((78.67,58.98)); + + +ENDSEC; +END-ISO-10303-21; diff --git a/Georeferencing-4/Georef-4-OIP_separateModels.png b/Georeferencing-4/Georef-4-OIP_separateModels.png new file mode 100644 index 00000000..a62b9837 Binary files /dev/null and b/Georeferencing-4/Georef-4-OIP_separateModels.png differ diff --git a/Georeferencing-4/Georef-4-OIP_wrong.png b/Georeferencing-4/Georef-4-OIP_wrong.png new file mode 100644 index 00000000..1a5a773f Binary files /dev/null and b/Georeferencing-4/Georef-4-OIP_wrong.png differ diff --git a/Georeferencing-4/readme.md b/Georeferencing-4/readme.md new file mode 100644 index 00000000..cb6b2f1e --- /dev/null +++ b/Georeferencing-4/readme.md @@ -0,0 +1,40 @@ + +### Intent + +This scenario provides the outline of the house from Georeferencing-3 unit test in a single IFC file with different georeferencing: + +- D48/GK (EPSG:3912) +- D96/TM (EPSG:3794) + +Both outlines should overlay with a height difference of 0.5 meter if interpreted correctly (up to a certain precision for the horizontal layout). + +**NOTE**: The produced IFC file is wrong according to the current specification. +These changes are needed: + +1. The constraint on the derived `HasCoordinateOperation` within `IfcGeometricRepresentationContext` has to be revised, + such that not *all* `HasCoordinateOperation` attributes in an IFC file must refer to an *identical* instance of `IfcCoordinateReferenceSystem`. +1. A relaxation of the restriction of only one 3D and one 2D `IfcGeometricRepresentationContext` per IFC file is needed. + +With these changes, an IFC file as presented in this unit test can be produced. See also [official documentation of `IfcGeometricRepresentationContext`](https://standards.buildingsmart.org/IFC/RELEASE/IFC4/ADD1/HTML/link/ifcgeometricrepresentationcontext.htm). + +### Prerequisites + +This scenario builds upon following other scenarios: + +- Georeferencing-3 + +### Content + +This scenario covers the following additional concepts and/or IFC entities: + +- multiple different georeferencing in single IFC file + +### Supporting files + +Following files correspond to this scenario: + +| Filename | Description | +|:----------------------------------|-------------------------------------------| +| `GeoRef-4.ifc` | the building's outline as IFC file | +| `GeoRef-4-OIP_wrong.png` | screen shot of IFC file loaded in TUM Open Infra Platform - interpreted wrongly | +| `GeoRef-4-OIP_separateModels.png` | screen shot of IFC file loaded in TUM Open Infra Platform - interpreted as two separate models |