diff --git a/src/blenderbim/blenderbim/bim/module/group/operator.py b/src/blenderbim/blenderbim/bim/module/group/operator.py index fdf7548826..3249195c55 100644 --- a/src/blenderbim/blenderbim/bim/module/group/operator.py +++ b/src/blenderbim/blenderbim/bim/module/group/operator.py @@ -167,7 +167,7 @@ class AssignGroup(bpy.types.Operator): "group.assign_group", self.file, **{ - "product": self.file.by_id(product.BIMObjectProperties.ifc_definition_id), + "product": [self.file.by_id(product.BIMObjectProperties.ifc_definition_id)], "group": self.file.by_id(self.group), } ) diff --git a/src/blenderbim/blenderbim/bim/module/structural/operator.py b/src/blenderbim/blenderbim/bim/module/structural/operator.py index f9ca9d17a8..a2be6d51a4 100644 --- a/src/blenderbim/blenderbim/bim/module/structural/operator.py +++ b/src/blenderbim/blenderbim/bim/module/structural/operator.py @@ -662,7 +662,7 @@ class AddStructuralLoadGroup(bpy.types.Operator): def _execute(self, context): self.file = IfcStore.get_file() load_group = ifcopenshell.api.run("structural.add_structural_load_group", self.file) - ifcopenshell.api.run("group.assign_group", self.file, product=load_group, group=self.file.by_id(self.load_case)) + ifcopenshell.api.run("group.assign_group", self.file, product=[load_group], group=self.file.by_id(self.load_case)) Data.load(IfcStore.get_file()) return {"FINISHED"} diff --git a/src/blenderbim/test/tool/test_collector.py b/src/blenderbim/test/tool/test_collector.py index 496d3fc929..f9b7c76b08 100644 --- a/src/blenderbim/test/tool/test_collector.py +++ b/src/blenderbim/test/tool/test_collector.py @@ -222,7 +222,7 @@ class TestAssign(NewFile): tool.Ifc.link(element, element_obj) group = ifcopenshell.api.run("group.add_group", tool.Ifc.get()) group.ObjectType = "DRAWING" - ifcopenshell.api.run("group.assign_group", tool.Ifc.get(), product=element, group=group) + ifcopenshell.api.run("group.assign_group", tool.Ifc.get(), product=[element], group=group) subject.assign(element_obj) assert element_obj.users_collection[0].name == "IfcGroup/Unnamed" assert bpy.data.collections.get("Views").children.get("IfcGroup/Unnamed") @@ -235,7 +235,7 @@ class TestAssign(NewFile): tool.Ifc.link(element, element_obj) group = ifcopenshell.api.run("group.add_group", tool.Ifc.get()) group.ObjectType = "DRAWING" - ifcopenshell.api.run("group.assign_group", tool.Ifc.get(), product=element, group=group) + ifcopenshell.api.run("group.assign_group", tool.Ifc.get(), product=[element], group=group) subject.assign(element_obj) assert element_obj.users_collection[0].name == "IfcGroup/Unnamed" assert bpy.data.collections.get("Views").children.get("IfcGroup/Unnamed") diff --git a/src/blenderbim/test/tool/test_drawing.py b/src/blenderbim/test/tool/test_drawing.py index 64048c8192..b55459df99 100644 --- a/src/blenderbim/test/tool/test_drawing.py +++ b/src/blenderbim/test/tool/test_drawing.py @@ -260,7 +260,7 @@ class TestGetDrawingGroup(NewFile): tool.Ifc.set(ifc) element = ifc.createIfcAnnotation() group = ifcopenshell.api.run("group.add_group", ifc) - ifcopenshell.api.run("group.assign_group", ifc, product=element, group=group) + ifcopenshell.api.run("group.assign_group", ifc, product=[element], group=group) assert subject.get_drawing_group(element) == group @@ -280,7 +280,7 @@ class TestGetGroupElements(NewFile): tool.Ifc.set(ifc) element = ifc.createIfcAnnotation() group = ifcopenshell.api.run("group.add_group", ifc) - ifcopenshell.api.run("group.assign_group", ifc, product=element, group=group) + ifcopenshell.api.run("group.assign_group", ifc, product=[element], group=group) assert subject.get_group_elements(group) == (element,) diff --git a/src/ifcopenshell-python/ifcopenshell/api/group/assign_group.py b/src/ifcopenshell-python/ifcopenshell/api/group/assign_group.py index ed252a1878..0318caba09 100644 --- a/src/ifcopenshell-python/ifcopenshell/api/group/assign_group.py +++ b/src/ifcopenshell-python/ifcopenshell/api/group/assign_group.py @@ -43,6 +43,7 @@ class Usecase: ) rel = self.settings["group"].IsGroupedBy[0] related_objects = set(rel.RelatedObjects) or set() - related_objects.add(self.settings["product"]) + for obj in self.settings["product"]: + related_objects.add(obj) rel.RelatedObjects = list(related_objects) ifcopenshell.api.run("owner.update_owner_history", self.file, **{"element": rel}) diff --git a/src/ifcopenshell-python/test/test_ids.py b/src/ifcopenshell-python/test/test_ids.py index ccd7e20fac..55ac1aa55e 100644 --- a/src/ifcopenshell-python/test/test_ids.py +++ b/src/ifcopenshell-python/test/test_ids.py @@ -1111,7 +1111,7 @@ class TestIdsAuthoring(unittest.TestCase): group = ifcopenshell.api.run("group.add_group", ifc) facet = ids.partOf.create(entity="IfcGroup") run("", facet=facet, inst=element, expected=False) - ifcopenshell.api.run("group.assign_group", ifc, product=element, group=group) + ifcopenshell.api.run("group.assign_group", ifc, product=[element], group=group) run("", facet=facet, inst=element, expected=True) # An IfcGroup can be passed by subtypes @@ -1119,7 +1119,7 @@ class TestIdsAuthoring(unittest.TestCase): element = ifcopenshell.api.run("root.create_entity", ifc, ifc_class="IfcElementAssembly") group = ifc.createIfcInventory() facet = ids.partOf.create(entity="IfcGroup") - ifcopenshell.api.run("group.assign_group", ifc, product=element, group=group) + ifcopenshell.api.run("group.assign_group", ifc, product=[element], group=group) run("", facet=facet, inst=element, expected=True) # An IfcSystem only checks that a system is assigned without any other logic diff --git a/src/ifctester/test/test_facet.py b/src/ifctester/test/test_facet.py index 9980eb685b..9f0c7c582e 100644 --- a/src/ifctester/test/test_facet.py +++ b/src/ifctester/test/test_facet.py @@ -1157,7 +1157,7 @@ class TestPartOf: group = ifcopenshell.api.run("group.add_group", ifc) facet = PartOf(entity="IfcGroup") run("", facet=facet, inst=element, expected=False) - ifcopenshell.api.run("group.assign_group", ifc, product=element, group=group) + ifcopenshell.api.run("group.assign_group", ifc, product=[element], group=group) run("", facet=facet, inst=element, expected=True) # An IfcGroup can be passed by subtypes @@ -1165,7 +1165,7 @@ class TestPartOf: element = ifcopenshell.api.run("root.create_entity", ifc, ifc_class="IfcElementAssembly") group = ifc.createIfcInventory() facet = PartOf(entity="IfcGroup") - ifcopenshell.api.run("group.assign_group", ifc, product=element, group=group) + ifcopenshell.api.run("group.assign_group", ifc, product=[element], group=group) run("", facet=facet, inst=element, expected=True) # An IfcSystem only checks that a system is assigned without any other logic