user: How do I use XrActionMapItem(bpy_struct) in Blender? Include parameters, examples, warnings and best practices.

assistant: # XrActionMapItem(bpy_struct)

base class — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct")

*class* bpy.types.XrActionMapItem(*bpy_struct*)
:   bimanual
    :   The action depends on the states/poses of both user paths

        Type:
        :   boolean, default False

    bindings
    :   Bindings for the action map item, mapping the action to an XR input

        Type:
        :   [`XrActionMapBindings`](bpy.types.XrActionMapBindings.html#bpy.types.XrActionMapBindings "bpy.types.XrActionMapBindings") [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`XrActionMapBinding`](bpy.types.XrActionMapBinding.html#bpy.types.XrActionMapBinding "bpy.types.XrActionMapBinding"), (readonly)

    haptic_amplitude
    :   Intensity of the haptic vibration, ranging from 0.0 to 1.0

        Type:
        :   float in [0, 1], default 0.0

    haptic_duration
    :   Haptic duration in seconds. 0.0 is the minimum supported duration.

        Type:
        :   float in [0, inf], default 0.0

    haptic_frequency
    :   Frequency of the haptic vibration in hertz. 0.0 specifies the OpenXR runtime’s default frequency.

        Type:
        :   float in [0, inf], default 0.0

    haptic_match_user_paths
    :   Apply haptics to the same user paths for the haptic action and this action

        Type:
        :   boolean, default False

    haptic_mode
    :   Haptic application mode

        - `PRESS`
          Press – Apply haptics on button press.
        - `RELEASE`
          Release – Apply haptics on button release.
        - `PRESS_RELEASE`
          Press Release – Apply haptics on button press and release.
        - `REPEAT`
          Repeat – Apply haptics repeatedly for the duration of the button press.

        Type:
        :   enum in [`'PRESS'`, `'RELEASE'`, `'PRESS_RELEASE'`, `'REPEAT'`], default `'PRESS'`

    haptic_name
    :   Name of the haptic action to apply when executing this action

        Type:
        :   string, default “”, (never None)

    name
    :   Name of the action map item

        Type:
        :   string, default “”, (never None)

    op
    :   Identifier of operator to call on action event

        Type:
        :   string, default “”, (never None)

    op_mode
    :   Operator execution mode

        - `PRESS`
          Press – Execute operator on button press (non-modal operators only).
        - `RELEASE`
          Release – Execute operator on button release (non-modal operators only).
        - `MODAL`
          Modal – Use modal execution (modal operators only).

        Type:
        :   enum in [`'PRESS'`, `'RELEASE'`, `'MODAL'`], default `'PRESS'`

    op_name
    :   Name of operator (translated) to call on action event

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

    op_properties
    :   Properties to set when the operator is called

        Type:
        :   [`OperatorProperties`](bpy.types.OperatorProperties.html#bpy.types.OperatorProperties "bpy.types.OperatorProperties"), (readonly)

    pose_is_controller_aim
    :   The action poses will be used for the VR controller aims

        Type:
        :   boolean, default False

    pose_is_controller_grip
    :   The action poses will be used for the VR controller grips

        Type:
        :   boolean, default False

    selected_binding
    :   Currently selected binding

        Type:
        :   int in [-32768, 32767], default 0

    type
    :   Action type

        - `FLOAT`
          Float – Float action, representing either a digital or analog button.
        - `VECTOR2D`
          Vector2D – 2D float vector action, representing a thumbstick or trackpad.
        - `POSE`
          Pose – 3D pose action, representing a controller’s location and rotation.
        - `VIBRATION`
          Vibration – Haptic vibration output action, to be applied with a duration, frequency, and amplitude.

        Type:
        :   enum in [`'FLOAT'`, `'VECTOR2D'`, `'POSE'`, `'VIBRATION'`], default `'FLOAT'`

    user_paths
    :   OpenXR user paths

        Type:
        :   [`XrUserPaths`](bpy.types.XrUserPaths.html#bpy.types.XrUserPaths "bpy.types.XrUserPaths") [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`XrUserPath`](bpy.types.XrUserPath.html#bpy.types.XrUserPath "bpy.types.XrUserPath"), (readonly)

    *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`](bpy.types.Struct.html#bpy.types.Struct "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](#bpy.types.XrActionMapItem.type "bpy.types.XrActionMapItem.type")