diff --git a/src/blenderbim/blenderbim/bim/module/covering/workspace.py b/src/blenderbim/blenderbim/bim/module/covering/workspace.py index 81fce1601d..1fae82b3c4 100644 --- a/src/blenderbim/blenderbim/bim/module/covering/workspace.py +++ b/src/blenderbim/blenderbim/bim/module/covering/workspace.py @@ -131,7 +131,7 @@ class CoveringToolUI: elif (element and bpy.context.selected_objects and element.is_a("IfcCovering") and - AuthoringData.data["predefined_type"] == "FLOORING" and +# AuthoringData.data["predefined_type"] == "FLOORING" and AuthoringData.data["active_material_usage"] == "LAYER3"): row = cls.layout.row(align=True) row.label(text="", icon="EVENT_SHIFT") diff --git a/src/blenderbim/blenderbim/core/covering.py b/src/blenderbim/blenderbim/core/covering.py index 17098bc6a5..b7aebf457e 100644 --- a/src/blenderbim/blenderbim/core/covering.py +++ b/src/blenderbim/blenderbim/core/covering.py @@ -80,6 +80,7 @@ def regen_selected_flooring_object(ifc, spatial, model, Type, geometry): name = "Aux" mesh = spatial.get_named_mesh_from_bmesh(name = name, bmesh = bm) + mesh = spatial.get_transformed_mesh_from_local_to_global(mesh) obj = spatial.get_named_obj_from_mesh(name, mesh) points = spatial.get_2d_vertices_from_obj(obj) diff --git a/src/blenderbim/blenderbim/core/spatial.py b/src/blenderbim/blenderbim/core/spatial.py index 41307096c3..ccebb24f94 100644 --- a/src/blenderbim/blenderbim/core/spatial.py +++ b/src/blenderbim/blenderbim/core/spatial.py @@ -157,6 +157,7 @@ def generate_space(ifc, spatial, model, Type): mesh = spatial.get_named_mesh_from_bmesh(name = "Space", bmesh = bm) if element and element.is_a("IfcSpace"): + mesh = spatial.get_transformed_mesh_from_local_to_global(mesh) spatial.edit_active_space_obj_from_mesh(mesh) else: if relating_type: diff --git a/src/blenderbim/blenderbim/core/tool.py b/src/blenderbim/blenderbim/core/tool.py index b34dd8b7f3..8cdb4f82a8 100644 --- a/src/blenderbim/blenderbim/core/tool.py +++ b/src/blenderbim/blenderbim/core/tool.py @@ -828,6 +828,7 @@ class Spatial: def get_named_obj_from_bmesh(cls, name, bmesh): pass def get_named_obj_from_mesh(cls, name, mesh): pass def get_named_mesh_from_bmesh(cls, name, bmesh): pass + def get_transformed_mesh_from_local_to_global(cls, mesh): pass def edit_active_space_obj_from_mesh(cls, mesh): pass def set_obj_origin_to_bboxcenter(cls, obj): pass def set_obj_origin_to_cursor_position(cls, obj): pass diff --git a/src/blenderbim/blenderbim/tool/spatial.py b/src/blenderbim/blenderbim/tool/spatial.py index 95ee9bffbc..369d7c56dc 100644 --- a/src/blenderbim/blenderbim/tool/spatial.py +++ b/src/blenderbim/blenderbim/tool/spatial.py @@ -485,11 +485,7 @@ class Spatial(blenderbim.core.tool.Spatial): @classmethod def get_bmesh_from_polygon(cls, poly, h): - if bpy.context.selected_objects and bpy.context.active_object: - mat = bpy.context.active_object.matrix_world - else: - mat = Matrix() - + mat = Matrix() bm = bmesh.new() bm.verts.index_update() bm.edges.index_update() @@ -534,6 +530,15 @@ class Spatial(blenderbim.core.tool.Spatial): bmesh.free() return mesh + @classmethod + def get_transformed_mesh_from_local_to_global(cls, mesh): + active_obj = cls.get_active_obj() + element = tool.Ifc.get_entity(active_obj) + mat = active_obj.matrix_world + mesh.transform(mat.inverted()) + mesh.update() + return mesh + @classmethod def edit_active_space_obj_from_mesh(cls, mesh): active_obj = bpy.context.active_object