Список выделенных в Аутлайнере коллекций

Для коллекций не существует единого списка выделения, Открыв в двух разных рабочих областях Blender окно Аутлайнера, вы можете выбрать разный набор коллекций в каждом из них. Так как для каждой рабочей области с Аутлайнером список выделенных коллекций свой, получить его можно только через контекст этой рабочей области.

Доступ к контексту  рабочей области имеют через операторы.  Получив доступ к контексту через оператор, мы можем проверить список выделенных в данном контексте ID-объектов через список “selected_ids”.

Напишем простейший оператор, который выводит в консоль список ID-объектов из контекста и зарегистрируем его в Blender Python API:

Внутри его функции “execute” мы сначала получаем список всех выделенных ID-объектов (к ID относятся объекты сцены, меши, арматура и, в том числе, коллекции) из свойства “selected_ids”.

После чего из этого списка мы выбираем только те объекты, тип который соответствует коллекции “Collection” и выводим полученный список на печать.

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

Если же нам нужно выполнить оператор из другого окна (например, Text Editor или 3D вьюпорта), необходимо переопределить контекст и вызвать наш оператор с переопределенным контекстом.

В результате мы получим список выделенных коллекций:

0 0 голоса
Article Rating
Подписаться
Уведомить о
guest
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии