user: Give a detailed overview of Object Operators: syntax, arguments, return values, common patterns.

assistant: ts instead of replacing them
        - **merge_customdata** (*boolean**,* *(**optional**)*) – Merge UVs, Merge UV coordinates that share a vertex to account for imprecision in some modifiers
        - **thickness** (*int in* *[**1**,* *100**]**,* *(**optional**)*) – Thickness
        - **faces** (*boolean**,* *(**optional**)*) – Export Faces, Export faces as filled strokes
        - **offset** (*float in* *[**0**,* *inf**]**,* *(**optional**)*) – Stroke Offset, Offset strokes from fill

bpy.ops.object.copy_global_transform()
:   Copies the matrix of the currently active object or pose bone to the clipboard. Uses world-space matrices

    File:
    :   [startup/bl_operators/copy_global_transform.py:150](https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/copy_global_transform.py#L150)

bpy.ops.object.copy_relative_transform()
:   Copies the matrix of the currently active object or pose bone to the clipboard. Uses matrices relative to a specific object or the active scene camera

    File:
    :   [startup/bl_operators/copy_global_transform.py:180](https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/copy_global_transform.py#L180)

bpy.ops.object.correctivesmooth_bind(*\**, *modifier=''*)
:   Bind base pose in Corrective Smooth modifier

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

bpy.ops.object.curves_empty_hair_add(*\**, *align='WORLD'*, *location=(0.0, 0.0, 0.0)*, *rotation=(0.0, 0.0, 0.0)*, *scale=(0.0, 0.0, 0.0)*)
:   Add an empty curve object to the scene with the selected mesh as surface

    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.curves_random_add(*\**, *align='WORLD'*, *location=(0.0, 0.0, 0.0)*, *rotation=(0.0, 0.0, 0.0)*, *scale=(0.0, 0.0, 0.0)*)
:   Add a curves object with random curves 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.data_instance_add(*\**, *name=''*, *session_uid=0*, *type='ACTION'*, *align='WORLD'*, *location=(0.0, 0.0, 0.0)*, *rotation=(0.0, 0.0, 0.0)*, *scale=(0.0, 0.0, 0.0)*, *drop_x=0*, *drop_y=0*)
:   Add an object data instance

    Parameters:
    :   - **name** (*string**,* *(**optional**,* *never None**)*) – Name, Name of the data-block to use by the operator
        - **session_uid** (*int in* *[**-inf**,* *inf**]**,* *(**optional**)*) – Session UID, Session UID of the data-block to use by the operator
        - **type** (enum in [Id Type Items](bpy_types_enum_items/id_type_items.html#rna-enum-id-type-items), (optional)) – Type
        - **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
        - **drop_x** (*int in* *[**-inf**,* *inf**]**,* *(**optional**)*) – Drop X, X-coordinate (screen space) to place the new object under
        - **drop_y** (*int in* *[**-inf**,* *inf**]**,* *(**optional**)*) – Drop Y, Y-coordinate (screen space) to place the new object under

bpy.ops.object.data_transfer(*\**, *use_reverse_transfer=False*, *use_freeze=False*, *data_type=''*, *use_create=True*, *vert_mapping='NEAREST'*, *edge_mapping='NEAREST'*, *loop_mapping='NEAREST_POLYNOR'*, *poly_mapping='NEAREST'*, *use_auto_transform=False*, *use_object_transform=True*, *use_max_distance=False*, *max_distance=1.0*, *ray_radius=0.0*, *islands_precision=0.1*, *layers_select_src='ACTIVE'*, *layers_select_dst='ACTIVE'*, *mix_mode='REPLACE'*, *mix_factor=1.0*)
:   Transfer data layer(s) (weights, edge sharp, etc.) from active to selected meshes

    Parameters:
    :   - **use_reverse_transfer** (*boolean**,* *(**optional**)*) – Reverse Transfer, Transfer from selected objects to active one
        - **use_freeze** (*boolean**,* *(**optional**)*) – Freeze Operator, Prevent changes to settings to re-run the operator, handy to change several things at once with heavy geometry
        - **data_type** (enum in [`'VGROUP_WEIGHTS'`, `'BEVEL_WEIGHT_VERT'`, `'COLOR_VERTEX'`, `'SHARP_EDGE'`, `'SEAM'`, `'CREASE'`, `'BEVEL_WEIGHT_EDGE'`, `'FREESTYLE_EDGE'`, `'CUSTOM_NORMAL'`, `'COLOR_CORNER'`, `'UV'`, `'SMOOTH'`, `'FREESTYLE_FACE'`], (optional)) –

          Data Type, Which data to transfer

          - `VGROUP_WEIGHTS`
            Vertex Group(s) – Transfer active or all vertex groups.
          - `BEVEL_WEIGHT_VERT`
            Bevel Weight – Transfer bevel weights.
          - `COLOR_VERTEX`
            Colors – Color Attributes.
          - `SHARP_EDGE`
            Sharp – Transfer sharp mark.
          - `SEAM`
            UV Seam – Transfer UV seam mark.
          - `CREASE`
            Subdivision Crease – Transfer crease values.
          - `BEVEL_WEIGHT_EDGE`
            Bevel Weight – Transfer bevel weights.
          - `FREESTYLE_EDGE`
            Freestyle Mark – Transfer Freestyle edge mark.
          - `CUSTOM_NORMAL`
            Custom Normals – Transfer custom normals.
          - `COLOR_CORNER`
            Colors – Color Attributes.
          - `UV`
            UVs – Transfer UV layers.
          - `SMOOTH`
            Smooth – Transfer flat/smooth mark.
          - `FREESTYLE_FACE`
            Freestyle Mark – Transfer Freestyle face mark.
        - **use_create** (*boolean**,* *(**optional**)*) – Create Data, Add data layers on destination meshes if needed
        - **vert_mapping** (enum in [Dt Method Vertex Items](bpy_types_enum_items/dt_method_vertex_items.html#rna-enum-dt-method-vertex-items), (optional)) – Vertex Mapping, Method used to map source vertices to destination ones
        - **edge_mapping** (enum in [Dt Method Edge Items](bpy_types_enum_items/dt_method_edge_items.html#rna-enum-dt-method-edge-items), (optional)) – Edge Mapping, Method used to map source edges to destination ones
        - **loop_mapping** (enum in [Dt Method Loop Items](bpy_types_enum_items/dt_method_loop_items.html#rna-enum-dt-method-loop-items), (optional)) – Face Corner Mapping, Method used to map source faces’ corners to destination ones
        - **poly_mapping** (enum in [Dt Method Poly Items](bpy_types_enum_items/dt_method_poly_items.html#rna-enum-dt-method-poly-items), (optional)) – Face Mapping, Method used to map source faces to destination ones
        - **use_auto_transform** (*boolean**,* *(**optional**)*) – Auto Transform, Automatically compute transformation to get the best possible match between source and destination meshes.Warning: Results will never be as good as manual matching of objects
        - **use_object_transform** (*boolean**,* *(**optional**)*) – Object Transform, Evaluate source and destination meshes in global space
        - **use_max_distance** (*boolean**,* *(**optional**)*) – Only Neighbor Geometry, Source elements must be closer than given distance from destination one
        - **max_distance** (*float in* *[**0**,* *inf**]**,* *(**optional**)*) – Max Distance, Maximum allowed distance between source and destination element, for non-topology mappings
        - **ray_radius** (*float in* *[**0**,* *inf**]**,* *(**optional**)*) – Ray Radius, ‘Width’ of rays (especially useful when raycasting against vertices or edges)
        - **islands_precision** (*float in* *[**0**,* *10**]**,* *(**optional**)*) – Islands Precision, Factor controlling precision of islands handling (the higher, the better the results)
        - **layers_select_src** (enum in [Dt Layers Select Src Items](bpy_types_enum_items/dt_layers_select_src_items.html#rna-enum-dt-layers-select-src-items), (optional)) – Source Layers Selection, Which layers to transfer, in case of multi-layers types
        - **layers_select_dst** (enum in [Dt Layers Select Dst Items](bpy_types_enum_items/dt_layers_select_dst_items.html#rna-enum-dt-layers-select-dst-items), (optional)) – Destination Layers Matching, How to match source and destination layers
        - **mix_mode** (enum in [Dt Mix Mode Items](bpy_types_enum_items/dt_mix_mode_items.html#rna-enum-dt-mix-mode-items), (optional)) – Mix Mode, How to affect destination elements with source values
        - **mix_factor** (*float in* *[**0**,* *1**]**,* *(**optional**)*) – Mix Factor, Factor to use when applying data to destination (exact behavior depends on mix mode)

bpy.ops.object.datalayout_transfer(*\**, *modifier=''*, *data_type=''*, *use_delete=False*, *layers_select_src='ACTIVE'*, *layers_select_dst='ACTIVE'*)
:   Transfer layout of data layer(s) from active to selected meshes

    Parameters:
    :   - **modifier** (*string**,* *(**optional**,* *never None**)*) – Modifier, Name of the modifier to edit
        - **data_type** (enum in [`'VGROUP_WEIGHTS'`, `'BEVEL_WEIGHT_VERT'`, `'COLOR_VERTEX'`, `'SHARP_EDGE'`, `'SEAM'`, `'CREASE'`, `'BEVEL_WEIGHT_EDGE'`, `'FREESTYLE_EDGE'`, `'CUSTOM_NORMAL'`, `'COLOR_CORNER'`, `'UV'`, `'SMOOTH'`, `'FREESTYLE_FACE'`], (optional)) –

          Data Type, Which data to transfer

          - `VGROUP_WEIGHTS`
            Vertex Group(s) – Transfer active or all vertex groups.
          - `BEVEL_WEIGHT_VERT`
            Bevel Weight – Transfer bevel weights.
          - `COLOR_VERTEX`
            Colors – Color Attributes.
          - `SHARP_EDGE`
            Sharp – Transfer sharp mark.
          - `SEAM`
            UV Seam – Transfer UV seam mark.
          - `CREASE`
            Subdivision Crease – Transfer crease values.
          - `BEVEL_WEIGHT_EDGE`
            Bevel Weight – Transfer bevel weights.
          - `FREESTYLE_EDGE`
            Freestyle Mark – Transfer Freestyle edge mark.
          - `CUSTOM_NORMAL`
            Custom Normals – Transfer custom normals.
          - `COLOR_CORNER`
            Colors – Color Attributes.
          - `UV`
            UVs – Transfer UV layers.
          - `SMOOTH`
            Smooth – Transfer flat/smooth mark.
          - `FREESTYLE_FACE`
            Freestyle Mark – Transfer Freestyle face mark.
        - **use_delete** (*boolean**,* *(**optional**)*) – Exact Match, Also delete some data layers from destination if necessary, so that it matches exactly source
        - **layers_select_src** (enum in [Dt Layers Select Src Items](bpy_types_enum_items/dt_layers_select_src_items.html#rna-enum-dt-layers-select-src-items), (optional)) – Source Layers Selection, Which layers to transfer, in case of multi-layers types
        - **layers_select_dst** (enum in [Dt Layers Select Dst Items](bpy_types_enum_items/dt_layers_select_dst_items.html#rna-enum-dt-layers-select-dst-items), (optional)) – Destination Layers Matching, How to match source and destination layers

bpy.ops.object.delete(*\**, *use_global=False*, *confirm=True*)
:   Delete selected objects

    Parameters:
    :   - **use_global** (*boolean**,* *(**optional**)*) – Delete Globally, Remove object from all scenes
        - **confirm** (*boolean**,* *(**optional**)*) – Confirm, Prompt for confirmation

bpy.ops.object.delete_fix_to_camera_keys()
:   Delete all keys that were generated by the ‘Fix to Scene Camera’ operator

    File:
    :   [startup/bl_operators/copy_global_transform.py:639](https://projects.blender.org/blender/blender/src/branch/main/scripts/startup/bl_operators/copy_global_transform.py#L639)

bpy.ops.object.drop_geometry_nodes(*\**, *session_uid=0*, *show_datablock_in_modifier=True*)
:   Undocumented, consider [contributing](https://developer.blender.org/).

    Parameters:
    :   - **session_uid** (*int in* *[**-inf**,* *inf**]**,* *(**optional**)*) – Session UID, Session UID of the geometry node group being dropped
        - **show_datablock_in_modifier** (*boolean**,* *(**optional**)*) – Show the data-block selector in the modifier

bpy.ops.object.drop_named_material(*\**, *name=''*, *session_uid=0*)
:   Undocumented, consider [contributing](https://developer.blender.org/).

    Parameters:
    :   - **name** (*string**,* *(**optional**,* *never None**)*) – Name, Name of the data-block to use by the operator
        - **session_uid** (*int in* *[**-inf**,* *inf**]**,* *(**optional**)*) – Session UID, Session UID of the data-block to use by the operator

bpy.ops.object.duplicate(*\**, *linked=False*, *mode='TRANSLATION'*)
:   Duplicate selected objects

    Parameters:
    :   - **linked** (*boolean**,* *(**optional**)*) – Linked, Duplicate object but not object data, linking to the original data
        - **mode** (enum in [Transform Mode Type Items](bpy_types_enum_items/transform_mode_type_items.html#rna-enum-transform-mode-type-items), (optional)) – Mode

bpy.ops.object.duplicate_move(*\**, *OBJECT_OT_duplicate=None*, *TRANSFORM_OT_translate=None*)
:   Duplicate the selected objects and move them

    Parameters:
    :   - **OBJECT_OT_duplicate** (`OBJECT_OT_duplicate`, (optional)) – Duplicate Objects, Duplicate selected objects
        - **TRANSFORM_OT_translate** (`TRANSFORM_OT_translate`, (optional)) – Move, Move selected items

bpy.ops.object.duplicate_move_linked(*\**, *OBJECT_OT_duplicate=None*, *TRANSFORM_OT_translate=None*)
:   Duplicate the selected objects, but not their object data, and move them

    Parameters:
    :   - **OBJECT_OT_duplicate** (`OBJECT_OT_duplicate`, (optional)) – Duplicate Objects, Duplicate selected objects
        - **TRANSFORM_OT_translate** (`TRANSFORM_OT_translate`, (optional)) – Move, Move selected items

bpy.ops.object.duplicates_make_real(*\**, *use_base_parent=False*, *use_hierarchy=False*)
:   Make instanced objects attached to this object real

    Parameters:
    :   - **use_base_parent** (*boolean**,* *(**optional**)*) – Parent, Parent newly created objects to the original instancer
        - **use_hierarchy** (*boolean**,* *(**optional**)*) – Keep Hierarchy, Maintain parent child relationships

bpy.ops.object.editmode_toggle()
:   Toggle object’s edit mode

bpy.ops.object.effector_add(*\**, *type='FORCE'*, *radius=1.0*, *enter_editmode=False*, *align='WORLD'*, *location=(0.0, 0.0, 0.0)*, *rotation=(0.0, 0.0, 0.0)*, *scale=(0.0, 0.0, 0.0)*)
:   Add an empty object with a physics effector to the scene

    Parameters:
    :   - **type** (enum in [`'FORCE'`, `'WIND'`, `'VORTEX'`, `'MAGNET'`, `'HARMONIC'`, `'CHARGE'`, `'LENNARDJ'`, `'TEXTURE'`, `'GUIDE'`, `'BOID'`, `'TURBULENCE'`, `'DRAG'`, `'FLUID'`], (optional)) – Type
        - **radius** (*float in* *[**0**,* *inf**]**,* *(**optional**)*) – Radius
        - **enter_editmode** (*boolean**,* *(**optional**)*) – Enter Edit Mode, Enter edit mode when adding this object
        - **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.empty_add(*\**, *type='PLAIN_AXES'*, *radius=1.0*, *align='WORLD'*, *location=(0.0, 0.0