Can we expect at some point a true hierarchy system with groups for Blender?

That’s probably a big part of it. But sometimes it’s also just changing your workflow a bit to adapt to another program. I’m not saying that is the case here, just that I think you should really only try to tackle annoyances after a significant time in blender (or any new app) so you are sure you’re not working with App X in the App Y way.

On topic: When I have a scene with many objects, I make heavy use of collection instances, which I think nearly behave like you describe a group? But I’m by no means an advanced blender user, so I probably miss a lot of differences which would be apparent to someone with higher demands…

I hear you for sure. There’s a number of UX things I’ve adapted to. I’m loving Blender so far. It has so many awesome features and is just such an amazing tool.

Yup, I’ve been leveraging collection instances too. It’s great for creating one item that is used a bunch in the same scene. It’s just a bit of a drag when needing to make a number of unique elements that I only need one of, that I end up moving around in the scene to get them where I want them in early stages. So having to select all of the elements in the collection and lets say rotate them around a point that isn’t in the center of all of them is difficult. It’d be great not to have to create a collection, and then an instance, just to get those translation features. Not to mention not being able to put modifiers on it. I think that collections are great, and could basically serve the purpose of groups if they allowed for it to hold it’s own translation information, and apply modifiers etc. to it.

I’m glad to hear your thoughts!

1 Like

This. I’m getting tired of seeing this thread over and over.
If you want, OP, I could probably write you an addon that does this when you press Ctrl-G and it would just over-write whatever the default keybind is.
EDIT: lol, it’s the same thread as before… is someone resurrecting old threads? haha

Why do you answer me? :slight_smile:
I said nothing here since the first time I posted I think

BC you gave the correct answer that should shut down these threads for good, lol. People have been asking for groups since forever. I don’t mind it, but they already have the feature and changing collections would take away a feature I use, too.
Also I was mistaken in thinking it was yet another thread on the topic instead of an ancient one brought back from the dead… sorry for the noise!

1 Like

Hey there Joseph! It was I who performed the resurrection spell. Haha. :wink:

I hear you. It can be wearisome to hear the same request again and again. That may though be an indication of how important that request is to the community. For me, the suggestions that @JuanGea outlined work, but are not ideal, in that they could be streamlined and simplified and improved.

I think Blender is awesome so far. I’m really enjoying working with it. I think it has room to grow and can keep getting better. And I’d like to continue this discussion, and would be happy to put more brain power into coming up with a solution. From my perspective as a relative newcomer, I would very much like to learn from your perspective. For instance, I just found out that objects and collection instances can belong to multiple collections. Pretty cool! Pretty flexible! It is my hope that we can come together, share our needs and desires, and keep pushing the boundary of what is possible forward.

That’s why I think I should just make a simple Python addon, it would be no trouble, maybe a half-hour’s work on a weekend.

Sure thing! What would the addon do specifically?

it would parent the selected objects to an empty when you press Ctrl-G and do the matrix math for it. Eh, maybe it would be worth switching to DM’s to talk about the details… I was also kinda hoping you had some specific ideas regarding

Of course, if it’s too complex it won’t be something I can just drop everything and do for free ;).
Basically, lemme know what you want. I can def. do the parenting-to-an-empty thing pretty easy.

1 Like

I saw this threat popping up again… And I think it’s still relevant.
I think there is a little misunderstanding. Of course I can only speak for myself but the main thing I’m missing about groups in blender is the feature that you can apply modifiers to “groups” of objects not to just one object (as I explained in an earlier post).
I think it’s not that easy to script that in a little add-on (but I’m not a programmer so I have no idea)…

I totally agree with Lichen!
I think it’s very obvious when you come from another software what workflows can be A LOT more convenient. I mean, I switched from C4D to Blender and back to C4D (because of that group thing) and I also miss some things in C4D that I really liked in Blender. Things that I think are better solved in Blender than in C4D.

There is C4D for example…

Well… whit geometry nodes there is finally a solution for that problem (Just for those who might stumble upon this threat, trying to find a solution for that modifier group problem):
With the new (Blender 3.0) node “realize instances” you can now make collection input “real”. So you can have an “empty” object (not an “Empty” but an object without geometry data) that behaves like a group object. After the Geometry Nodes modifier you can add other modifiers that affect the whole collection.
Thats kind of a workaround but it’s finally possible to apply modifiers to a whole collection.
But I think, the whole Geometry Node project is a very useful tool that has potential to solve most of that “group” related problems anyway, as you can have multiple objects in one node tree.

1 Like

The workaround you describe would be fairly easy to make a macro for :slight_smile:

You’re right! With that new feature in geometry nodes it should be doable, of course.

I don’t use C4D so I didn’t knew that, but yes GN kind of solved this more or less :slight_smile:

1 Like

For sure dude! I do have some ideas regarding how it could work / behave.
I’ll mull it over, and get back to you with them. I think I can probably work something up too that could implement it as well. And if it’s dope, then port as much as possible over to C and submit a patch for it in the core.

I think the modifiers on collections will eventually be solved by other projects (at least I’ve read places that it will be in the works sometime in the future, and that modifiers themselves will be rewritten to be nodes anyway). So applying modifiers to the parent and have them affect the children may want to wait until those projects are underway. Also that’s waaay more complex and a above my familiarity with Blender at the moment. lol.

So I think that select any object in a group, and it selects the group itself (parent) would be the most useful to design and implement. Since grouping would create an empty that would serve as a parent, we’d get that sweet sweet transformation goodness. It could also automatically resize the parent to fit the children, and allow for the display of the children to be turned off, so as to save viewport performance. Just playing around right now with parenting to a box empty with a number of objects gets exactly what I’m wanting in terms of grouping for transforms. Combine that with an easier way to move objects origin (on the fly moving an an origin, especially with snapping to vertexes, edges faces etc.) would be killer.

Grouping also ties into what I’d also like to develop regarding transforms, which is a more advanced duplication system. One where you could duplicate an object and transform it with rotation, scale, and translation at the same time, potentially with formulas if desired. Ideally it’d be also able to be a modifier / geo node (and potentially replace the array modifier).

Porting it to C would probably be overkill.
Yeah, modifiers on collections is basically doable now with Geom. Nodes.

So I think that select any object in a group, and it selects the group itself (parent) would be the most useful to design and implement. Since grouping would create an empty that would serve as a parent, we’d get that sweet sweet transformation goodness. It could also automatically resize the parent to fit the children, and allow for the display of the children to be turned off, so as to save viewport performance. Just playing around right now with parenting to a box empty with a number of objects gets exactly what I’m wanting in terms of grouping for transforms. Combine that with an easier way to move objects origin (on the fly moving an an origin, especially with snapping to vertexes, edges faces etc.) would be killer.

I don’t really see the practical difference from using a collection instance for this… if you want the group to be selected whenever you select a member, why even have specific members? As for the thing about moving origins, this probably does exactly what you want:
affect_only_origins

Grouping also ties into what I’d also like to develop regarding transforms, which is a more advanced duplication system. One where you could duplicate an object and transform it with rotation, scale, and translation at the same time, potentially with formulas if desired. Ideally it’d be also able to be a modifier / geo node (and potentially replace the array modifier).

Meh. Just use Python or Geom. nodes! If it is complex enough to need formulas or multiple transformations it’s not something you want a tool for, IMO.

I think I’d want it to be a bit more advanced. Like if you double click any object in the group then you can single click them to move them around, edit them etc. Definitely something that can be worked up for sure!

Awesome on the transform only origins! I didn’t know that existed! Sweet. Now I can expose that a bit in the menus and keyboard shortcuts. Thanks a bunch! I really appreciate you engaging in the discussion and coming up with ideas.

Blender keeps getting me more and more stoked dude.

1 Like

single click them to move them around, edit them etc. Definitely something that can be worked up for sure!

Hmm. Any reason not to just use Collection instances for this? You could even make a collection of collection instances (“objects”) and make an instance of that collection (“group”). Then you could edit the “group” by moving the objects in the group-collection.
There are times when recursive selection could be nice, but all-in-all I think it’s an anti-feature that you should get used to not having (and not having to fight with). Recursive selection is confusing. The way Blender works is easy to understand. Well, nested collections and instances can be hard to understand, but they’re pretty simple. It’s the layers of complexity you can create that make them a little hard to understand. But that’s far better than being complex to begin with!

Anyhow when I get home I’ll see if I can mock something up.

Good point. I took a look again at how other 3D tools implement groups, and it seems like most of them have single clicks select the object, but you can use either keyboard shortcuts, modes, or menus to select the group itself.

After a bit more experimentation, the only downsides I’ve seen of parenting is that you can’t move the origin for adjusting where a transform happens without moving the children with it, since it seems that that is the point that they’re parented to. I’ve seen that you can set the pivot point to the 3D cursor so that’s a bit of a work around for one time transforms. Edit: Holy smokes you can enable affecting only the parent, so you can move the origin, without moving the children with it! I think parenting to a cube that either isn’t displayed or has it’s bounding box displayed would be very handy: since you could still move the origin. But since the parenting references that it doesn’t make it as attractive. I started working on a tool to allow for parenting to an empty, and then I realized you can’t move the origin of an empty. lol. Hell yes, I think parenting to a cube or non-empty object will work! Siiiiicccckkkk

Collection instances seem like a good option. However it makes it so that you have to have a duplicate (although for memory purposes it seems quite light). And you can’t select the individual objects in a collection instance, as far as I can tell (maybe you can?). Also you can’t change the origin point of a collection instance like you can an object, it seems to rely on the offset from the world origin. I have no clue why it’s set up like that; perhaps because a collection isn’t a concept that exists in a space in the viewport until it becomes an instance?

Seems like this is the functionality I’m visualizing for groups:

  • Select group elements individually and interact with them as if they were not grouped. They can all have their own origins / pivot points
  • Select the group with key command, mode, or menu and transform (move, rotate, scale) the elements of the group relative to the origin of the group (or pivot point, if that were something that could be stored per object)
  • Move the group origin (or stored pivot point) on demand, without affecting the position of the group elements
  • Long term: apply modifiers / settings to the group and have them affect the children

What are your thoughts?

Actually, you can change this.


Try changing ‘Instance offset’ and see how you like it :slight_smile:

And you can’t select the individual objects in a collection instance, as far as I can tell (maybe you can?)

This is correct. But that’s why I suggested you nest multiple collections and use collection instances of collections full of collection instances! :slight_smile: But that can be annoying since it, too, involves having duplicates of things.

My gut tells me this would be possible with clever use of drivers or handlers with the existing systems. I didn’t have a chance tonight to try it, though. Collection properties aren’t animatable, unfortunately, so it may be harder than it seems. Actually, on second thought, it would take some serious effort to make that happen in a user-friendly way. :thinking: I might not be able to do it if that’s what you’re hoping to be able to do. I could make a simple tool for parenting to an empty, or maybe an operator for ‘swapping’ the contents of a collection instance. I have my own addon I also need to work on.
Are you willing to get your own hands dirty with Python and matrix math? Maybe It’d be easier to try and do it yourself. I’d be happy to offer some guidance on the way to do it.

An empty is more or less an origin without further data, so I’d think there’s no difference between moving an empty or moving it’s origin?? If you have a hidden cube, what’s the difference with a (hidden empty)?

Moving the origin of a cube is just moving the cube and then moving the local vertex coordinates back, so why bother if you don’t want to display the vertex coordinates.