user: Explain TransformConstraint(Constraint) in complete detail according to the official Blender documentation.

assistant: # TransformConstraint(Constraint)

base classes — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`Constraint`](bpy.types.Constraint.html#bpy.types.Constraint "bpy.types.Constraint")

*class* bpy.types.TransformConstraint(*Constraint*)
:   Map transformations of the target to the object

    from_max_x
    :   Top range of X axis source motion

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

    from_max_x_rot
    :   Top range of X axis source motion

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

    from_max_x_scale
    :   Top range of X axis source motion

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

    from_max_y
    :   Top range of Y axis source motion

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

    from_max_y_rot
    :   Top range of Y axis source motion

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

    from_max_y_scale
    :   Top range of Y axis source motion

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

    from_max_z
    :   Top range of Z axis source motion

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

    from_max_z_rot
    :   Top range of Z axis source motion

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

    from_max_z_scale
    :   Top range of Z axis source motion

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

    from_min_x
    :   Bottom range of X axis source motion

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

    from_min_x_rot
    :   Bottom range of X axis source motion

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

    from_min_x_scale
    :   Bottom range of X axis source motion

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

    from_min_y
    :   Bottom range of Y axis source motion

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

    from_min_y_rot
    :   Bottom range of Y axis source motion

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

    from_min_y_scale
    :   Bottom range of Y axis source motion

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

    from_min_z
    :   Bottom range of Z axis source motion

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

    from_min_z_rot
    :   Bottom range of Z axis source motion

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

    from_min_z_scale
    :   Bottom range of Z axis source motion

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

    from_rotation_mode
    :   Specify the type of rotation channels to use

        Type:
        :   enum in [Driver Target Rotation Mode Items](bpy_types_enum_items/driver_target_rotation_mode_items.html#rna-enum-driver-target-rotation-mode-items), default `'AUTO'`

    map_from
    :   The transformation type to use from the target

        Type:
        :   enum in [`'LOCATION'`, `'ROTATION'`, `'SCALE'`], default `'LOCATION'`

    map_to
    :   The transformation type to affect on the constrained object

        Type:
        :   enum in [`'LOCATION'`, `'ROTATION'`, `'SCALE'`], default `'LOCATION'`

    map_to_x_from
    :   The source axis constrained object’s X axis uses

        Type:
        :   enum in [Axis Xyz Items](bpy_types_enum_items/axis_xyz_items.html#rna-enum-axis-xyz-items), default `'X'`

    map_to_y_from
    :   The source axis constrained object’s Y axis uses

        Type:
        :   enum in [Axis Xyz Items](bpy_types_enum_items/axis_xyz_items.html#rna-enum-axis-xyz-items), default `'X'`

    map_to_z_from
    :   The source axis constrained object’s Z axis uses

        Type:
        :   enum in [Axis Xyz Items](bpy_types_enum_items/axis_xyz_items.html#rna-enum-axis-xyz-items), default `'X'`

    mix_mode
    :   Specify how to combine the new location with original

        - `REPLACE`
          Replace – Replace component values.
        - `ADD`
          Add – Add component values together.

        Type:
        :   enum in [`'REPLACE'`, `'ADD'`], default `'ADD'`

    mix_mode_rot
    :   Specify how to combine the new rotation with original

        - `REPLACE`
          Replace – Replace component values.
        - `ADD`
          Add – Add component values together.
        - `BEFORE`
          Before Original – Apply new rotation before original, as if it was on a parent.
        - `AFTER`
          After Original – Apply new rotation after original, as if it was on a child.

        Type:
        :   enum in [`'REPLACE'`, `'ADD'`, `'BEFORE'`, `'AFTER'`], default `'ADD'`

    mix_mode_scale
    :   Specify how to combine the new scale with original

        - `REPLACE`
          Replace – Replace component values.
        - `MULTIPLY`
          Multiply – Multiply component values together.

        Type:
        :   enum in [`'REPLACE'`, `'MULTIPLY'`], default `'REPLACE'`

    subtarget
    :   Armature bone, mesh or lattice vertex group, …

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

    target
    :   Target object

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

    to_euler_order
    :   Explicitly specify the output euler rotation order

        - `AUTO`
          Default – Euler using the default rotation order.
        - `XYZ`
          XYZ Euler – Euler using the XYZ rotation order.
        - `XZY`
          XZY Euler – Euler using the XZY rotation order.
        - `YXZ`
          YXZ Euler – Euler using the YXZ rotation order.
        - `YZX`
          YZX Euler – Euler using the YZX rotation order.
        - `ZXY`
          ZXY Euler – Euler using the ZXY rotation order.
        - `ZYX`
          ZYX Euler – Euler using the ZYX rotation order.

        Type:
        :   enum in [`'AUTO'`, `'XYZ'`, `'XZY'`, `'YXZ'`, `'YZX'`, `'ZXY'`, `'ZYX'`], default `'AUTO'`

    to_max_x
    :   Top range of X axis destination motion

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

    to_max_x_rot
    :   Top range of X axis destination motion

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

    to_max_x_scale
    :   Top range of X axis destination motion

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

    to_max_y
    :   Top range of Y axis destination motion

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

    to_max_y_rot
    :   Top range of Y axis destination motion

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

    to_max_y_scale
    :   Top range of Y axis destination motion

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

    to_max_z
    :   Top range of Z axis destination motion

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

    to_max_z_rot
    :   Top range of Z axis destination motion

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

    to_max_z_scale
    :   Top range of Z axis destination motion

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

    to_min_x
    :   Bottom range of X axis destination motion

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

    to_min_x_rot
    :   Bottom range of X axis destination motion

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

    to_min_x_scale
    :   Bottom range of X axis destination motion

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

    to_min_y
    :   Bottom range of Y axis destination motion

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

    to_min_y_rot
    :   Bottom range of Y axis destination motion

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

    to_min_y_scale
    :   Bottom range of Y axis destination motion

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

    to_min_z
    :   Bottom range of Z axis destination motion

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

    to_min_z_rot
    :   Bottom range of Z axis destination motion

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

    to_min_z_scale
    :   Bottom range of Z axis destination motion

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

    use_motion_extrapolate
    :   Extrapolate ranges

        Type:
        :   boolean, default False

    *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