Получение всех возможных значений параметра bl_context для классов панелей UI

При размещении пользовательских панелей UI на нужной вкладке в рабочей области Properties используется параметр bl_context. Указываемое в этом параметре значение отвечает за то, на какой именно вкладке будет размещаться пользовательская панель.

Например, для того чтобы разместить кастомную панель UI на вкладке “Render Properties”, в описании панели параметру bl_context нужно присвоить значение “render”.

Узнать нужные значения для каждой вкладки, можно кликнуть правой кнопкой по любому полю, уже размещенному в ней, во всплывающем меню выбрать “Edit Source”, прокрутить открывшийся код вверх до определения класса и просто посмотреть нужное значение.

Также мы можем получить все возможные значения параметра bl_context пройдя по определениям всех панелей, использующихся в API Blender.

Для начала из списка типов bpy.types получим все классы, которые наследованы от типа панели UI – bpy.types.Panel.

Определим функцию-генератор, которая позволит нам пройти в цикле по всем классам панелей:

Кортеж __mro__ предоставляет нам доступ ко всем классам, от которых наследуется текущий класс. Проверяя, есть ли в нем класс bpy.types.Panel мы отсеиваем только те классы bpy.types, которые отвечают за панели интерфейса Blender.

Получив перечень нужных классов, нам остается только пройти по ним и получить значение свойства bl_context:

Или же, чтобы видеть только уникальные значения, взять сет:

Полный список значений для Blender 3.5:

{‘modifier’, ‘input’, ‘.sculpt_mode’, ‘.particlemode’, ‘shaderfx’, ‘particle’, ‘keymap’, ‘.mesh_edit’, ‘bone’, ‘experimental’, ‘.greasepencil_weight’, ‘render’, ‘.weightpaint’, ‘.imagepaint’, ‘editing’, ‘viewport’, ‘lights’, ‘.greasepencil_sculpt’, ‘collection’, ‘navigation’, ‘.uv_sculpt’, ‘physics’, ‘output’, ‘.paint_common_2d’, ‘addons’, ‘.greasepencil_vertex’, ‘bone_constraint’, ‘.armature_edit’, ‘data’, ‘.posemode’, ‘.objectmode’, ‘texture’, ‘scene’, ‘file_paths’, ‘.greasepencil_paint’, ‘animation’, ‘.vertexpaint’, ‘view_layer’, ‘object’, ‘interface’, ‘save_load’, ‘system’, ‘themes’, ‘.imagepaint_2d’, ‘world’, ‘constraint’, ‘.paint_common’, ‘.curves_sculpt’, ‘material’}

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

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