user: How do I use Object Operators in Blender? Include parameters, examples, warnings and best practices.

assistant: *, *scale=(0.0, 0.0, 0.0)*)
:   Add a point cloud object to the scene

    Parameters:
    :   - **align** (enum in [`'WORLD'`, `'VIEW'`, `'CURSOR'`], (optional)) –

          Align, The alignment of the new object

          - `WORLD`
            World – Align the new object to the world.
          - `VIEW`
            View – Align the new object to the view.
          - `CURSOR`
            3D Cursor – Use the 3D cursor orientation for the new object.
        - **location** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Location, Location for the newly added object
        - **rotation** ([`mathutils.Euler`](mathutils.html#mathutils.Euler "mathutils.Euler") rotation of 3 items in [-inf, inf], (optional)) – Rotation, Rotation for the newly added object
        - **scale** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – Scale, Scale for the newly added object

bpy.ops.object.posemode_toggle()
:   Enable or disable posing/selecting bones

bpy.ops.object.quadriflow_remesh(*\**, *use_mesh_symmetry=True*, *use_preserve_sharp=False*, *use_preserve_boundary=False*, *preserve_attributes=False*, *smooth_normals=False*, *mode='FACES'*, *target_ratio=1.0*, *target_edge_length=0.1*, *target_faces=4000*, *mesh_area=-1.0*, *seed=0*)
:   Create a new quad based mesh using the surface data of the current mesh. All data layers will be lost

    Parameters:
    :   - **use_mesh_symmetry** (*boolean**,* *(**optional**)*) – Use Mesh Symmetry, Generates a symmetrical mesh using the mesh symmetry configuration
        - **use_preserve_sharp** (*boolean**,* *(**optional**)*) – Preserve Sharp, Try to preserve sharp features on the mesh
        - **use_preserve_boundary** (*boolean**,* *(**optional**)*) – Preserve Mesh Boundary, Try to preserve mesh boundary on the mesh
        - **preserve_attributes** (*boolean**,* *(**optional**)*) – Preserve Attributes, Reproject attributes onto the new mesh
        - **smooth_normals** (*boolean**,* *(**optional**)*) – Smooth Normals, Set the output mesh normals to smooth
        - **mode** (enum in [`'RATIO'`, `'EDGE'`, `'FACES'`], (optional)) –

          Mode, How to specify the amount of detail for the new mesh

          - `RATIO`
            Ratio – Specify target number of faces relative to the current mesh.
          - `EDGE`
            Edge Length – Input target edge length in the new mesh.
          - `FACES`
            Faces – Input target number of faces in the new mesh.
        - **target_ratio** (*float in* *[**0**,* *inf**]**,* *(**optional**)*) – Ratio, Relative number of faces compared to the current mesh
        - **target_edge_length** (*float in* *[**1e-07**,* *inf**]**,* *(**optional**)*) – Edge Length, Target edge length in the new mesh
        - **target_faces** (*int in* *[**1**,* *inf**]**,* *(**optional**)*) – Number of Faces, Approximate number of faces (quads) in the new mesh
        - **mesh_area** (*float in* *[**-inf**,* *inf**]**,* *(**optional**)*) – Old Object Face Area, This property is only used to cache the object area for later calculations
        - **seed** (*int in* *[**0**,* *inf**]**,* *(**optional**)*) – Seed, Random seed to use with the solver. Different seeds will cause the remesher to come up with different quad layouts on the mesh

bpy.ops.object.quick_explode(*\**, *style='EXPLODE'*, *amount=100*, *frame_duration=50*, *frame_start=1*, *frame_end=10*, *velocity=1.0*, *fade=True*)
:   Make selected objects explode

    Parameters:
    :   - **style** (enum in [`'EXPLODE'`, `'BLEND'`], (optional)) – Explode Style
        - **amount** (*int in* *[**2**,* *10000**]**,* *(**optional**)*) – Number of Pieces
        - **frame_duration** (*int in* *[**1**,* *300000**]**,* *(**optional**)*) – Duration
        - **frame_start** (*int in* *[**1**,* *300000**]**,* *(**optional**)*) – Start Frame
        - **frame_end** (*int in* *[**1**,* *300000**]**,* *(**optional**)*) – End Frame
        - **velocity** (*float in* *[**0**,* *300000**]**,* *(**optional**)*) – Outwards Velocity
        - **fade** (*boolean**,* *(**optional**)*) – Fade, Fade the pieces over time

    File:
    :   [startup/bl_operators/object_quick_effects.py:273](https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/object_quick_effects.py#L273)

bpy.ops.object.quick_fur(*\**, *density='MEDIUM'*, *length=0.1*, *radius=0.001*, *view_percentage=1.0*, *apply_hair_guides=True*, *use_noise=True*, *use_frizz=True*)
:   Add a fur setup to the selected objects

    Parameters:
    :   - **density** (enum in [`'LOW'`, `'MEDIUM'`, `'HIGH'`], (optional)) – Density
        - **length** (*float in* *[**0.001**,* *100**]**,* *(**optional**)*) – Length
        - **radius** (*float in* *[**0**,* *10**]**,* *(**optional**)*) – Hair Radius
        - **view_percentage** (*float in* *[**0**,* *1**]**,* *(**optional**)*) – View Percentage
        - **apply_hair_guides** (*boolean**,* *(**optional**)*) – Apply Hair Guides
        - **use_noise** (*boolean**,* *(**optional**)*) – Noise
        - **use_frizz** (*boolean**,* *(**optional**)*) – Frizz

    File:
    :   [startup/bl_operators/object_quick_effects.py:92](https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/object_quick_effects.py#L92)

bpy.ops.object.quick_liquid(*\**, *show_flows=False*)
:   Make selected objects liquid

    Parameters:
    :   **show_flows** (*boolean**,* *(**optional**)*) – Render Liquid Objects, Keep the liquid objects visible during rendering

    File:
    :   [startup/bl_operators/object_quick_effects.py:553](https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/object_quick_effects.py#L553)

bpy.ops.object.quick_smoke(*\**, *style='SMOKE'*, *show_flows=False*)
:   Use selected objects as smoke emitters

    Parameters:
    :   - **style** (enum in [`'SMOKE'`, `'FIRE'`, `'BOTH'`], (optional)) – Smoke Style
        - **show_flows** (*boolean**,* *(**optional**)*) – Render Smoke Objects, Keep the smoke objects visible during rendering

    File:
    :   [startup/bl_operators/object_quick_effects.py:447](https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/object_quick_effects.py#L447)

bpy.ops.object.randomize_transform(*\**, *random_seed=0*, *use_delta=False*, *use_loc=True*, *loc=(0.0, 0.0, 0.0)*, *use_rot=True*, *rot=(0.0, 0.0, 0.0)*, *use_scale=True*, *scale_even=False*, *scale=(1.0, 1.0, 1.0)*)
:   Randomize objects location, rotation, and scale

    Parameters:
    :   - **random_seed** (*int in* *[**0**,* *10000**]**,* *(**optional**)*) – Random Seed, Seed value for the random generator
        - **use_delta** (*boolean**,* *(**optional**)*) – Transform Delta, Randomize delta transform values instead of regular transform
        - **use_loc** (*boolean**,* *(**optional**)*) – Randomize Location, Randomize the location values
        - **loc** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-100, 100], (optional)) – Location, Maximum distance the objects can spread over each axis
        - **use_rot** (*boolean**,* *(**optional**)*) – Randomize Rotation, Randomize the rotation values
        - **rot** ([`mathutils.Euler`](mathutils.html#mathutils.Euler "mathutils.Euler") rotation of 3 items in [-3.14159, 3.14159], (optional)) – Rotation, Maximum rotation over each axis
        - **use_scale** (*boolean**,* *(**optional**)*) – Randomize Scale, Randomize the scale values
        - **scale_even** (*boolean**,* *(**optional**)*) – Scale Even, Use the same scale value for all axis
        - **scale** (*float array* *of* *3 items in* *[**-100**,* *100**]**,* *(**optional**)*) – Scale, Maximum scale randomization over each axis

    File:
    :   [startup/bl_operators/object_randomize_transform.py:161](https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/object_randomize_transform.py#L161)

bpy.ops.object.reset_override_library()
:   Reset the selected local overrides to their linked references values

bpy.ops.object.rotation_clear(*\**, *clear_delta=False*)
:   Clear the object’s rotation

    Parameters:
    :   **clear_delta** (*boolean**,* *(**optional**)*) – Clear Delta, Clear delta rotation in addition to clearing the normal rotation transform

bpy.ops.object.scale_clear(*\**, *clear_delta=False*)
:   Clear the object’s scale

    Parameters:
    :   **clear_delta** (*boolean**,* *(**optional**)*) – Clear Delta, Clear delta scale in addition to clearing the normal scale transform

bpy.ops.object.select_all(*\**, *action='TOGGLE'*)
:   Change selection of all visible objects in scene

    Parameters:
    :   **action** (enum in [`'TOGGLE'`, `'SELECT'`, `'DESELECT'`, `'INVERT'`], (optional)) –

        Action, Selection action to execute

        - `TOGGLE`
          Toggle – Toggle selection for all elements.
        - `SELECT`
          Select – Select all elements.
        - `DESELECT`
          Deselect – Deselect all elements.
        - `INVERT`
          Invert – Invert selection of all elements.

bpy.ops.object.select_by_type(*\**, *extend=False*, *type='MESH'*)
:   Select all visible objects that are of a type

    Parameters:
    :   - **extend** (*boolean**,* *(**optional**)*) – Extend, Extend selection instead of deselecting everything first
        - **type** (enum in [Object Type Items](bpy_types_enum_items/object_type_items.html#rna-enum-object-type-items), (optional)) – Type

bpy.ops.object.select_camera(*\**, *extend=False*)
:   Select the active camera

    Parameters:
    :   **extend** (*boolean**,* *(**optional**)*) – Extend, Extend the selection

    File:
    :   [startup/bl_operators/object.py:122](https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/object.py#L122)

bpy.ops.object.select_grouped(*\**, *extend=False*, *type='CHILDREN_RECURSIVE'*)
:   Select all visible objects grouped by various properties

    Parameters:
    :   - **extend** (*boolean**,* *(**optional**)*) – Extend, Extend selection instead of deselecting everything first
        - **type** (enum in [`'CHILDREN_RECURSIVE'`, `'CHILDREN'`, `'PARENT'`, `'SIBLINGS'`, `'TYPE'`, `'COLLECTION'`, `'HOOK'`, `'PASS'`, `'COLOR'`, `'KEYINGSET'`, `'LIGHT_TYPE'`], (optional)) –

          Type

          - `CHILDREN_RECURSIVE`
            Children.
          - `CHILDREN`
            Immediate Children.
          - `PARENT`
            Parent.
          - `SIBLINGS`
            Siblings – Shared parent.
          - `TYPE`
            Type – Shared object type.
          - `COLLECTION`
            Collection – Shared collection.
          - `HOOK`
            Hook.
          - `PASS`
            Pass – Render pass index.
          - `COLOR`
            Color – Object color.
          - `KEYINGSET`
            Keying Set – Objects included in active Keying Set.
          - `LIGHT_TYPE`
            Light Type – Matching light types.

bpy.ops.object.select_hierarchy(*\**, *direction='PARENT'*, *extend=False*)
:   Select object relative to the active object’s position in the hierarchy

    Parameters:
    :   - **direction** (enum in [`'PARENT'`, `'CHILD'`], (optional)) – Direction, Direction to select in the hierarchy
        - **extend** (*boolean**,* *(**optional**)*) – Extend, Extend the existing selection

    File:
    :   [startup/bl_operators/object.py:172](https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/object.py#L172)

bpy.ops.object.select_less()
:   Deselect objects at the boundaries of parent/child relationships

bpy.ops.object.select_linked(*\**, *extend=False*, *type='OBDATA'*)
:   Select all visible objects that are linked

    Parameters:
    :   - **extend** (*boolean**,* *(**optional**)*) – Extend, Extend selection instead of deselecting everything first
        - **type** (enum in [`'OBDATA'`, `'MATERIAL'`, `'DUPGROUP'`, `'PARTICLE'`, `'LIBRARY'`, `'LIBRARY_OBDATA'`], (optional)) – Type

bpy.ops.object.select_mirror(*\**, *extend=False*)
:   Select the mirror objects of the selected object e.g. “L.sword” and “R.sword”

    Parameters:
    :   **extend** (*boolean**,* *(**optional**)*) – Extend, Extend selection instead of deselecting everything first

bpy.ops.object.select_more()
:   Select connected parent/child objects

bpy.ops.object.select_pattern(*\**, *pattern='\*'*, *case_sensitive=False*, *extend=True*)
:   Select objects matching a naming pattern

    Parameters:
    :   - **pattern** (*string**,* *(**optional**,* *never None**)*) – Pattern, Name filter using ‘\*’, ‘?’ and ‘[abc]’ unix style wildcards
        - **case_sensitive** (*boolean**,* *(**optional**)*) – Case Sensitive, Do a case sensitive compare
        - **extend** (*boolean**,* *(**optional**)*) – Extend, Extend the existing selection

    File:
    :   [startup/bl_operators/object.py:45](https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/object.py#L45)

bpy.ops.object.select_random(*\**, *ratio=0.5*, *seed=0*, *action='SELECT'*)
:   Select or deselect random visible objects

    Parameters:
    :   - **ratio** (*float in* *[**0**,* *1**]**,* *(**optional**)*) – Ratio, Portion of items to select randomly
        - **seed** (*int in* *[**0**,* *inf**]**,* *(**optional**)*) – Random Seed, Seed for the random number generator
        - **action** (enum in [`'SELECT'`, `'DESELECT'`], (optional)) –

          Action, Selection action to execute

          - `SELECT`
            Select – Select all elements.
          - `DESELECT`
            Deselect – Deselect all elements.

bpy.ops.object.select_same_collection(*\**, *collection=''*)
:   Select object in the same collection

    Parameters:
    :   **collection** (*string**,* *(**optional**,* *never None**)*) – Collection, Name of the collection to select

bpy.ops.object.shade_auto_smooth(*\**, *use_auto_smooth=True*, *angle=0.523599*)
:   Add modifier to automatically set the sharpness of mesh edges based on the angle between the neighboring faces

    Parameters:
    :   - **use_auto_smooth** (*boolean**,* *(**optional**)*) – Auto Smooth, Add modifier to set edge sharpness automatically
        - **angle** (*float in* *[**0**,* *3.14159**]**,* *(**optional**)*) – Angle, Maximum angle between face normals that will be considered as smooth

bpy.ops.object.shade_flat(*\**, *keep_sharp_edges=True*)
:   Render and display faces uniform, using face normals

    Parameters:
    :   **keep_sharp_edges** (*boolean**,* *(**optional**)*) – Keep Sharp Edges, Don’t remove sharp edges, which are redundant with faces shaded smooth

bpy.ops.object.shade_smooth(*\**, *keep_sharp_edges=True*)
:   Render and display faces smooth, using interpolated vertex normals

    Parameters:
    :   **keep_sharp_edges** (*boolean**,* *(**optional**)*) – Keep Sharp Edges, Don’t remove sharp edges. Tagged edges will remain sharp

bpy.ops.object.shade_smooth_by_angle(*\**, *angle=0.523599*, *keep_sharp_edges=True*)
:   Set the sharpness of mesh edges based on the angle between the neighboring faces

    Parameters:
    :   - **angle** (*float in* *[**0**,* *3.14159**]**,* *(**optional**)*) – Angle, Maximum angle between face normals that will be considered as smooth
        - **keep_sharp_edges** (*boolean**,* *(**optional**)*) – Keep Sharp Edges, Only add sharp edges instead of clearing existing tags first

bpy.ops.object.shaderfx_add(*\**, *type='FX_BLUR'*)
:   Add a visual effect to the active object

    Parameters:
    :   **type** (enum in [Object Shaderfx Type Items](bpy_types_enum_items/object_shaderfx_type_items.html#rna-enum-object-shaderfx-type-items), (optional)) – Type

bpy.ops.object.shaderfx_copy(*\**, *shaderfx=''*)
:   Duplicate effect at the same position in the stack

    Parameters:
    :   **shaderfx** (*string**,* *(**optional**,* *never None**)*) – Shader, Name of the shaderfx to edit

bpy.ops.object.shaderfx_move_down(*\**, *shaderfx=''*)
:   Move effect down in the stack

    Parameters:
    :   **shaderfx** (*string**,* *(**optional**,* *never None**)*) – Shader, Name of the shaderfx to edit

bpy.ops.object.shaderfx_move_to_index(*\**, *shaderfx=''*, *index=0*)
:   Change the effect’s position in the list so it evaluates after the set number of others

    Parameters:
    :   - **shaderfx** (*string**,* *(**optional**,* *never None**)*) – Shader, Name of the shaderfx to edit
        - **index** (*int in* *[**0**,* *inf**]**,* *(**optional**)*) – Index, The index to move the effect to

bpy.ops.object.shaderfx_move_up(*\**, *shaderfx=''*)
:   Move effect up in the stack

    Parameters:
    :   **shaderfx** (*string**,* *(**optional**,* *never None**)*) – Shader, Name of the shaderfx to edit

bpy.ops.object.shaderfx_remove(*\**, *shaderfx=''*, *report=False*)
:   Remove a effect from the active Grease Pencil object

    Parameters:
    :   - **shaderfx** (*string**,* *(**optional**,* *never None**)*) – Shader, Name of the shaderfx to edit
        - **report** (*boolean**,* *(**optional**)*) – Report, Create a notification after the operation

bpy.ops.object.shape_key_add(*\**, *from_mix=True*)
:   Add shape key to the object

    Parameters:
    :   **from_mix** (*boolean**,* *(**optional**)*) – From Mix, Create the new shape key from the existing mix of keys

bpy.ops.object.shape_key_clear()
:   Reset the weights of all shape keys to 0 or to the closest value respecting the limits

bpy.ops.object.shape_key_copy()
:   Duplicate the active shape key

bpy.ops.object.shape_key_lock(*\**, *action='LOCK'*)
:   Change the lock state of all shape keys of active object

    Parameters:
    :   **action** (enum in [`'LOCK'`, `'UNLOCK'`], (optional)) –

        Action, Lock action to execute on vertex groups

        - `LOCK`
          Lock – Lock all shape keys.
        - `UNLOCK`
          Unlock – Unlock a