3
$\begingroup$

I have an object with many nested children. Some of this children are hidden as i want it to be. I want to do some operation to all of children but If i select hierarchy from outliner or shift-G /select children , it will ignore the hidden/invisible children.

How can i do the proper selection so all the hidden objects will also be selected ? I don't want to unhide them, because later i need to select them one by one again to hide them back and it's painful because it's a complex structure.

$\endgroup$
3
  • $\begingroup$ Good question. I'm not a fan of this behavior. You could solve this problem with collections if you are not using collections otherwise. Lets say your whole hierarchy is in Collection 1. Then you can easily select everything that is not hidden and move it to Collection 2 (the hidden object will be left behind). Now you can Shift click the eye icon (Hidden in Viewport) of Collection 1. Then you can easily select everything in both collections, do the operation, then easily hide everything in Collection 1 again, and then move everything from Collection 2 back to Collection 1. $\endgroup$ Nov 13 '20 at 5:47
  • $\begingroup$ Good trick , maybe at some point it can be broken, for example if there's an object (A) somewhere on the tree which is a child of a hidden object (B). If i select hierarchy , it will ignore the A , even when it's not hidden, just because its parent (B) is hidden. $\endgroup$
    – andio
    Nov 13 '20 at 6:15
  • $\begingroup$ I think you don't have to worry about that. That is not possible with the method as i described it, since it only does things with objects that are not hidden. The point of swapping between collections is to quickly and easily temporarily unhide (and then later hide again) all the relevant objects. Unhidden children of hidden parents are not ignored when selecting all visible objects in a hierarchy and moving them to another collection. $\endgroup$ Nov 13 '20 at 12:40
3
$\begingroup$

The short answer is, selecting them is not possible with Blender (at the moment?), since (viewport) hidden / disabled objects are treated like "Disable Selection" is turned on. The solution would be to use a workaround and depending on what you want to do. The good thing is, if you want to translate those hidden objects and they are parented to a visible object, they will perform the translation with their parent although they are hidden.

If you want to select all objects in a collection to duplicate them, instead of using RMB+Right-click > Select Objects try RMB+Right-click > Duplicate Collection. This duplicates the collection with all objects, even those that are hidden (note: the option Hide in Viewport will be disabled, but the option Disable in Viewport will keep its setting).

If you want to translate complete collections with hidden objects, the easiest way would be to add an empty to this collection, select all other objects in the Outliner and parent them to the empty by dragging them onto it with Shift+LMB.

To parent one object A with a hierarchy including children that are "Disabled in Viewport" to another object B, simply drag object A with Shift+LMB onto object B in the Outliner.

$\endgroup$
7
  • 1
    $\begingroup$ I can duplicate , no problem. In this case i want to select children to switch the parent. ( i want to disconnect with current parent and want to parent them to new object ) . $\endgroup$
    – andio
    Nov 13 '20 at 9:30
  • $\begingroup$ Switching parents, that's all? In the outliner: Select the parent object, press Home to show the complete hierarchy. Box-select all children. Shift+LMB to drag them onto the new parent object. Release the mouse button and you're done. $\endgroup$ Nov 13 '20 at 9:46
  • $\begingroup$ ...that's the same at the end of my answer, where I parent the objects to an empty. $\endgroup$ Nov 13 '20 at 9:48
  • $\begingroup$ Thanks for the tip Gordon, in my case, when pressing 'home' the hierarchy is quite big. need couple of scroll to grab all of them. But this manual process works fine for me. It's just i'm expecting a fancy thing like : insert object in the middle of hierarchy . For example : A(parent) <-- B(child). where B itself can be a big nested parenting structure. Then Insert C so become : A <-- C <-- B . (A parenf of C, C parent of B). Last step, i remove the A and keep transform, and left C hierarchy intact , so C become new root parent. $\endgroup$
    – andio
    Nov 13 '20 at 23:04
  • $\begingroup$ Now that I know what you want to do: If you have an object A, parent to A1, A2 and B, with B parent to B1 + B2. You also have object C, with children C1 + C2. Now you want to make B a child of C, keeping the A and C hierarchy intact. Do this in the outliner: Shift+LMB on C, drag onto A. Now the C hierarchy is a child of A, next to B hierarchy. Shift-LMB on B, drag it onto C. The B hierarchy is now child of C. Shift-LMB on C, drag it outside of A. Now A, A1, A2 hierarchy is intact, B hierarchy is now child of C along with C1 and C2, C an unparented object. Works with the invisible objects, too $\endgroup$ Nov 16 '20 at 11:13
0
$\begingroup$

You could solve this problem with collections if you are not using collections otherwise.

Lets say your whole hierarchy is in Collection 1. Then you can easily select everything that is not hidden and move it to Collection 2 (right click the collection and choose Select Objects. Then press M and choose Collection 2). The hidden objects will be left behind in Collection 1. Now you can Shift click the eye icon (Hidden in Viewport) of Collection 1 to unhide them all at once.

Then you can easily select everything in both collections (right click the first collection and choose Select Objects, then the second) Then do the operation on the objects, since they are now all unhidden. Then easily hide everything in Collection 1 again (Shift click the eye icon to hide every thing, and click it again to unhide the collection itself as a whole).

Finally move everything from Collection 2 back to Collection 1.

$\endgroup$
5
  • $\begingroup$ The problem is my parent object ( and with its hierarchy ) is in collection 1 , but all together with other objects. So first need to move the whole complete tree to other new collection , right ? The same problem is how to select the whole tree while some are hidden. $\endgroup$
    – andio
    Nov 13 '20 at 22:58
  • $\begingroup$ I did specify that it only can work if you're not using collections otherwise. So yes, it only works if you only want to affect the objects in the hierarchy (which you do, in the method i described). And for that ideally the objects of the hierarchy should be the only ones in the initial collection. If the other objects not part of the hierarchy were all unhidden though, you could easily filter those out; select them first and put them in a third collection. In any case, i want the record to show that i wish hidden object could be selected, but sadly they can't : ) $\endgroup$ Nov 14 '20 at 4:57
  • $\begingroup$ The best is moving the parent object in the outliner directly, not moving to different collections, enabling and disabling visibilty. See my latest comments above. $\endgroup$ Nov 16 '20 at 14:28
  • $\begingroup$ Ah yes, you are right. Shift+LMB and drag in the outliner is very helpfully in this situation. Quite foolish that i didn't consider it. Thanks for pointing it out : ) $\endgroup$ Nov 16 '20 at 16:36
  • $\begingroup$ I actually realized it a little later after my first comment, because I'm not working much with the outliner, since most of the time I'm getting along with the viewport and just disabling a few objects here and there. $\endgroup$ Nov 17 '20 at 8:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.