From 94ed0cd59c2dd1682f2554239180c2580b4fb977 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 31 Jul 2024 15:46:26 +0500 Subject: [PATCH] fix bim.assign_container uses after a9a4b0c + add TODOs --- src/blenderbim/blenderbim/bim/module/spatial/operator.py | 1 + src/blenderbim/blenderbim/bim/module/spatial/prop.py | 1 + src/blenderbim/blenderbim/bim/module/spatial/ui.py | 4 ++++ src/blenderbim/test/bim/feature/misc.feature | 5 +++-- src/blenderbim/test/bim/feature/spatial.feature | 9 ++++++--- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/spatial/operator.py b/src/blenderbim/blenderbim/bim/module/spatial/operator.py index c6283f78a4..a20e314f54 100644 --- a/src/blenderbim/blenderbim/bim/module/spatial/operator.py +++ b/src/blenderbim/blenderbim/bim/module/spatial/operator.py @@ -59,6 +59,7 @@ class DereferenceStructure(bpy.types.Operator, tool.Ifc.Operator): class AssignContainer(bpy.types.Operator, tool.Ifc.Operator): bl_idname = "bim.assign_container" bl_label = "Assign Container" + bl_description = "Assign current default container to the selected objects" bl_options = {"REGISTER", "UNDO"} def _execute(self, context): diff --git a/src/blenderbim/blenderbim/bim/module/spatial/prop.py b/src/blenderbim/blenderbim/bim/module/spatial/prop.py index 8cc29ba15f..6e5ffae81d 100644 --- a/src/blenderbim/blenderbim/bim/module/spatial/prop.py +++ b/src/blenderbim/blenderbim/bim/module/spatial/prop.py @@ -72,6 +72,7 @@ def update_relating_container_from_object(self, context): return container = ifcopenshell.util.element.get_container(element) if container: + # TODO: currently broken and relating_container_object is not used in UI. bpy.ops.bim.assign_container(structure=container.id()) else: bpy.ops.bim.disable_editing_container() diff --git a/src/blenderbim/blenderbim/bim/module/spatial/ui.py b/src/blenderbim/blenderbim/bim/module/spatial/ui.py index 321cd9b396..dac4df7057 100644 --- a/src/blenderbim/blenderbim/bim/module/spatial/ui.py +++ b/src/blenderbim/blenderbim/bim/module/spatial/ui.py @@ -36,6 +36,10 @@ class BIM_PT_spatial(Panel): return SpatialData.data["poll"] def draw(self, context): + # TODO: expose relating_container_object so users could + # assign container without switching default container back and forth + # just for 1 operation. + if not SpatialData.is_loaded: SpatialData.load() diff --git a/src/blenderbim/test/bim/feature/misc.feature b/src/blenderbim/test/bim/feature/misc.feature index e20ef274a8..65173ca76e 100644 --- a/src/blenderbim/test/bim/feature/misc.feature +++ b/src/blenderbim/test/bim/feature/misc.feature @@ -33,7 +33,8 @@ Scenario: Resize to storey And I press "bim.assign_class" And the object "IfcWall/Cube" is selected And the variable "storey" is "tool.Ifc.get().by_type('IfcBuildingStorey')[0].id()" - And I press "bim.assign_container(structure={storey})" + And I press "bim.set_default_container(container={storey})" + And I press "bim.assign_container()" When I press "bim.resize_to_storey(total_storeys=1)" Then nothing happens @@ -56,4 +57,4 @@ Scenario: Enabling and disabling IFC Sverchok And I press "preferences.addon_enable(module="sverchok")" And I press "preferences.addon_enable(module="ifcsverchok")" And I press "preferences.addon_disable(module="sverchok")" - And I press "preferences.addon_disable(module="ifcsverchok")" \ No newline at end of file + And I press "preferences.addon_disable(module="ifcsverchok")" diff --git a/src/blenderbim/test/bim/feature/spatial.feature b/src/blenderbim/test/bim/feature/spatial.feature index b400efbec6..a6fce2e8d6 100644 --- a/src/blenderbim/test/bim/feature/spatial.feature +++ b/src/blenderbim/test/bim/feature/spatial.feature @@ -27,7 +27,8 @@ Scenario: Assign container And the object "IfcWall/Cube" is selected And I press "bim.enable_editing_container" And the variable "site" is "tool.Ifc.get().by_type('IfcSite')[0].id()" - When I press "bim.assign_container(structure={site})" + And I press "bim.set_default_container(container={site})" + When I press "bim.assign_container()" Then the object "IfcWall/Cube" is in the collection "IfcSite/My Site" Scenario: Copy to container @@ -80,7 +81,8 @@ Scenario: Select container And the object "IfcWall/Cube" is selected And I press "bim.enable_editing_container" And the variable "site" is "tool.Ifc.get().by_type('IfcSite')[0].id()" - And I press "bim.assign_container(structure={site})" + And I press "bim.set_default_container(container={site})" + And I press "bim.assign_container()" When I press "bim.select_container" Then nothing happens @@ -94,7 +96,8 @@ Scenario: Select similar container And the object "IfcWall/Cube" is selected And I press "bim.enable_editing_container" And the variable "site" is "tool.Ifc.get().by_type('IfcSite')[0].id()" - And I press "bim.assign_container(structure={site})" + And I press "bim.set_default_container(container={site})" + And I press "bim.assign_container()" When I press "bim.select_similar_container" Then nothing happens