Как получить все возможные значения свойства Enum

Для корректного задания значений свойству типа EnumProperty необходимо знать все его возможные варианты.

Если попытаться задать значение, которого нет в перечислимом свойстве, Blender выдаст ошибку вида:

TypeError: bpy_struct: item.attr = val: enum «xxx» not found in (‘value_001′, value_002’, …)

где:

xxx — значение, которые мы попытались задать свойству EnumProperty

value_001, value_002, … — возможные значения, которые может принимать данное свойство EnumProperty

Список значений, которые может принимать нужное нам свойство EnumProperty можно получить через его rna-структуру.

Определим функцию, которая будет возвращать список возможных значений EnumProperty, получая во входных параметрах объект и название перечислимого свойства, возможные значения которого нужно получить.

Для примера получим все возможные системы координат в сцене:

или все возможные значения режимов работы с мешем: