mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-16 13:46:54 +00:00
#2150 Fix bug where manual offsets and autodetected offset could stack
This commit is contained in:
@@ -391,6 +391,8 @@ class IfcImporter:
|
|||||||
props = bpy.context.scene.BIMGeoreferenceProperties
|
props = bpy.context.scene.BIMGeoreferenceProperties
|
||||||
if props.has_blender_offset:
|
if props.has_blender_offset:
|
||||||
return
|
return
|
||||||
|
if self.ifc_import_settings.should_offset_model:
|
||||||
|
return self.set_manual_blender_offset()
|
||||||
if self.file.schema == "IFC2X3":
|
if self.file.schema == "IFC2X3":
|
||||||
project = self.file.by_type("IfcProject")[0]
|
project = self.file.by_type("IfcProject")[0]
|
||||||
else:
|
else:
|
||||||
@@ -403,6 +405,13 @@ class IfcImporter:
|
|||||||
return self.guess_georeferencing(building)
|
return self.guess_georeferencing(building)
|
||||||
return self.guess_absolute_coordinate()
|
return self.guess_absolute_coordinate()
|
||||||
|
|
||||||
|
def set_manual_blender_offset(self):
|
||||||
|
props = bpy.context.scene.BIMGeoreferenceProperties
|
||||||
|
props.blender_eastings = str(self.ifc_import_settings.model_offset_coordinates[0])
|
||||||
|
props.blender_northings = str(self.ifc_import_settings.model_offset_coordinates[1])
|
||||||
|
props.blender_orthogonal_height = str(self.ifc_import_settings.model_offset_coordinates[2])
|
||||||
|
props.has_blender_offset = True
|
||||||
|
|
||||||
def guess_georeferencing(self, element):
|
def guess_georeferencing(self, element):
|
||||||
if not element.ObjectPlacement or not element.ObjectPlacement.is_a("IfcLocalPlacement"):
|
if not element.ObjectPlacement or not element.ObjectPlacement.is_a("IfcLocalPlacement"):
|
||||||
return
|
return
|
||||||
@@ -477,11 +486,6 @@ class IfcImporter:
|
|||||||
float(props.blender_x_axis_ordinate),
|
float(props.blender_x_axis_ordinate),
|
||||||
)
|
)
|
||||||
|
|
||||||
if self.ifc_import_settings.should_offset_model:
|
|
||||||
matrix[0, 3] += self.ifc_import_settings.model_offset_coordinates[0]
|
|
||||||
matrix[1, 3] += self.ifc_import_settings.model_offset_coordinates[1]
|
|
||||||
matrix[2, 3] += self.ifc_import_settings.model_offset_coordinates[2]
|
|
||||||
|
|
||||||
return mathutils.Matrix(matrix.tolist())
|
return mathutils.Matrix(matrix.tolist())
|
||||||
|
|
||||||
def find_decomposed_ifc_class(self, element, ifc_class):
|
def find_decomposed_ifc_class(self, element, ifc_class):
|
||||||
|
|||||||
Reference in New Issue
Block a user