Macro(bpy_struct)

Example Macro

This example creates a simple macro operator that moves the active object and then rotates it. It demonstrates:

  • Defining a macro operator class.

  • Registering it and defining sub-operators.

  • Setting property values for each step.

import bpy


class OBJECT_OT_simple_macro(bpy.types.Macro):
    bl_idname = "object.simple_macro"
    bl_label = "Simple Transform Macro"
    bl_options = {'REGISTER', 'UNDO'}

    @classmethod
    def poll(cls, context):
        return context.active_object is not None


def register():
    bpy.utils.register_class(OBJECT_OT_simple_macro)

    # Define steps after registration and set operator values via .properties
    step = OBJECT_OT_simple_macro.define("transform.translate")
    props = step.properties
    props.value = (1.0, 0.0, 0.0)
    props.constraint_axis = (True, False, False)

    step = OBJECT_OT_simple_macro.define("transform.rotate")
    props = step.properties
    props.value = 0.785398  # 45 degrees in radians
    props.orient_axis = 'Z'


def unregister():
    bpy.utils.unregister_class(OBJECT_OT_simple_macro)


if __name__ == "__main__":
    register()

    # To run the macro:
    bpy.ops.object.simple_macro()

base class — bpy_struct

class bpy.types.Macro(bpy_struct)

Storage of a macro operator being executed, or registered after execution

bl_cursor_pending

Cursor to use when waiting for the user to select a location to activate the operator (when bl_options has DEPENDS_ON_CURSOR set)

Type:

enum in Window Cursor Items, default "'DEFAULT'"

bl_description
Type:

string, default “”, (never None)

bl_idname
Type:

string, default “”, (never None)

bl_label
Type:

string, default “”, (never None)

bl_options

Options for this operator type

Type:

enum set in Operator Type Flag Items, default '{}'

bl_translation_context
Type:

string, default “Operator”, (never None)

bl_undo_group
Type:

string, default “”, (never None)

has_reports

Operator has a set of reports (warnings and errors) from last execution

Type:

boolean, default False, (readonly)

name
Type:

string, default “”, (readonly, never None)

properties
Type:

OperatorProperties, (readonly, never None)

report(type, message)

report

Parameters:
  • type (enum set in Wm Report Items) – Type

  • message (string, (never None)) – Report Message

classmethod poll(context)

Test if the operator can be called or not

Return type:

boolean

draw(context)

Draw function for the operator

classmethod define(operator)

Append an operator to a registered macro class.

Parameters:

operator (str) – Identifier of the operator. This does not have to be defined when this function is called.

Returns:

The operator macro for property access.

Return type:

OperatorMacro

classmethod bl_rna_get_subclass(id, default=None, /)
Parameters:

id (str) – The RNA type identifier.

Returns:

The RNA type or default when not found.

Return type:

bpy.types.Struct subclass

classmethod bl_rna_get_subclass_py(id, default=None, /)
Parameters:

id (str) – The RNA type identifier.

Returns:

The class or default when not found.

Return type:

type

Inherited Properties

Inherited Functions

References