diff --git a/src/blenderbim/blenderbim/bim/import_ifc.py b/src/blenderbim/blenderbim/bim/import_ifc.py index 597bc7621f..60d202194d 100644 --- a/src/blenderbim/blenderbim/bim/import_ifc.py +++ b/src/blenderbim/blenderbim/bim/import_ifc.py @@ -509,6 +509,7 @@ class IfcImporter: elif self.ifc_import_settings.false_origin_mode == "AUTOMATIC": if not props.has_blender_offset: tool.Loader.guess_false_origin(self.file) + tool.Georeference.set_model_origin() def create_positioning_elements(self): self.create_grids() diff --git a/src/blenderbim/blenderbim/bim/module/bcf/operator.py b/src/blenderbim/blenderbim/bim/module/bcf/operator.py index 49ac473a9d..828b953d29 100644 --- a/src/blenderbim/blenderbim/bim/module/bcf/operator.py +++ b/src/blenderbim/blenderbim/bim/module/bcf/operator.py @@ -949,9 +949,9 @@ class ActivateBcfViewpoint(bpy.types.Operator): unit_scale = ifcopenshell.util.unit.calculate_unit_scale(self.file) matrix = ifcopenshell.util.geolocation.global2local( matrix, - float(props.blender_eastings) * unit_scale, - float(props.blender_northings) * unit_scale, - float(props.blender_orthogonal_height) * unit_scale, + float(props.blender_offset_x) * unit_scale, + float(props.blender_offset_y) * unit_scale, + float(props.blender_offset_z) * unit_scale, float(props.blender_x_axis_abscissa), float(props.blender_x_axis_ordinate), ) diff --git a/src/blenderbim/blenderbim/bim/module/geometry/data.py b/src/blenderbim/blenderbim/bim/module/geometry/data.py index b3a73f28d6..d4e70ad505 100644 --- a/src/blenderbim/blenderbim/bim/module/geometry/data.py +++ b/src/blenderbim/blenderbim/bim/module/geometry/data.py @@ -383,9 +383,9 @@ class PlacementData: obj.matrix_world[0][3], obj.matrix_world[1][3], obj.matrix_world[2][3], - float(props.blender_eastings) * unit_scale, - float(props.blender_northings) * unit_scale, - float(props.blender_orthogonal_height) / unit_scale, + float(props.blender_offset_x) * unit_scale, + float(props.blender_offset_y) * unit_scale, + float(props.blender_offset_z) * unit_scale, float(props.blender_x_axis_abscissa), float(props.blender_x_axis_ordinate), 1.0, diff --git a/src/blenderbim/blenderbim/bim/module/georeference/__init__.py b/src/blenderbim/blenderbim/bim/module/georeference/__init__.py index 96c46c9074..537f3381e8 100644 --- a/src/blenderbim/blenderbim/bim/module/georeference/__init__.py +++ b/src/blenderbim/blenderbim/bim/module/georeference/__init__.py @@ -43,6 +43,7 @@ classes = ( operator.SetIfcTrueNorth, prop.BIMGeoreferenceProperties, ui.BIM_PT_gis, + ui.BIM_PT_gis_blender, ui.BIM_PT_gis_wcs, ui.BIM_PT_gis_true_north, ui.BIM_PT_gis_calculator, diff --git a/src/blenderbim/blenderbim/bim/module/georeference/prop.py b/src/blenderbim/blenderbim/bim/module/georeference/prop.py index cbe0eb5bec..30486f2a43 100644 --- a/src/blenderbim/blenderbim/bim/module/georeference/prop.py +++ b/src/blenderbim/blenderbim/bim/module/georeference/prop.py @@ -120,8 +120,10 @@ class BIMGeoreferenceProperties(PropertyGroup): host_model_origin_si: StringProperty(name="Host Model Origin SI") host_model_project_north: StringProperty(name="Host Model Angle to Grid North") - # These are only for reference, calculated using tool.Loader.calculate_model_origin - # TODO perform calculate_model_origin at load time, not as an explicit step. + # This is the ENH in project units and SI units of the Blender session's 0,0,0. + # These are only for reference, using tool.Georeference.set_model_origin on + # project load, project create, and when linking for the first time from an + # empty Blender session. model_origin: StringProperty(name="Model Origin") model_origin_si: StringProperty(name="Model Origin SI") model_project_north: StringProperty(name="Model Angle to Grid North") @@ -129,14 +131,6 @@ class BIMGeoreferenceProperties(PropertyGroup): # True if there is a temporary Blender session coordinate system has_blender_offset: BoolProperty(name="Has Blender Offset") - # These E, N, H, and project north are the absolute map coordinates of the Blender session - # If has_blender_offset is True, this is equivalent to model_origin and model_project_north. - # TODO consolidate this with model_origin and model_project_north. - blender_eastings: StringProperty(name="Blender Eastings", default="0") - blender_northings: StringProperty(name="Blender Northings", default="0") - blender_orthogonal_height: StringProperty(name="Blender Orthogonal Height", default="0") - blender_project_north: StringProperty(name="Blender Angle to Grid North", default="0") - # These are the helmert transformation parameters of the Blender session blender_offset_x: StringProperty(name="Blender Offset X", default="0") blender_offset_y: StringProperty(name="Blender Offset Y", default="0") diff --git a/src/blenderbim/blenderbim/bim/module/georeference/ui.py b/src/blenderbim/blenderbim/bim/module/georeference/ui.py index c1fce8bce6..4b2a359cf0 100644 --- a/src/blenderbim/blenderbim/bim/module/georeference/ui.py +++ b/src/blenderbim/blenderbim/bim/module/georeference/ui.py @@ -90,23 +90,6 @@ class BIM_PT_gis(Panel): row.prop(props, "coordinate_operation_class", text="") row.operator("bim.add_georeferencing", icon="ADD", text="") - if props.has_blender_offset: - row = self.layout.row() - row.label(text="Blender Session Coordinates", icon="TRACKING_REFINE_FORWARDS") - - row = self.layout.row(align=True) - row.label(text=f"Eastings ({GeoreferenceData.data['local_unit_symbol']})") - row.label(text=props.blender_eastings) - row = self.layout.row(align=True) - row.label(text=f"Northings ({GeoreferenceData.data['local_unit_symbol']})") - row.label(text=props.blender_northings) - row = self.layout.row(align=True) - row.label(text=f"OrthogonalHeight ({GeoreferenceData.data['local_unit_symbol']})") - row.label(text=props.blender_orthogonal_height) - row = self.layout.row(align=True) - row.label(text="Angle to Grid North") - row.label(text=props.blender_project_north) - if GeoreferenceData.data["projected_crs"]: row = self.layout.row(align=True) row.label(text="Projected CRS", icon="WORLD") @@ -197,6 +180,42 @@ class BIM_PT_gis_true_north(Panel): row.operator("bim.enable_editing_true_north", icon="GREASEPENCIL", text="") +class BIM_PT_gis_blender(Panel): + bl_idname = "BIM_PT_gis_blender" + bl_label = "Blender Coordinates" + bl_options = {"DEFAULT_CLOSED"} + bl_space_type = "PROPERTIES" + bl_region_type = "WINDOW" + bl_context = "scene" + bl_parent_id = "BIM_PT_gis" + + def draw(self, context): + if not GeoreferenceData.is_loaded: + GeoreferenceData.load() + + props = context.scene.BIMGeoreferenceProperties + + row = self.layout.row() + row.label(text="Blender Session Coordinates", icon="BLENDER") + + if props.has_blender_offset: + row = self.layout.row() + row.label(text="Temporary Offset Is Active", icon="TRACKING_REFINE_FORWARDS") + + row = self.layout.row(align=True) + row.label(text=f"Eastings ({GeoreferenceData.data['local_unit_symbol']})") + row.label(text=props.model_origin.split(",")[0]) + row = self.layout.row(align=True) + row.label(text=f"Northings ({GeoreferenceData.data['local_unit_symbol']})") + row.label(text=props.model_origin.split(",")[1]) + row = self.layout.row(align=True) + row.label(text=f"OrthogonalHeight ({GeoreferenceData.data['local_unit_symbol']})") + row.label(text=props.model_origin.split(",")[2]) + row = self.layout.row(align=True) + row.label(text="Angle to Grid North") + row.label(text=props.model_project_north) + + class BIM_PT_gis_wcs(Panel): bl_idname = "BIM_PT_gis_wcs" bl_label = "World Coordinate System" diff --git a/src/blenderbim/blenderbim/bim/module/misc/operator.py b/src/blenderbim/blenderbim/bim/module/misc/operator.py index 3f2947929c..8070cdcf4d 100644 --- a/src/blenderbim/blenderbim/bim/module/misc/operator.py +++ b/src/blenderbim/blenderbim/bim/module/misc/operator.py @@ -312,9 +312,9 @@ class DrawSystemArrows(bpy.types.Operator, tool.Ifc.Operator): matrix = np.array( ifcopenshell.util.geolocation.global2local( matrix, - float(props.blender_eastings), - float(props.blender_northings), - float(props.blender_orthogonal_height), + float(props.blender_offset_x), + float(props.blender_offset_y), + float(props.blender_offset_z), float(props.blender_x_axis_abscissa), float(props.blender_x_axis_ordinate), ) diff --git a/src/blenderbim/blenderbim/bim/module/project/operator.py b/src/blenderbim/blenderbim/bim/module/project/operator.py index 2b88547f97..e60bf88929 100644 --- a/src/blenderbim/blenderbim/bim/module/project/operator.py +++ b/src/blenderbim/blenderbim/bim/module/project/operator.py @@ -127,7 +127,7 @@ class CreateProject(bpy.types.Operator): bpy.data.meshes.remove(mesh) for mat in bpy.data.materials: bpy.data.materials.remove(mat) - core.create_project(tool.Ifc, tool.Project, tool.Spatial, schema=props.export_schema, template=template) + core.create_project(tool.Ifc, tool.Georeference, tool.Project, tool.Spatial, schema=props.export_schema, template=template) blenderbim.bim.schema.reload(tool.Ifc.get().schema_identifier) tool.Blender.register_toolbar() @@ -1052,7 +1052,6 @@ class LoadLink(bpy.types.Operator): if not os.path.exists(blend_filepath): pprops = bpy.context.scene.BIMProjectProperties gprops = bpy.context.scene.BIMGeoreferenceProperties - tool.Loader.calculate_model_origin(tool.Ifc.get()) code = f""" import bpy @@ -1064,10 +1063,6 @@ def run(): gprops.host_model_origin_si = "{gprops.model_origin_si}" gprops.host_model_project_north = "{gprops.model_project_north}" gprops.has_blender_offset = {gprops.has_blender_offset} - gprops.blender_eastings = "{gprops.blender_eastings}" - gprops.blender_northings = "{gprops.blender_northings}" - gprops.blender_orthogonal_height = "{gprops.blender_orthogonal_height}" - gprops.blender_project_north = "{gprops.blender_project_north}" gprops.blender_offset_x = "{gprops.blender_offset_x}" gprops.blender_offset_y = "{gprops.blender_offset_y}" gprops.blender_offset_z = "{gprops.blender_offset_z}" @@ -1369,6 +1364,7 @@ class LoadLinkedProject(bpy.types.Operator): self.collection = bpy.data.collections.new("IfcProject/" + os.path.basename(self.filepath)) self.file = ifcopenshell.open(self.filepath) + tool.Ifc.set(self.file) print("Finished opening") self.db_filepath = self.filepath + ".cache.sqlite" @@ -1398,16 +1394,15 @@ class LoadLinkedProject(bpy.types.Operator): if tool.Loader.settings.false_origin_mode == "MANUAL" and tool.Loader.settings.false_origin: tool.Loader.set_manual_blender_offset(self.file) elif tool.Loader.settings.false_origin_mode == "AUTOMATIC": - if gprops.host_model_origin_si: - tool.Loader.settings.false_origin = [ - float(o) / self.unit_scale for o in gprops.host_model_origin_si.split(",") - ] + if host_model_origin_si := gprops.host_model_origin_si: + host_model_origin_si = [float(o) / self.unit_scale for o in host_model_origin_si.split(",")] + tool.Loader.settings.false_origin = host_model_origin_si tool.Loader.settings.project_north = float(gprops.host_model_project_north) tool.Loader.set_manual_blender_offset(self.file) else: tool.Loader.guess_false_origin(self.file) - tool.Loader.calculate_model_origin(self.file) + tool.Georeference.set_model_origin() self.json_filepath = self.filepath + ".cache.json" data = { "host_model_origin": gprops.host_model_origin, @@ -1417,9 +1412,6 @@ class LoadLinkedProject(bpy.types.Operator): "model_origin_si": gprops.model_origin_si, "model_project_north": gprops.model_project_north, "has_blender_offset": gprops.has_blender_offset, - "blender_eastings": gprops.blender_eastings, - "blender_northings": gprops.blender_northings, - "blender_orthogonal_height": gprops.blender_orthogonal_height, "blender_offset_x": gprops.blender_offset_x, "blender_offset_y": gprops.blender_offset_y, "blender_offset_z": gprops.blender_offset_z, diff --git a/src/blenderbim/blenderbim/core/georeference.py b/src/blenderbim/blenderbim/core/georeference.py index 54f5c0f7b1..b09302f5cb 100644 --- a/src/blenderbim/blenderbim/core/georeference.py +++ b/src/blenderbim/blenderbim/core/georeference.py @@ -42,6 +42,7 @@ def edit_georeferencing(ifc, georeference): coordinate_operation=georeference.get_coordinate_operation_attributes(), ) georeference.disable_editing() + georeference.set_model_origin() def set_ifc_grid_north(georeference): diff --git a/src/blenderbim/blenderbim/core/project.py b/src/blenderbim/blenderbim/core/project.py index 4fb82401ce..ecf04d1c01 100644 --- a/src/blenderbim/blenderbim/core/project.py +++ b/src/blenderbim/blenderbim/core/project.py @@ -25,7 +25,7 @@ if TYPE_CHECKING: import blenderbim.tool as tool -def create_project(ifc: tool.Ifc, project: tool.Project, spatial: tool.Spatial, schema: str, template: Optional[str] = None) -> None: +def create_project(ifc: tool.Ifc, georeference: tool.Georeference, project: tool.Project, spatial: tool.Spatial, schema: str, template: Optional[str] = None) -> None: if ifc.get(): return @@ -100,3 +100,4 @@ def create_project(ifc: tool.Ifc, project: tool.Project, spatial: tool.Spatial, project.load_default_thumbnails() project.set_default_context() project.set_default_modeling_dimensions() + georeference.set_model_origin() diff --git a/src/blenderbim/blenderbim/tool/cad.py b/src/blenderbim/blenderbim/tool/cad.py index 41a66db0c2..8c9c8a936a 100644 --- a/src/blenderbim/blenderbim/tool/cad.py +++ b/src/blenderbim/blenderbim/tool/cad.py @@ -85,7 +85,7 @@ class Cad: return math.degrees(a) if degrees else a @classmethod - def is_x(cls, value, x, tolerance=None): + def is_x(cls, value: float, x: float, tolerance: float | None = None) -> bool: """ > takes a value and a target of x, either as a single value x or an interable of values < returns if the value is equivalent to x within a tolerance @@ -100,7 +100,16 @@ class Cad: return (x + tolerance) > value > (x - tolerance) @classmethod - def are_vectors_equal(cls, v1: Vector, v2: Vector, tolerance: float = None): + def normalise_angle(cls, angle: float) -> float: + """Normalise an angle between -179 and 180""" + angle = angle % 360 + angle = (angle + 360) % 360 + if angle > 180: + angle -= 360 + return angle + + @classmethod + def are_vectors_equal(cls, v1: Vector, v2: Vector, tolerance: float | None = None) -> bool: return cls.is_x((v2 - v1).length, 0, tolerance) @classmethod diff --git a/src/blenderbim/blenderbim/tool/geometry.py b/src/blenderbim/blenderbim/tool/geometry.py index cf58791a1f..780e815ee5 100644 --- a/src/blenderbim/blenderbim/tool/geometry.py +++ b/src/blenderbim/blenderbim/tool/geometry.py @@ -399,15 +399,11 @@ class Geometry(blenderbim.core.tool.Geometry): @classmethod def get_cartesian_point_coordinate_offset(cls, obj: bpy.types.Object) -> Union[Vector, None]: - props = bpy.context.scene.BIMGeoreferenceProperties - if props.has_blender_offset and obj.BIMObjectProperties.blender_offset_type == "CARTESIAN_POINT": - return Vector( - ( - float(props.blender_eastings), - float(props.blender_northings), - float(props.blender_orthogonal_height), - ) - ) + if ( + obj.BIMObjectProperties.blender_offset_type == "CARTESIAN_POINT" + and obj.BIMObjectProperties.cartesian_point_offset + ): + return Vector(tuple(map(float, obj.BIMObjectProperties.cartesian_point_offset.split(",")))) @classmethod def get_element_type(cls, element: ifcopenshell.entity_instance) -> Union[ifcopenshell.entity_instance, None]: diff --git a/src/blenderbim/blenderbim/tool/georeference.py b/src/blenderbim/blenderbim/tool/georeference.py index ee2dfaffb0..1d64b4fc5e 100644 --- a/src/blenderbim/blenderbim/tool/georeference.py +++ b/src/blenderbim/blenderbim/tool/georeference.py @@ -261,20 +261,22 @@ class Georeference(blenderbim.core.tool.Georeference): ) @classmethod - def xyz2enh(cls, coordinates): + def xyz2enh(cls, coordinates, should_return_in_map_units=True): props = bpy.context.scene.BIMGeoreferenceProperties if props.has_blender_offset: coordinates = ifcopenshell.util.geolocation.xyz2enh( coordinates[0], coordinates[1], coordinates[2], - float(props.blender_eastings), - float(props.blender_northings), - float(props.blender_orthogonal_height), + float(props.blender_offset_x), + float(props.blender_offset_y), + float(props.blender_offset_z), float(props.blender_x_axis_abscissa), float(props.blender_x_axis_ordinate), ) - return ifcopenshell.util.geolocation.auto_xyz2enh(tool.Ifc.get(), *coordinates) + return ifcopenshell.util.geolocation.auto_xyz2enh( + tool.Ifc.get(), *coordinates, should_return_in_map_units=should_return_in_map_units + ) @classmethod def enh2xyz(cls, coordinates): @@ -285,9 +287,9 @@ class Georeference(blenderbim.core.tool.Georeference): coordinates[0], coordinates[1], coordinates[2], - float(props.blender_eastings), - float(props.blender_northings), - float(props.blender_orthogonal_height), + float(props.blender_offset_x), + float(props.blender_offset_y), + float(props.blender_offset_z), float(props.blender_x_axis_abscissa), float(props.blender_x_axis_ordinate), ) @@ -397,3 +399,18 @@ class Georeference(blenderbim.core.tool.Georeference): @classmethod def set_wcs(cls, wcs): ifcopenshell.api.georeference.edit_wcs(tool.Ifc.get(), **wcs, is_si=False) + + @classmethod + def set_model_origin(cls) -> None: + unit_scale = ifcopenshell.util.unit.calculate_unit_scale(tool.Ifc.get()) + gprops = bpy.context.scene.BIMGeoreferenceProperties + e, n, h = cls.xyz2enh((0, 0, 0), should_return_in_map_units=False) + gprops.model_origin = f"{e},{n},{h}" + gprops.model_origin_si = f"{e * unit_scale},{n * unit_scale},{h * unit_scale}" + angle = ifcopenshell.util.geolocation.get_grid_north(tool.Ifc.get()) + if gprops.has_blender_offset: + angle += ifcopenshell.util.geolocation.xaxis2angle( + float(gprops.blender_x_axis_abscissa), float(gprops.blender_x_axis_ordinate) + ) + angle = tool.Cad.normalise_angle(angle) + gprops.model_project_north = str(angle) diff --git a/src/blenderbim/blenderbim/tool/loader.py b/src/blenderbim/blenderbim/tool/loader.py index 9e90e579d3..a50f2461cc 100644 --- a/src/blenderbim/blenderbim/tool/loader.py +++ b/src/blenderbim/blenderbim/tool/loader.py @@ -575,11 +575,7 @@ class Loader(blenderbim.core.tool.Loader): model_north = ifcopenshell.util.geolocation.get_grid_north(ifc_file) project_north = cls.settings.project_north - model_rotation = project_north - model_north - if model_rotation > 180: - model_rotation = (360 - model_rotation) * -1 - elif model_rotation < -180: - model_rotation = (model_rotation * -1) - 360 + model_rotation = tool.Cad.normalise_angle(project_north - model_north) has_rotation = not np.isclose(model_north, project_north) if not has_offset: @@ -590,10 +586,6 @@ class Loader(blenderbim.core.tool.Loader): if has_offset or has_rotation: props = bpy.context.scene.BIMGeoreferenceProperties - props.blender_eastings = str(false_origin[0]) - props.blender_northings = str(false_origin[1]) - props.blender_orthogonal_height = str(false_origin[2]) - props.blender_project_north = str(project_north) props.blender_offset_x = str(model_offset[0]) props.blender_offset_y = str(model_offset[1]) props.blender_offset_z = str(model_offset[2]) @@ -741,20 +733,3 @@ class Loader(blenderbim.core.tool.Loader): float(props.blender_x_axis_ordinate), ) return Matrix(matrix.tolist()) - - @classmethod - def calculate_model_origin(cls, ifc_file: ifcopenshell.file | None) -> None: - if not ifc_file: - return - gprops = bpy.context.scene.BIMGeoreferenceProperties - if gprops.has_blender_offset: - gprops.model_origin = ( - f"{gprops.blender_eastings},{gprops.blender_northings},{gprops.blender_orthogonal_height}" - ) - gprops.model_origin_si = f"{float(gprops.blender_eastings) * cls.unit_scale},{float(gprops.blender_northings) * cls.unit_scale},{float(gprops.blender_orthogonal_height) * cls.unit_scale}" - gprops.model_project_north = gprops.blender_project_north - else: - enh = ifcopenshell.util.geolocation.auto_xyz2enh(ifc_file, 0, 0, 0, should_return_in_map_units=False) - gprops.model_origin = ",".join(map(str, enh)) - gprops.model_origin_si = ",".join([str(o * cls.unit_scale) for o in enh]) - gprops.model_project_north = str(ifcopenshell.util.geolocation.get_grid_north(ifc_file)) diff --git a/src/blenderbim/blenderbim/tool/surveyor.py b/src/blenderbim/blenderbim/tool/surveyor.py index 089c4a83e3..58308de576 100644 --- a/src/blenderbim/blenderbim/tool/surveyor.py +++ b/src/blenderbim/blenderbim/tool/surveyor.py @@ -41,9 +41,9 @@ class Surveyor(blenderbim.core.tool.Surveyor): matrix = np.array( ifcopenshell.util.geolocation.local2global( matrix, - float(props.blender_eastings) * unit_scale, - float(props.blender_northings) * unit_scale, - float(props.blender_orthogonal_height) * unit_scale, + float(props.blender_offset_x) * unit_scale, + float(props.blender_offset_y) * unit_scale, + float(props.blender_offset_z) * unit_scale, float(props.blender_x_axis_abscissa), float(props.blender_x_axis_ordinate), ) diff --git a/src/blenderbim/test/bim/feature/project.feature b/src/blenderbim/test/bim/feature/project.feature index b3f86665b6..a1bf84113b 100644 --- a/src/blenderbim/test/bim/feature/project.feature +++ b/src/blenderbim/test/bim/feature/project.feature @@ -342,9 +342,7 @@ Scenario: Load project elements - all georeferencing coordinate situations - aut When I set "scene.BIMProjectProperties.distance_limit" to "5" And I press "bim.load_project_elements" Then "scene.BIMGeoreferenceProperties.has_blender_offset" is "True" - And "scene.BIMGeoreferenceProperties.blender_eastings" is "13000.0" - And "scene.BIMGeoreferenceProperties.blender_northings" is "4000.0" - And "scene.BIMGeoreferenceProperties.blender_orthogonal_height" is "-1000.0" + And "scene.BIMGeoreferenceProperties.model_origin" is "13000.0,4000.0,-1000.0" And "scene.BIMGeoreferenceProperties.blender_offset_x" is "13000.0" And "scene.BIMGeoreferenceProperties.blender_offset_y" is "4000.0" And "scene.BIMGeoreferenceProperties.blender_offset_z" is "-1000.0" @@ -371,9 +369,7 @@ Scenario: Load project elements - all georeferencing coordinate situations - man When I set "scene.BIMProjectProperties.distance_limit" to "5" And I press "bim.load_project_elements" Then "scene.BIMGeoreferenceProperties.has_blender_offset" is "True" - And "scene.BIMGeoreferenceProperties.blender_eastings" is "10000.0" - And "scene.BIMGeoreferenceProperties.blender_northings" is "0.0" - And "scene.BIMGeoreferenceProperties.blender_orthogonal_height" is "0.0" + And "scene.BIMGeoreferenceProperties.model_origin" is "10000.0,0.0,0.0" And "scene.BIMGeoreferenceProperties.blender_offset_x" is "10000.0" And "scene.BIMGeoreferenceProperties.blender_offset_y" is "0.0" And "scene.BIMGeoreferenceProperties.blender_offset_z" is "0.0" @@ -430,9 +426,7 @@ Scenario: Load project elements - all georeferencing coordinate situations with When I set "scene.BIMProjectProperties.distance_limit" to "5" And I press "bim.load_project_elements" Then "scene.BIMGeoreferenceProperties.has_blender_offset" is "True" - And "scene.BIMGeoreferenceProperties.blender_eastings" is "0.0" - And "scene.BIMGeoreferenceProperties.blender_northings" is "10000.0" - And "scene.BIMGeoreferenceProperties.blender_orthogonal_height" is "0.0" + And "scene.BIMGeoreferenceProperties.model_origin" is "0.0,10000.0,0.0" And "scene.BIMGeoreferenceProperties.blender_offset_x" is "0.0" And "scene.BIMGeoreferenceProperties.blender_offset_y" is "10000.0" And "scene.BIMGeoreferenceProperties.blender_offset_z" is "0.0" @@ -459,9 +453,7 @@ Scenario: Load project elements - all georeferencing coordinate situations with And I set "scene.BIMProjectProperties.distance_limit" to "5" When I press "bim.load_project_elements" Then "scene.BIMGeoreferenceProperties.has_blender_offset" is "True" - And "scene.BIMGeoreferenceProperties.blender_eastings" is "0.0" - And "scene.BIMGeoreferenceProperties.blender_northings" is "10000.0" - And "scene.BIMGeoreferenceProperties.blender_orthogonal_height" is "0.0" + And "scene.BIMGeoreferenceProperties.model_origin" is "0.0,10000.0,0.0" And "scene.BIMGeoreferenceProperties.blender_offset_x" is "0.0" And "scene.BIMGeoreferenceProperties.blender_offset_y" is "10000.0" And "scene.BIMGeoreferenceProperties.blender_offset_z" is "0.0" @@ -498,9 +490,7 @@ Scenario: Load project elements - all georeferencing coordinate situations with And I set "scene.BIMProjectProperties.distance_limit" to "5" When I press "bim.load_project_elements" Then "scene.BIMGeoreferenceProperties.has_blender_offset" is "True" - And "scene.BIMGeoreferenceProperties.blender_eastings" is "0.0" - And "scene.BIMGeoreferenceProperties.blender_northings" is "10000.0" - And "scene.BIMGeoreferenceProperties.blender_orthogonal_height" is "0.0" + And "scene.BIMGeoreferenceProperties.model_origin" is "0.0,10000.0,0.0" And "scene.BIMGeoreferenceProperties.blender_offset_x" is "0.0" And "scene.BIMGeoreferenceProperties.blender_offset_y" is "10000.0" And "scene.BIMGeoreferenceProperties.blender_offset_z" is "0.0" @@ -548,9 +538,7 @@ Scenario: Load project elements - all georeferencing coordinate situations with When I set "scene.BIMProjectProperties.distance_limit" to "5" And I press "bim.load_project_elements" Then "scene.BIMGeoreferenceProperties.has_blender_offset" is "True" - And "scene.BIMGeoreferenceProperties.blender_eastings" is "28000.0" - And "scene.BIMGeoreferenceProperties.blender_northings" is "4000.0" - And "scene.BIMGeoreferenceProperties.blender_orthogonal_height" is "-1000.0" + And "scene.BIMGeoreferenceProperties.model_origin" is "28000.0,4000.0,-1000.0" And "scene.BIMGeoreferenceProperties.blender_offset_x" is "13000.0" And "scene.BIMGeoreferenceProperties.blender_offset_y" is "4000.0" And "scene.BIMGeoreferenceProperties.blender_offset_z" is "-1000.0" @@ -577,9 +565,7 @@ Scenario: Load project elements - all georeferencing coordinate situations with When I set "scene.BIMProjectProperties.distance_limit" to "5" And I press "bim.load_project_elements" Then "scene.BIMGeoreferenceProperties.has_blender_offset" is "True" - And "scene.BIMGeoreferenceProperties.blender_eastings" is "25000.0" - And "scene.BIMGeoreferenceProperties.blender_northings" is "0.0" - And "scene.BIMGeoreferenceProperties.blender_orthogonal_height" is "0.0" + And "scene.BIMGeoreferenceProperties.model_origin" is "25000.0,0.0,0.0" And "scene.BIMGeoreferenceProperties.blender_offset_x" is "10000.0" And "scene.BIMGeoreferenceProperties.blender_offset_y" is "0.0" And "scene.BIMGeoreferenceProperties.blender_offset_z" is "0.0" @@ -636,9 +622,7 @@ Scenario: Load project elements - all georeferencing coordinate situations with When I set "scene.BIMProjectProperties.distance_limit" to "5" And I press "bim.load_project_elements" Then "scene.BIMGeoreferenceProperties.has_blender_offset" is "True" - And "scene.BIMGeoreferenceProperties.blender_eastings" is "15000.0" - And "scene.BIMGeoreferenceProperties.blender_northings" is "10000.0" - And "scene.BIMGeoreferenceProperties.blender_orthogonal_height" is "0.0" + And "scene.BIMGeoreferenceProperties.model_origin" is "15000.0,10000.0,0.0" And "scene.BIMGeoreferenceProperties.blender_offset_x" is "0.0" And "scene.BIMGeoreferenceProperties.blender_offset_y" is "10000.0" And "scene.BIMGeoreferenceProperties.blender_offset_z" is "0.0" @@ -665,9 +649,7 @@ Scenario: Load project elements - all georeferencing coordinate situations with When I set "scene.BIMProjectProperties.distance_limit" to "5" And I press "bim.load_project_elements" Then "scene.BIMGeoreferenceProperties.has_blender_offset" is "True" - And "scene.BIMGeoreferenceProperties.blender_eastings" is "15000.0" - And "scene.BIMGeoreferenceProperties.blender_northings" is "10000.0" - And "scene.BIMGeoreferenceProperties.blender_orthogonal_height" is "0.0" + And "scene.BIMGeoreferenceProperties.model_origin" is "15000.0,10000.0,0.0" And "scene.BIMGeoreferenceProperties.blender_offset_x" is "0.0" And "scene.BIMGeoreferenceProperties.blender_offset_y" is "10000.0" And "scene.BIMGeoreferenceProperties.blender_offset_z" is "0.0"