Page MenuHome

Nested Collections cannot be made Local
Closed, InvalidPublic


System Information
Operating system: Windows-10-10.0.17134 64 Bits
Graphics card: GeForce GTX 1080/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 430.86

Blender Version
Broken: version: 2.81 (sub 2), branch: master, commit date: 2019-08-20 07:45, hash: rBf2cab8267f22
Worked: (optional)

Short description of error
If you Link a collection from another .blend file that has objects/meshes nested inside several collections, those meshes cannot be made local in the scene in which they were linked.

Exact steps for others to reproduce the error
[Please describe the exact steps needed to reproduce the issue]
[Based on the default startup or an attached .blend file (as simple as possible)]
This applies to 2.80 and 2.81
Open the attached .blend file. You will see The Scene Collection. Inside that is a Monkey Collection. Inside that is a Deeper collection. And inside that is a Suzanne object.
Clear the scene
Delete the default cube
Select File>Link
Navigate to the monkey.blend file and choose Collection
Select the MonkeyCollection and choose Link from Library
The Monkey Collection will appear in your scene and can be seen in the outliner
In the outliner, toggle down the MonkeyCollection and you will see the white "MonkeyCollection" icon with a link next to it indicating that it's linked.
Select the main MonkeyCollection (the one that's orange)
Go to Object>Relations>Make Local>All
Look in the outliner. The link is gone from the MonkeyCollection indicating that the object is now local to the scene
Try to go to the Edit mode to edit the Monkey mesh. The Edit option will not appear. Only Object mode will appear.
It is now impossible to make the Suzanne object local / editable in this scene.



Event Timeline

Bastien Montagne (mont29) claimed this task.

there is no bug here. After making everything local, your view layer is still not instancing the MonkeyCollection, you only have an empty object instancing that collection. in other words, your monkey object itself does not exist in the scene. You have to instantiate its collection in the scene (e.g. by drag-dropping it in the outliner, from the instancing empty to the master collection)> then you can edit it as any regular object.

Thanks for the help! Just tried this and it totally works. However this process is a bit obscure. I'm sure it's just my lack of understanding of how scene instancing and collections work under the hood. I'd like to suggest a new menu item:

Objects > Relations > Make Local > All Instanced To Scene

This would do what you've described above. It would take whatever linked object you have selected, make it local, and then instance it to the scene. Ideally it would also delete the original non-instanced copy as well. For the user, it would simply appear as though the linked object is now available for editing.

Thanks again!