Для того, чтобы получить текущую активную коллекцию через Blender Python API нужно обратиться к ней через слой отображения view_layer.
Следующая команда вернет указатель на активную коллекцию в сцене:
1 2 3 |
bpy.context.view_layer.active_layer_collection.collection # <bpy_struct, Collection("Collection 2") at 0x000001F872BE3608> |
К активной коллекции можно также получить доступ напрямую через context:
1 2 3 |
bpy.context.collection # <bpy_struct, Collection("Collection 2") at 0x000001F872BE3608> |
Обратите внимание на то, что переключение видимости коллекций в аутлайнере при помощи значков “глаза” и “монитора” сбрасывает текущую активную коллекцию и делает активной главную коллекцию сцены.
А можно это использовать что бы выделенный объект во вьюпорте ставил в аутлайнере выделение на коллекции в которой он находится?
API для выделеня коллекций в аутлайнере нет. Можно наверное цвет иконки красить в какой-нибудь из имеющихся.