Некоторые операторы в Blender можно вызывать только в той рабочей области, для которой они предназначены.

Если вызывать, например, оператор, предназначенный только для работы в области 3D вьюпорта в Python-консоли, оператор или просто не выполнится:
|
bpy.ops.wm.toolbar() # {'CANCELLED'} |
или вернет сообщение о неверном контексте:
|
bpy.ops.view3d.background_image_add() # RuntimeError: Operator bpy.ops.view3d.background_image_add.poll() failed, context is incorrect |
Однако выполнить операторы в “не родной” рабочей области все же можно. Для этого в любой оператор можно передать первым неявным параметром указание на контекст рабочей области, в которой должен быть выполнен этот оператор. Этот параметр обычно называют “переопределенный контекст”.
Данный метод подходит для Blender версии 3.1 и более ранних. Для версии Blender 3.2 и более поздних необходимо использовать метод temp_override().
Переопределение контекстаRead More »