See this file, as a more simplified parent/child relationship.
If you try to refresh any of the children, they disappear w/ following error.
Python: Traceback (most recent call last):
File "C:\Users\Owner\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\blenderbim\bim\module\geometry\operator.py", line 1167, in execute
IfcStore.execute_ifc_operator(self, context)
File "C:\Users\Owner\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\blenderbim\bim\ifc.py", line 336, in execute_ifc_operator
result = getattr(operator, "_execute")(context)
File "C:\Users\Owner\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\blenderbim\bim\module\geometry\operator.py", line 1347, in _execute
duplicate_children(parent)
File "C:\Users\Owner\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\blenderbim\bim\module\geometry\operator.py", line 1264, in duplicate_children
new_part = duplicate_objects(part_obj)
File "C:\Users\Owner\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\blenderbim\bim\module\geometry\operator.py", line 1289, in duplicate_objects
new_entity = blenderbim.core.root.copy_class(
File "C:\Users\Owner\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\blenderbim\core\root.py", line 34, in copy_class
root.link_object_data(ifc.get_object(relating_type), obj)
File "C:\Users\Owner\AppData\Roaming\Blender Foundation\Blender\3.6\scripts\addons\blenderbim\tool\root.py", line 135, in link_object_data
destination_obj.data = source_obj.data
AttributeError: 'NoneType' object has no attribute 'data'
This is an odd one. I had, for the last couple days kept these blender/ifc files in sync.
If you open the blender file, and try to shift+ctrl+d one of the parent modules, you can see the child aggregate is missing objects.
The strange thing, however, is when you open the IFC file anew, shift+ctrl+d works.
@theoryshaw The bug is a problem in your blend file. Don't know why, but the "Super King bed" type is missing and that's causing the error, which will also happen with normal shift+d. The type exists in ifc, but not as blender object. I don't know how to recreate it. I saw the script to resync the files, but it seems that it doesn't handle this problem. Just for you know, the Ifc entity for the type is #1073758=IfcFurnitureType('0k0UHYuCPDiBqscGw44wcu',$,'Super King bed',$,$,$,(#1073742),$,$,.NOTDEFINED.,.NOTDEFINED.)
Thanks. I was able to just use a earlier version and bypass this bug. I think these bugs happen when i add/delete representation contexts to an object. I've noticed other stuff that disappears in the past, as well. Still haven't found a consistent way to replicate it though.
Just another thought. It might be a good idea that if an object inside an aggregate is duplicated (shift+d), that it removes the `BBIM_Aggregate_Data' pset. Similar to how the 'BBIM_Array' pset is removed when an object from an array is duplicated (shift+d).
When there so many aggregates around, it's easy to forget where the parent is. :)
Would be nice if there was an easy way to 'find' the parent, from selecting an object in the child aggregate.
@theoryshaw said:
Just another thought. It might be a good idea that if an object inside an aggregate is duplicated (shift+d), that it removes the `BBIM_Aggregate_Data' pset. Similar to how the 'BBIM_Array' pset is removed when an object from an array is duplicated (shift+d).
Comments
See this file, as a more simplified parent/child relationship.
If you try to refresh any of the children, they disappear w/ following error.
This is an odd one. I had, for the last couple days kept these blender/ifc files in sync.

If you open the blender file, and try to
shift+ctrl+d
one of the parent modules, you can see the child aggregate is missing objects.The strange thing, however, is when you open the IFC file anew,
shift+ctrl+d
works.@theoryshaw I'll take a look
@theoryshaw The bug is a problem in your blend file. Don't know why, but the "Super King bed" type is missing and that's causing the error, which will also happen with normal
shift+d
. The type exists in ifc, but not as blender object. I don't know how to recreate it. I saw the script to resync the files, but it seems that it doesn't handle this problem. Just for you know, the Ifc entity for the type is#1073758=IfcFurnitureType('0k0UHYuCPDiBqscGw44wcu',$,'Super King bed',$,$,$,(#1073742),$,$,.NOTDEFINED.,.NOTDEFINED.)
Thanks. I was able to just use a earlier version and bypass this bug. I think these bugs happen when i add/delete representation contexts to an object. I've noticed other stuff that disappears in the past, as well. Still haven't found a consistent way to replicate it though.
@bruno_perdigao, Relative to this concept...

...here's a real world scenario, that would have been easier to pull off, if this functionality existed...

I'll try to work on that. This could be somewhat achieved using this strict workflow, you would have to keep all the parents isolated and just nest the aggregates that are children. Not ideal yet: https://ln5.sync.com/dl/a59263e20/xtijs5kp-xyn6q7ha-2c39ewc6-5vhdi42i
Just another thought. It might be a good idea that if an object inside an aggregate is duplicated (shift+d), that it removes the `BBIM_Aggregate_Data' pset. Similar to how the 'BBIM_Array' pset is removed when an object from an array is duplicated (shift+d).
When there so many aggregates around, it's easy to forget where the parent is. :)
Would be nice if there was an easy way to 'find' the parent, from selecting an object in the child aggregate.
Why is there a parent/child structure? could any of the 'child' aggregates become the 'parent' on demand?
This would be even better. :)
This is being addressed. I expect to share some news about the refactor soon.

Could you please add feature requests here: https://github.com/IfcOpenShell/IfcOpenShell/issues/3068
The pset will not be necessary anymore, since now I'm working with IfcGroup, but the "unlink" option should still exist.
ᕕ( ᐛ )ᕗ