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

assistant: _collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`ShaderFx`](bpy.types.ShaderFx.html#bpy.types.ShaderFx "bpy.types.ShaderFx"), (readonly)

    shadow_terminator_geometry_offset
    :   Offset rays from the surface to reduce shadow terminator artifact on low poly geometry. Only affects triangles at grazing angles to light

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

    shadow_terminator_normal_offset
    :   Offset rays from the surface to reduce shadow terminator artifact on low poly geometry. Only affect triangles that are affected by the geometry offset

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

    shadow_terminator_shading_offset
    :   Push the shadow terminator towards the light to hide artifacts on low poly geometry

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

    show_all_edges
    :   Display all edges for mesh objects

        Type:
        :   boolean, default False

    show_axis
    :   Display the object’s origin and axes

        Type:
        :   boolean, default False

    show_bounds
    :   Display the object’s bounds

        Type:
        :   boolean, default False

    show_empty_image_only_axis_aligned
    :   Only display the image when it is aligned with the view axis

        Type:
        :   boolean, default False

    show_empty_image_orthographic
    :   Display image in orthographic mode

        Type:
        :   boolean, default True

    show_empty_image_perspective
    :   Display image in perspective mode

        Type:
        :   boolean, default True

    show_in_front
    :   Make the object display in front of others

        Type:
        :   boolean, default False

    show_instancer_for_render
    :   Make instancer visible when rendering

        Type:
        :   boolean, default True

    show_instancer_for_viewport
    :   Make instancer visible in the viewport

        Type:
        :   boolean, default True

    show_name
    :   Display the object’s name

        Type:
        :   boolean, default False

    show_only_shape_key
    :   Only show the active shape key at full value

        Type:
        :   boolean, default False

    show_texture_space
    :   Display the object’s texture space

        Type:
        :   boolean, default False

    show_transparent
    :   Display material transparency in the object

        Type:
        :   boolean, default False

    show_wire
    :   Display the object’s wireframe over solid shading

        Type:
        :   boolean, default False

    soft_body
    :   Settings for soft body simulation

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

    track_axis
    :   Axis that points in the ‘forward’ direction (applies to Instance Vertices when Align to Vertex Normal is enabled)

        Type:
        :   enum in [Object Axis Items](bpy_types_enum_items/object_axis_items.html#rna-enum-object-axis-items), default `'POS_X'`

    type
    :   Type of object

        Type:
        :   enum in [Object Type Items](bpy_types_enum_items/object_type_items.html#rna-enum-object-type-items), default `'EMPTY'`, (readonly)

    up_axis
    :   Axis that points in the upward direction (applies to Instance Vertices when Align to Vertex Normal is enabled)

        Type:
        :   enum in [`'X'`, `'Y'`, `'Z'`], default `'X'`

    use_camera_lock_parent
    :   View Lock 3D viewport camera transformation affects the object’s parent instead

        Type:
        :   boolean, default False

    use_dynamic_topology_sculpting
    :   Type:
        :   boolean, default False, (readonly)

    use_empty_image_alpha
    :   Use alpha blending instead of alpha test (can produce sorting artifacts)

        Type:
        :   boolean, default False

    use_grease_pencil_lights
    :   Lights affect Grease Pencil object

        Type:
        :   boolean, default True

    use_instance_faces_scale
    :   Scale instance based on face size

        Type:
        :   boolean, default False

    use_instance_vertices_rotation
    :   Rotate instance according to vertex normal

        Type:
        :   boolean, default False

    use_mesh_mirror_x
    :   Enable mesh symmetry in the X axis

        Type:
        :   boolean, default False

    use_mesh_mirror_y
    :   Enable mesh symmetry in the Y axis

        Type:
        :   boolean, default False

    use_mesh_mirror_z
    :   Enable mesh symmetry in the Z axis

        Type:
        :   boolean, default False

    use_parent_final_indices
    :   Use the final evaluated indices rather than the original mesh indices

        Type:
        :   boolean, default False

    use_shape_key_edit_mode
    :   Display shape keys in edit mode (for meshes only)

        Type:
        :   boolean, default False

    use_simulation_cache
    :   Cache frames during simulation nodes playback

        Type:
        :   boolean, default True

    vertex_groups
    :   Vertex groups of the object

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

    visible_camera
    :   Object visibility to camera rays

        Type:
        :   boolean, default True

    visible_diffuse
    :   Object visibility to diffuse rays

        Type:
        :   boolean, default True

    visible_glossy
    :   Object visibility to glossy rays

        Type:
        :   boolean, default True

    visible_shadow
    :   Object visibility to shadow rays

        Type:
        :   boolean, default True

    visible_transmission
    :   Object visibility to transmission rays

        Type:
        :   boolean, default True

    visible_volume_scatter
    :   Object visibility to volume scattering rays

        Type:
        :   boolean, default True

    children
    :   All the children of this object.

        Type:
        :   tuple of [`Object`](#bpy.types.Object "bpy.types.Object")

        (readonly)

    children_recursive
    :   A list of all children from this object.

        Type:
        :   list of [`Object`](#bpy.types.Object "bpy.types.Object")

        (readonly)

    users_collection
    :   The collections this object is in.

        Type:
        :   tuple of [`Collection`](bpy.types.Collection.html#bpy.types.Collection "bpy.types.Collection")

        (readonly)

    users_scene
    :   The scenes this object is in.

        Type:
        :   tuple of [`Scene`](bpy.types.Scene.html#bpy.types.Scene "bpy.types.Scene")

        (readonly)

    select_get(*\**, *view_layer=None*)
    :   Test if the object is selected. The selection state is per view layer.

        Parameters:
        :   **view_layer** ([`ViewLayer`](bpy.types.ViewLayer.html#bpy.types.ViewLayer "bpy.types.ViewLayer"), (optional)) – Use this instead of the active view layer

        Returns:
        :   Object selected

        Return type:
        :   boolean

    select_set(*state*, *\**, *view_layer=None*)
    :   Select or deselect the object. The selection state is per view layer.

        Parameters:
        :   - **state** (*boolean*) – Selection state to define
            - **view_layer** ([`ViewLayer`](bpy.types.ViewLayer.html#bpy.types.ViewLayer "bpy.types.ViewLayer"), (optional)) – Use this instead of the active view layer

    hide_get(*\**, *view_layer=None*)
    :   Test if the object is hidden for viewport editing. This hiding state is per view layer.

        Parameters:
        :   **view_layer** ([`ViewLayer`](bpy.types.ViewLayer.html#bpy.types.ViewLayer "bpy.types.ViewLayer"), (optional)) – Use this instead of the active view layer

        Returns:
        :   Object hidden

        Return type:
        :   boolean

    hide_set(*state*, *\**, *view_layer=None*)
    :   Hide the object for viewport editing. This hiding state is per view layer.

        Parameters:
        :   - **state** (*boolean*) – Hide state to define
            - **view_layer** ([`ViewLayer`](bpy.types.ViewLayer.html#bpy.types.ViewLayer "bpy.types.ViewLayer"), (optional)) – Use this instead of the active view layer

    visible_get(*\**, *view_layer=None*, *viewport=None*)
    :   Test if the object is visible in the 3D viewport, taking into account all visibility settings

        Parameters:
        :   - **view_layer** ([`ViewLayer`](bpy.types.ViewLayer.html#bpy.types.ViewLayer "bpy.types.ViewLayer"), (optional)) – Use this instead of the active view layer
            - **viewport** ([`SpaceView3D`](bpy.types.SpaceView3D.html#bpy.types.SpaceView3D "bpy.types.SpaceView3D"), (optional)) – Use this instead of the active 3D viewport

        Returns:
        :   Object visible

        Return type:
        :   boolean

    holdout_get(*\**, *view_layer=None*)
    :   Test if object is masked in the view layer

        Parameters:
        :   **view_layer** ([`ViewLayer`](bpy.types.ViewLayer.html#bpy.types.ViewLayer "bpy.types.ViewLayer"), (optional)) – Use this instead of the active view layer

        Returns:
        :   Object holdout

        Return type:
        :   boolean

    indirect_only_get(*\**, *view_layer=None*)
    :   Test if object is set to contribute only indirectly (through shadows and reflections) in the view layer

        Parameters:
        :   **view_layer** ([`ViewLayer`](bpy.types.ViewLayer.html#bpy.types.ViewLayer "bpy.types.ViewLayer"), (optional)) – Use this instead of the active view layer

        Returns:
        :   Object indirect only

        Return type:
        :   boolean

    local_view_get(*viewport*)
    :   Get the local view state for this object

        Parameters:
        :   **viewport** ([`SpaceView3D`](bpy.types.SpaceView3D.html#bpy.types.SpaceView3D "bpy.types.SpaceView3D"), (never None)) – Viewport in local view

        Returns:
        :   Object local view state

        Return type:
        :   boolean

    local_view_set(*viewport*, *state*)
    :   Set the local view state for this object

        Parameters:
        :   - **viewport** ([`SpaceView3D`](bpy.types.SpaceView3D.html#bpy.types.SpaceView3D "bpy.types.SpaceView3D"), (never None)) – Viewport in local view
            - **state** (*boolean*) – Local view state to define

    visible_in_viewport_get(*viewport*)
    :   Check for local view and local collections for this viewport and object

        Parameters:
        :   **viewport** ([`SpaceView3D`](bpy.types.SpaceView3D.html#bpy.types.SpaceView3D "bpy.types.SpaceView3D"), (never None)) – Viewport in local collections

        Returns:
        :   Object viewport visibility

        Return type:
        :   boolean

    convert_space(*\**, *pose_bone=None*, *matrix=((0.0, 0.0, 0.0, 0.0), (0.0, 0.0, 0.0, 0.0), (0.0, 0.0, 0.0, 0.0), (0.0, 0.0, 0.0, 0.0))*, *from_space='WORLD'*, *to_space='WORLD'*)
    :   Convert (transform) the given matrix from one space to another

        Parameters:
        :   - **pose_bone** ([`PoseBone`](bpy.types.PoseBone.html#bpy.types.PoseBone "bpy.types.PoseBone"), (optional)) – Bone to use to define spaces (may be None, in which case only the two ‘WORLD’ and ‘LOCAL’ spaces are usable)
            - **matrix** ([`mathutils.Matrix`](mathutils.html#mathutils.Matrix "mathutils.Matrix") of 4 \* 4 items in [-inf, inf], (optional)) – The matrix to transform
            - **from_space** (enum in [`'WORLD'`, `'POSE'`, `'LOCAL_WITH_PARENT'`, `'LOCAL'`], (optional)) –

              The space in which ‘matrix’ is currently

              - `WORLD`
                World Space – The most global space in Blender.
              - `POSE`
                Pose Space – The pose space of a bone (its armature’s object space).
              - `LOCAL_WITH_PARENT`
                Local With Parent – The rest pose local space of a bone (this matrix includes parent transforms).
              - `LOCAL`
                Local Space – The local space of an object/bone.
            - **to_space** (enum in [`'WORLD'`, `'POSE'`, `'LOCAL_WITH_PARENT'`, `'LOCAL'`], (optional)) –

              The space to which you want to transform ‘matrix’

              - `WORLD`
                World Space – The most global space in Blender.
              - `POSE`
                Pose Space – The pose space of a bone (its armature’s object space).
              - `LOCAL_WITH_PARENT`
                Local With Parent – The rest pose local space of a bone (this matrix includes parent transforms).
              - `LOCAL`
                Local Space – The local space of an object/bone.

        Returns:
        :   The transformed matrix

        Return type:
        :   [`mathutils.Matrix`](mathutils.html#mathutils.Matrix "mathutils.Matrix") of 4 \* 4 items in [-inf, inf]

    calc_matrix_camera(*depsgraph*, *\**, *x=1*, *y=1*, *scale_x=1.0*, *scale_y=1.0*)
    :   Generate the camera projection matrix of this object (mostly useful for Camera and Light types)

        Parameters:
        :   - **depsgraph** ([`Depsgraph`](bpy.types.Depsgraph.html#bpy.types.Depsgraph "bpy.types.Depsgraph")) – Depsgraph to get evaluated data from
            - **x** (*int in* *[**0**,* *inf**]**,* *(**optional**)*) – Width of the render area
            - **y** (*int in* *[**0**,* *inf**]**,* *(**optional**)*) – Height of the render area
            - **scale_x** (*float in* *[**1e-06**,* *inf**]**,* *(**optional**)*) – Width scaling factor
            - **scale_y** (*float in* *[**1e-06**,* *inf**]**,* *(**optional**)*) – Height scaling factor

        Returns:
        :   The camera projection matrix

        Return type:
        :   [`mathutils.Matrix`](mathutils.html#mathutils.Matrix "mathutils.Matrix") of 4 \* 4 items in [-inf, inf]

    camera_fit_coords(*depsgraph*, *coordinates*)
    :   Compute the coordinate (and scale for ortho cameras) given object should be to ‘see’ all given coordinates

        Parameters:
        :   - **depsgraph** ([`Depsgraph`](bpy.types.Depsgraph.html#bpy.types.Depsgraph "bpy.types.Depsgraph")) – Depsgraph to get evaluated data from
            - **coordinates** (*float array* *of* *1 items in* *[**-inf**,* *inf**]**,* *(**never None**)*) – Coordinates to fit in

        Returns:
        :   `co_return`, The location to aim to be able to see all given points, [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf]

            `scale_return`, The ortho scale to aim to be able to see all given points (if relevant), float in [-inf, inf]

        Return type:
        :   ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], float in [-inf, inf])

    crazyspace_eval(*depsgraph*, *scene*)
    :   Compute orientation mapping between vertices of an original object and object with shape keys and deforming modifiers applied.The evaluation is to be freed with the crazyspace_eval_free function

        Parameters:
        :   - **depsgraph** ([`Depsgraph`](bpy.types.Depsgraph.html#bpy.types.Depsgraph "bpy.types.Depsgraph")) – Dependency Graph, Evaluated dependency graph
            - **scene** ([`Scene`](bpy.types.Scene.html#bpy.types.Scene "bpy.types.Scene")) – Scene, Scene of the object

    crazyspace_displacement_to_deformed(*\**, *vertex_index=0*, *displacement=(0.0, 0.0, 0.0)*)
    :   Convert displacement vector from non-deformed object space to deformed object space

        Parameters:
        :   - **vertex_index** (*int in* *[**-inf**,* *inf**]**,* *(**optional**)*) – vertex_index
            - **displacement** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – displacement

        Returns:
        :   displacement_deformed

        Return type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf]

    crazyspace_displacement_to_original(*\**, *vertex_index=0*, *displacement=(0.0, 0.0, 0.0)*)
    :   Free evaluated state of crazyspace

        Parameters:
        :   - **vertex_index** (*int in* *[**-inf**,* *inf**]**,* *(**optional**)*) – vertex_index
            - **displacement** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], (optional)) – displacement

        Returns:
        :   displacement_original

        Return type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf]

    crazyspace_eval_clear()
    :   crazyspace_eval_clear

    to_mesh(*\**, *preserve_all_data_layers=False*, *depsgraph=None*)
    :   Create a Mesh data-block from the current state of the object. The object owns the data-block. To force free it use to_mesh_clear(). The result is temporary and cannot be used by objects from the main database.

        Parameters:
        :   - **preserve_all_data_layers** (*boolean**,* *(**optional**)*) – Preserve all data layers in the mesh, like UV maps and vertex groups. By default Blender only computes the subset of data layers needed for viewport display and rendering, for better performance.
            - **depsgraph** ([`Depsgraph`](bpy.types.Depsgraph.html#bpy.types.Depsgraph "bpy.types.Depsgraph"), (optional)) – Dependency Graph, Evaluated dependency graph which is required when preserve_all_data_layers is true

        Returns:
        :   Mesh created from object

        Return type:
        :   [`Mesh`](bpy.types.Mesh.html#bpy.types.Mesh "bpy.types.Mesh")

    to_mesh_clear()
    :   Clears mesh data-block created by to_mesh()

    to_curve(*depsgraph*, *\**, *apply_modifiers=False*)
    :   Create a Curve data-block from the current state of the object. This only works for curve and text objects. The object owns the