From f6035609c9f19acaacf6c30fdd003f84559ec042 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Wed, 9 Jul 2025 13:58:00 +0500 Subject: [PATCH] Groups UI - use natsort --- src/bonsai/bonsai/bim/module/group/operator.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/bonsai/bonsai/bim/module/group/operator.py b/src/bonsai/bonsai/bim/module/group/operator.py index cc0ea45dd5..a33f154f97 100644 --- a/src/bonsai/bonsai/bim/module/group/operator.py +++ b/src/bonsai/bonsai/bim/module/group/operator.py @@ -23,6 +23,7 @@ import ifcopenshell.util.element import bonsai.bim.helper import bonsai.tool as tool import json +from natsort import natsorted class LoadGroups(bpy.types.Operator, tool.Ifc.Operator): @@ -38,7 +39,7 @@ class LoadGroups(bpy.types.Operator, tool.Ifc.Operator): groups = [ group for group in tool.Ifc.get().by_type("IfcGroup", include_subtypes=False) if not group.HasAssignments ] - sorted_groups = sorted(groups, key=lambda group: group.Name or "Unnamed") + sorted_groups = natsorted(groups, key=lambda group: group.Name or "Unnamed") for group in sorted_groups: self.load_group(group) @@ -55,13 +56,14 @@ class LoadGroups(bpy.types.Operator, tool.Ifc.Operator): new.has_children = False new.is_expanded = group.id() in self.expanded_groups + related_groups: list[ifcopenshell.entity_instance] related_groups = [ related_object for rel in group.IsGroupedBy or [] for related_object in rel.RelatedObjects if related_object.is_a("IfcGroup") ] - sorted_related_groups = sorted(related_groups, key=lambda group: group.Name or "Unnamed") + sorted_related_groups = natsorted(related_groups, key=lambda group: group.Name or "Unnamed") for related_group in sorted_related_groups: new.has_children = True