diff --git a/src/bonsai/bonsai/bim/module/group/__init__.py b/src/bonsai/bonsai/bim/module/group/__init__.py index 45a509c3a9..86e8536672 100644 --- a/src/bonsai/bonsai/bim/module/group/__init__.py +++ b/src/bonsai/bonsai/bim/module/group/__init__.py @@ -32,7 +32,6 @@ classes = ( operator.SetGroupVisibility, operator.ToggleGroup, operator.UnassignGroup, - prop.ExpandedGroups, prop.Group, prop.BIMGroupProperties, ui.BIM_PT_groups, @@ -43,9 +42,7 @@ classes = ( def register(): bpy.types.Scene.BIMGroupProperties = bpy.props.PointerProperty(type=prop.BIMGroupProperties) - bpy.types.Scene.ExpandedGroups = bpy.props.PointerProperty(type=prop.ExpandedGroups) def unregister(): del bpy.types.Scene.BIMGroupProperties - del bpy.types.Scene.ExpandedGroups diff --git a/src/bonsai/bonsai/bim/module/group/operator.py b/src/bonsai/bonsai/bim/module/group/operator.py index bc017edec7..80120da77d 100644 --- a/src/bonsai/bonsai/bim/module/group/operator.py +++ b/src/bonsai/bonsai/bim/module/group/operator.py @@ -32,7 +32,7 @@ class LoadGroups(bpy.types.Operator, tool.Ifc.Operator): def _execute(self, context): self.props = tool.Blender.get_group_props() - self.expanded_groups = json.loads(context.scene.ExpandedGroups.json_string) + self.expanded_groups = json.loads(self.props.expanded_groups_json) self.props.groups.clear() groups = [ @@ -79,12 +79,13 @@ class ToggleGroup(bpy.types.Operator, tool.Ifc.Operator): option: bpy.props.StringProperty(name="Expand or Collapse") def _execute(self, context): - expanded_groups = set(json.loads(context.scene.ExpandedGroups.json_string)) + props = tool.Blender.get_group_props() + expanded_groups = set(json.loads(props.expanded_groups_json)) if self.option == "Expand": expanded_groups.add(self.ifc_definition_id) elif self.ifc_definition_id in expanded_groups: expanded_groups.remove(self.ifc_definition_id) - context.scene.ExpandedGroups.json_string = json.dumps(list(expanded_groups)) + props.expanded_groups_json = json.dumps(list(expanded_groups)) bpy.ops.bim.load_groups() return {"FINISHED"} diff --git a/src/bonsai/bonsai/bim/module/group/prop.py b/src/bonsai/bonsai/bim/module/group/prop.py index af6b60ddd8..13af83f704 100644 --- a/src/bonsai/bonsai/bim/module/group/prop.py +++ b/src/bonsai/bonsai/bim/module/group/prop.py @@ -38,13 +38,6 @@ def update_active_group_index(self, context): refresh_pset() -class ExpandedGroups(StrProperty): - json_string: StringProperty(name="JSON String", default="[]") - - if TYPE_CHECKING: - json_string: str - - class Group(PropertyGroup): name: StringProperty(name="Name") ifc_definition_id: IntProperty(name="IFC Definition ID") @@ -66,6 +59,7 @@ class BIMGroupProperties(PropertyGroup): groups: CollectionProperty(name="Groups", type=Group) active_group_index: IntProperty(name="Active Group Index", update=update_active_group_index) active_group_id: IntProperty(name="Active Group Id") + expanded_groups_json: StringProperty(name="JSON String", default="[]") if TYPE_CHECKING: group_attributes: bpy.types.bpy_prop_collection_idprop[Attribute] @@ -73,6 +67,7 @@ class BIMGroupProperties(PropertyGroup): groups: bpy.types.bpy_prop_collection_idprop[Group] active_group_index: int active_group_id: int + expanded_groups_json: str @property def active_group(self) -> Union[Group, None]: