Hi Shaan
some ideas....
Suggest that all composite components be made of solid groups, thus can use "outer shell" to make one solid and explode all the contents.
Recommend a component like wrapper to protect axis contents and show attributes you want the report writer to see. The next level down should be a group that drives its sub groups and takes reported data from the wrapper. At this level all attribute changes should be made.
Thus this level can be then "outer shelled and exploded" leaving solid geometry behind. ideal for the report writer.
If at a later date you want to change then one can place the original working component within this one after deleting the geometry, explode to expose the inner group then escape back to the model and force a redraw to update the outer component wrapper.
This approach would assure a smaller file, with good reporting on complete shapes rather than a host of little bits
Hidden geometry should be placed where it can be absorbed where possible, or collected at a bin point for deleting
Voids or openings can be created by attaching cutting faces within the component, however they can only work after exploding the outer component, so attribute data need to located with rim maybe set in a lower sub group, so can be reattached later
I notice you are using "parent!" which is required for this type of swapping
cheers
Philip
single leaf opening.skp