Grouping - how do you REALLY group?

Hi.

I want to group objects together. And by “group” I mean it the way that nearly every other program handles groups, from CAD apps to DTP apps to (dare I say it) Microsoft apps. eg. lock these things together and consider them one object, regardless of what or how many sub-parts.

In - let’s call it “traditional grouping” - when you group something together, it is stuck to it’s group partners. If you select one member, you select all. In fact, you cannot single out individual members of a group, you can only select / manipulate the group as a whole. To access parts of a group you must split the group; and naturally there can be groups of groups of groups, and on…

I do not know if Blender can do this.

There’s grouping, which of course does nothing regarding locking objects together - it’s handy for referring to a “grouped object” instead of it’s individual parts when you are importing and such, but not remotely what I need.

There’s parenting, which is -almost- what I want, but you can still select child objects individually and alter them. Blender won’t allow reciprocating parenting, it complains about parent loops, or this might have been enough. This too is a no-go.

The closest thing I know of that works like “grouping” that I’m looking for is is to Join the objects. That combines the objects, stacks their textures, and essentially becomes a single entity. And to manipulate any parts they must be selected in Edit mode and separated first (which is the same behaviour as all the aforementioned apps). But - this apparently only works on meshes? Or maybe it’s only same-type objects; I know you cannot join a path and a mesh. This method is probably limited, although I’ll admit I haven’t tried joining a few hundred meshes with hundreds of textures and hundreds of thousands of vertices… but I can’t imagine it would work well, or at all.

All I want is to “traditionally group” stuff together. Curves, texture coordinate emptys, meshes, cameras, anything. Where selecting one selects them all, and any manipulation manipulates them all.

Is there any way to do what I’m describing? Sorry this was so long but I wanted to be sure I got the concept across.
TIA!

In the object buttons (F7), there is the capability to group objects. Select an object, go to object buttons (F7), click on the drop down menu, select Add New, name the group, add more objects by clicking on the drop down menu and select the group name.

@ redjay I think he mentioned he knows about regular grouping in blender already, I might be wrong.

@ Tesselated I have never heard of such functionality, as you describe, pretty sure you’ve figured out all the ways of grouping there are. Oh well, no app is perfect, but blender is close!

Keep Blending!

You could add a copy loc-rot-scale constraint to all objects you want to keep together. Not really what you were asking for, but might give you what you want. Personally, I think selecting one object in the group and Shift+G, 7 to grab the rest is easier.

You just have to do an extra step Tesselated.

After you create your group, create an empty.
Click Dupligroup and then type in the name of the group in the OB field.
Move your source objects for that group to an unused layer at this point, so they are no longer in the way.

Now your empty represents the “Traditional” group you may be used to.
You can select any part of it and it selects the whole group. And you can animate and rotate a single object and your whole group is animated.

Thanks Atom, nice workaround.

Another useful hack that I use: since you cannot add multiple objects into a group, I do this with a simple script. The Blender script “Selection to DupliGroup” is close enough, but it removes your original objects so you cannot edit the group anymore (or at least, I don’t know how).

So, to assign selected objects to a group, do the following:

1.) Run the python console from the Scripts menu (“Scripts” - “System” - “Interactive Python Console”)
2.) Write the following lines of code into the console. Watch your indentation. Also, change the text in the quotes to your group name.


objects = Object.GetSelected()
group = Group.Get("mygroup")
for object in objects:
    group.objects.link(object)

3.) You’re done! Now you have your objects in a group and you still can edit them.