4
$\begingroup$

How to set active 'Scene Collection'? bpy.context.view_layer.active_layer_collection = bpy.data.collections['Master Collection'] not working.

$\endgroup$

3 Answers 3

7
$\begingroup$

Set active 'Scene Collection'

scene_collection = bpy.context.view_layer.layer_collection
bpy.context.view_layer.active_layer_collection = scene_collection
$\endgroup$
4
$\begingroup$

You can loop trough all your [first level] collections and set the one you want with it's name

collections = bpy.context.view_layer.layer_collection.children

for collection in collections:
    if collection.name == "name_of_the_collection_you_want_active":
        bpy.context.view_layer.active_layer_collection = collection

If you want to loop in all collections looking for "My Collection" and set it active you can use this code Change active collection from johnzero7 :

#Recursivly transverse layer_collection for a particular name
def recurLayerCollection(layerColl, collName):
    found = None
    if (layerColl.name == collName):
        return layerColl
    for layer in layerColl.children:
        found = recurLayerCollection(layer, collName)
        if found:
            return found

#Change the Active LayerCollection to 'My Collection'
layer_collection = bpy.context.view_layer.layer_collection
layerColl = recurLayerCollection(layer_collection, 'My Collection')
bpy.context.view_layer.active_layer_collection = layerColl


$\endgroup$
2
  • $\begingroup$ I don't think @cscholl's solution works recursively - e.g. it will only work if the collection is not nested in another collection. $\endgroup$
    – ddd
    May 25, 2020 at 11:01
  • $\begingroup$ @ddd : you're right, I've edited the code to add a recursive exemple $\endgroup$
    – cscholl
    May 26, 2020 at 13:36
-1
$\begingroup$
#Change active collection
bpy.context.view_layer.active_layer_collection = bpy.context.view_layer.layer_collection.children['Master Collection']
$\endgroup$
1
  • $\begingroup$ Hi, thanks for the post. This site is not a regular forum, answers should be substantial, stand on their own, and thoroughly explain the solution and required steps. One liners and short tips rarely make for a good answer. If you can, edit your post and provide some more details about the code and how it works, perhaps add a few images illustrating some steps and final result. See How to write a good answer?, otherwise it may be converted to a comment. $\endgroup$ Jul 7, 2023 at 14:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .