# Constraint(bpy_struct)

base class — `bpy_struct`

subclasses — `ActionConstraint`, `ArmatureConstraint`, `CameraSolverConstraint`, `ChildOfConstraint`, `ClampToConstraint`, `CopyLocationConstraint`, `CopyRotationConstraint`, `CopyScaleConstraint`, `CopyTransformsConstraint`, `DampedTrackConstraint`, `FloorConstraint`, `FollowPathConstraint`, `FollowTrackConstraint`, `KinematicConstraint`, `LimitDistanceConstraint`, `LimitLocationConstraint`, `LimitRotationConstraint`, `LimitScaleConstraint`, `LockedTrackConstraint`, `MaintainVolumeConstraint`, `ObjectSolverConstraint`, `PivotConstraint`, `PythonConstraint`, `ShrinkwrapConstraint`, `SplineIKConstraint`, `StretchToConstraint`, `TrackToConstraint`, `TransformCacheConstraint`, `TransformConstraint`

class `bpy.types.``Constraint`(bpy_struct)

  Constraint modifying the transformation of objects and bones

  `active`

    Constraint is the one being edited

    Type: | boolean, default False

  `error_location`

    Amount of residual error in Blender space unit for constraints that work on position

    Type: | float in [-inf, inf], default 0.0, (readonly)

  `error_rotation`

    Amount of residual error in radians for constraints that work on orientation

    Type: | float in [-inf, inf], default 0.0, (readonly)

  `influence`

    Amount of influence constraint will have on the final solution

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

  `is_proxy_local`

    Constraint was added in this proxy instance (i.e. did not belong to source Armature)

    Type: | boolean, default False, (readonly)

  `is_valid`

    Constraint has valid settings and can be evaluated

    Type: | boolean, default False, (readonly)

  `mute`

    Enable/Disable Constraint

    Type: | boolean, default False

  `name`

    Constraint name

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

  `owner_space`

    Space that owner is evaluated in

    - `WORLD` World Space, The constraint is applied relative to the world coordinate system.
    - `POSE` Pose Space, The constraint is applied in Pose Space, the object transformation is ignored.
    - `LOCAL_WITH_PARENT` Local With Parent, The constraint is applied relative to the rest pose local coordinate system of the bone, thus including the parent-induced transformation.
    - `LOCAL` Local Space, The constraint is applied relative to the local coordinate system of the object.

    Type: | enum in [‘WORLD’, ‘POSE’, ‘LOCAL_WITH_PARENT’, ‘LOCAL’], default ‘WORLD’

  `show_expanded`

    Constraint’s panel is expanded in UI

    Type: | boolean, default False

  `target_space`

    Space that target is evaluated in

    - `WORLD` World Space, The transformation of the target is evaluated relative to the world coordinate system.
    - `POSE` Pose Space, The transformation of the target is only evaluated in the Pose Space, the target armature object transformation is ignored.
    - `LOCAL_WITH_PARENT` Local With Parent, The transformation of the target bone is evaluated relative to its rest pose local coordinate system, thus including the parent-induced transformation.
    - `LOCAL` Local Space, The transformation of the target is evaluated relative to its local coordinate system.

    Type: | enum in [‘WORLD’, ‘POSE’, ‘LOCAL_WITH_PARENT’, ‘LOCAL’], default ‘WORLD’

  `type`
    - `CAMERA_SOLVER` Camera Solver.
    - `FOLLOW_TRACK` Follow Track.
    - `OBJECT_SOLVER` Object Solver.
    - `COPY_LOCATION` Copy Location, Copy the location of a target (with an optional offset), so that they move together.
    - `COPY_ROTATION` Copy Rotation, Copy the rotation of a target (with an optional offset), so that they rotate together.
    - `COPY_SCALE` Copy Scale, Copy the scale factors of a target (with an optional offset), so that they are scaled by the same amount.
    - `COPY_TRANSFORMS` Copy Transforms, Copy all the transformations of a target, so that they move together.
    - `LIMIT_DISTANCE` Limit Distance, Restrict movements to within a certain distance of a target (at the time of constraint evaluation only).
    - `LIMIT_LOCATION` Limit Location, Restrict movement along each axis within given ranges.
    - `LIMIT_ROTATION` Limit Rotation, Restrict rotation along each axis within given ranges.
    - `LIMIT_SCALE` Limit Scale, Restrict scaling along each axis with given ranges.
    - `MAINTAIN_VOLUME` Maintain Volume, Compensate for scaling one axis by applying suitable scaling to the other two axes.
    - `TRANSFORM` Transformation, Use one transform property from target to control another (or same) property on owner.
    - `TRANSFORM_CACHE` Transform Cache, Look up the transformation matrix from an external file.
    - `CLAMP_TO` Clamp To, Restrict movements to lie along a curve by remapping location along curve’s longest axis.
    - `DAMPED_TRACK` Damped Track, Point towards a target by performing the smallest rotation necessary.
    - `IK` Inverse Kinematics, Control a chain of bones by specifying the endpoint target (Bones only).
    - `LOCKED_TRACK` Locked Track, Rotate around the specified (‘locked’) axis to point towards a target.
    - `SPLINE_IK` Spline IK, Align chain of bones along a curve (Bones only).
    - `STRETCH_TO` Stretch To, Stretch along Y-Axis to point towards a target.
    - `TRACK_TO` Track To, Legacy tracking constraint prone to twisting artifacts.
    - `ACTION` Action, Use transform property of target to look up pose for owner from an Action.
    - `ARMATURE` Armature, Apply weight-blended transformation from multiple bones like the Armature modifier.
    - `CHILD_OF` Child Of, Make target the ‘detachable’ parent of owner.
    - `FLOOR` Floor, Use position (and optionally rotation) of target to define a ‘wall’ or ‘floor’ that the owner can not cross.
    - `FOLLOW_PATH` Follow Path, Use to animate an object/bone following a path.
    - `PIVOT` Pivot, Change pivot point for transforms (buggy).
    - `SHRINKWRAP` Shrinkwrap, Restrict movements to surface of target mesh.

    Type: | enum in [‘CAMERA_SOLVER’, ‘FOLLOW_TRACK’, ‘OBJECT_SOLVER’, ‘COPY_LOCATION’, ‘COPY_ROTATION’, ‘COPY_SCALE’, ‘COPY_TRANSFORMS’, ‘LIMIT_DISTANCE’, ‘LIMIT_LOCATION’, ‘LIMIT_ROTATION’, ‘LIMIT_SCALE’, ‘MAINTAIN_VOLUME’, ‘TRANSFORM’, ‘TRANSFORM_CACHE’, ‘CLAMP_TO’, ‘DAMPED_TRACK’, ‘IK’, ‘LOCKED_TRACK’, ‘SPLINE_IK’, ‘STRETCH_TO’, ‘TRACK_TO’, ‘ACTION’, ‘ARMATURE’, ‘CHILD_OF’, ‘FLOOR’, ‘FOLLOW_PATH’, ‘PIVOT’, ‘SHRINKWRAP’], default ‘CAMERA_SOLVER’, (readonly)

  classmethod `bl_rna_get_subclass`(id, default=None)

    Parameters: | id (string) – The RNA type identifier.
    Returns: | The RNA type or default when not found.
    Return type: | `bpy.types.Struct` subclass

  classmethod `bl_rna_get_subclass_py`(id, default=None)

    Parameters: | id (string) – The RNA type identifier.
    Returns: | The class or default when not found.
    Return type: | type

Inherited Properties

`bpy_struct.id_data` |

Inherited Functions

`bpy_struct.as_pointer` `bpy_struct.driver_add` `bpy_struct.driver_remove` `bpy_struct.get` `bpy_struct.is_property_hidden` `bpy_struct.is_property_overridable_library` `bpy_struct.is_property_readonly` `bpy_struct.is_property_set` `bpy_struct.items` `bpy_struct.keyframe_delete` | `bpy_struct.keyframe_insert` `bpy_struct.keys` `bpy_struct.path_from_id` `bpy_struct.path_resolve` `bpy_struct.pop` `bpy_struct.property_overridable_library_set` `bpy_struct.property_unset` `bpy_struct.type_recast` `bpy_struct.values`

References

`Object.constraints` `ObjectConstraints.active` `ObjectConstraints.new` `ObjectConstraints.remove` `PoseBone.constraints` | `PoseBoneConstraints.active` `PoseBoneConstraints.new` `PoseBoneConstraints.remove` `UILayout.template_constraint`