It wasn't passing the exclude_callback if attribute of the copied element wasn't a tuple, resulting in duplicated named profiles in case if you'd copy a IfcBooleanClippingResult #3810
For example, how copy_deep of IfcProductDefinitionShape with boolean clipping previously would work:
V IfcShapeRepresentation - copied with exlude_callback (part of .Representations[])
V IfcBooleanClippingResult - copied with exlude_callback (part of .Items[])
X IfcExtrudedAreaSolid - copied without exlude_callback becuase it's part of .FirstOperand (not an array) and we have IfcIShapeProfileDef duplicated
Case without booleanclippings:
V IfcShapeRepresentation - copied with exlude_callback (part of .Representations[])
V IfcExtrudedAreaSolid - copied with exlude_callback, since it's part of .Items[], IfcIShapeProfileDef not duplicated
* Add IsGroupedBy in function get_decomposition
selector example : "@ .IfcZone & .IfcSpace"
* Update element.py
* Change name function get_group
get_group to get_grouped_by
* Tool to add storey to specific building
* Operator to add new storey to building
* Add new storey to building button in aggregates panel
* Minor fix
* add method to data class to retrieve ifc class name
* Extract aggregate creation logic
* Prevent aggregating non-ifc elements + display popup info
* Add tooltips + rename operators
* Rename function to get relating object
* Rename relating object data variable to be able to have access to related objects
* Add utilities to get related objects
* Add utility function to get related objects from element
* display related object in Aggregates panel in object properties
* Revert "Rename function to get relating object"
This reverts commit 5248627a41.
* Update method names
* Add Operator to select parts of an element
* Ditch box layout and only display number of parts
* Add operator to select aggregate of an element
* Display operator to select aggregate of element
* Move logic to aggregate module
* Add utility methods to Blender tool
* Add buttons to create Ifcsite and IfcBuilding from object panel