I like to have very clean and organized scenes when working with Blender. Collections are a great way to do this and I use them a lot. But relying only on collections is sometimes not enough, so I also like to “group” my objects by parenting them to empties. That’s also a usual workflow in other 3d softwares as far as I know.
I know that there is the “Parent to Empty” option in the “Extra Objects” add-on but I am missing some features like taking orientation of the object or cursor into account or applying the parent inverse matrix automatically.
That’s why I wrote this little add-on here and maybe it’s also helpful for someone else.
Group/Ungroup Selected Objects
(or Parent to Empty 2.0)
Summary
“Group” all selected objects by parenting them to a new created empty. You can choose between local space, active object or cursor for the pivot placement. The empty is linked to the same collection(s) like the active object and if Keep Relationship is enabled it’s also parented to the same parent. Rotation values are also taken into account for the new empty (depending on the chosen pivot). The objects are parented to the empty with keeping transforms and the parent inverse matrix is automatically applied.
If nothing is selected, only an empty will be created linked to the active collection.
“Ungroup” will reverse the above changes by keeping the objects transformations after unparenting and removing all the selected empty/empties.
Hotkeys
Shift + P: Group selected objects to an empty.
Shift + Alt + P: Ungroup objects of selected empty/empties.
Menus
There are two places you can find these operators:
3D View > Object > Parent > Group/Ungroup
Object content menu > Parent > Group/Ungroup via right click.
Manual
Group
Create a new empty and parent all selected objects to this empty. The active object might be important for the Pivot, Keep Relationship and Naming options (see below).
Pivot
Local Space: Set pivot to parent object origin. If there is no parent, set to world origin.
Active: Set pivot to active object origin.
Cursor: Set pivot to cursor.
Rotation Mode
Set the rotation euler mode for the new empty (useful and sometimes needed for rigging and animation afterwards when dealing with gimbal locks).
Keep Relationship
Parent the new empty to the same parent of the active object. If disabled, the new empty has no parent.
Naming
Name: Set the name for the new empty. If this text field is empty, the name of the active object will be taken instead.
Suffix: Will be added at the end of the name of the empty to prevent name clashes. Will not be used for the “Add Prefix” option.
Add Prefix: Adds the name as a prefix to all children objects of the new empty.
Viewport Display
Size: Set the viewport size of the new empty.
Annotation: Show the name of the new empty in the viewport.
Show In Front: Show the empty always in front of all the other objects.
Ungroup
“Ungroup” objects by unparenting them from the selected empties but keeping their transforms. If the selected empties have a parent, the objects are parented to them instead.
The empties are removed afterwards. You can select multiple empties at once, also if they are in the same hierarchy.
File
group_selection_v1.0.zip (7.7 KB)