Как сделать коллекцию активной

Сделать коллекцию активной в Blender Python API за одно действие нельзя. Свойство bpy.context.collection доступно только для чтения, а bpy.context.view_layer.active_layer_collection является типом LayerCollection, которому нельзя присвоить стандартный тип коллекции Collection. Для того, чтобы назначить активную коллекцию, нужно по исходной коллекции Collection определить коллекцию слоя видимости LayerCollection и уже ее устанавливать в качестве активной.

Для начала напишем функцию, которая по имени коллекции будет находить коллекцию слоя видимости.

Для нашей функции мы определили два входных параметра:

name – имя коллекции, которую нужно получить,

_layer_collection – необязательный параметр, коллекция, внутри которой мы ищем нужную. При None поиск производится от базовой коллекции сцены.

Функция производит поиск среди коллекций слоя видимости.

Внутри функции мы сначала проверяем, не является ли текущая коллекция искомой, если да – возвращаем ее, а если нет – производим поиск по всем коллекциям, входящим в нее, вызывая нашу функцию рекурсивно.

Если коллекция слоя видимости с заданным именем найдена – сделаем ее активной:

Проверим, что нужная коллекция действительно стала активной:

0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии