From 013b138e5c8ff050933b17d8a602ddfa2a50f027 Mon Sep 17 00:00:00 2001 From: Dion Moult Date: Sun, 23 Jun 2024 23:17:44 +1000 Subject: [PATCH] Default to adding EPSG:3857 when adding georeferencing and let users choose an EPSG when adding. --- .../ifcopenshell/api/georeference/add_georeferencing.py | 6 +++--- .../test/api/georeference/test_add_georeferencing.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/api/georeference/add_georeferencing.py b/src/ifcopenshell-python/ifcopenshell/api/georeference/add_georeferencing.py index 4700e31a4b..e4818b6620 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/georeference/add_georeferencing.py +++ b/src/ifcopenshell-python/ifcopenshell/api/georeference/add_georeferencing.py @@ -21,7 +21,7 @@ import ifcopenshell.api.pset import ifcopenshell.util.element -def add_georeferencing(file: ifcopenshell.file, ifc_class: str = "IfcMapConversion") -> None: +def add_georeferencing(file: ifcopenshell.file, ifc_class: str = "IfcMapConversion", name: str = "EPSG:3857") -> None: """Add empty georeferencing entities to a model By default, models are not georeferenced. Georeferencing requires two @@ -52,7 +52,7 @@ def add_georeferencing(file: ifcopenshell.file, ifc_class: str = "IfcMapConversi return conversion = ifcopenshell.api.pset.add_pset(file, project, "ePSet_MapConversion") crs = ifcopenshell.api.pset.add_pset(file, project, "ePSet_ProjectedCRS") - ifcopenshell.api.pset.edit_pset(file, crs, properties={"Name": ""}) + ifcopenshell.api.pset.edit_pset(file, crs, properties={"Name": name}) ifcopenshell.api.pset.edit_pset( file, conversion, @@ -72,7 +72,7 @@ def add_georeferencing(file: ifcopenshell.file, ifc_class: str = "IfcMapConversi break if not source_crs: return - projected_crs = file.create_entity("IfcProjectedCRS", Name="") + projected_crs = file.create_entity("IfcProjectedCRS", Name=name) if ifc_class == "IfcMapConversion": file.create_entity( ifc_class, SourceCRS=source_crs, TargetCRS=projected_crs, Eastings=0, Northings=0, OrthogonalHeight=0 diff --git a/src/ifcopenshell-python/test/api/georeference/test_add_georeferencing.py b/src/ifcopenshell-python/test/api/georeference/test_add_georeferencing.py index df2c6de583..121af8f5a1 100644 --- a/src/ifcopenshell-python/test/api/georeference/test_add_georeferencing.py +++ b/src/ifcopenshell-python/test/api/georeference/test_add_georeferencing.py @@ -33,7 +33,7 @@ class TestAddGeoreferencing(test.bootstrap.IFC4): assert (conversion := self.file.by_type("IfcMapConversion")[0]) assert (crs := self.file.by_type("IfcProjectedCRS")[0]) assert conversion.Eastings == conversion.Northings == conversion.OrthogonalHeight == 0 - assert crs.Name == "" + assert crs.Name == "EPSG:3857" def test_not_doing_anything_if_no_model_context(self): ifcopenshell.api.root.create_entity(self.file, ifc_class="IfcProject") @@ -61,7 +61,7 @@ class TestAddGeoreferencingIFC2X3(test.bootstrap.IFC2X3): assert len(self.file.by_type("IfcPropertySet")) == 2 assert conversion assert crs - assert crs["Name"]["value"] == "" + assert crs["Name"]["value"] == "EPSG:3857" assert self.file.by_id(crs["Name"]["id"]).NominalValue.is_a("IfcLabel") assert conversion["Eastings"]["value"] == 0 assert self.file.by_id(conversion["Eastings"]["id"]).NominalValue.is_a("IfcLengthMeasure")