# Curve(ID)

base classes — `bpy_struct`, `ID`

subclasses — `SurfaceCurve`, `TextCurve`

class `bpy.types.``Curve`(ID)

  Curve data-block storing curves, splines and NURBS

  `animation_data`

    Animation data for this data-block

    Type: | `AnimData`, (readonly)

  `bevel_depth`

    Bevel depth when not using a bevel object

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

  `bevel_factor_end`

    Factor that defines to where beveling of spline happens (0=to the very beginning, 1=to the very end)

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

  `bevel_factor_mapping_end`

    Determines how the end bevel factor is mapped to a spline

    - `RESOLUTION` Resolution, Map the bevel factor to the number of subdivisions of a spline (U resolution).
    - `SEGMENTS` Segments, Map the bevel factor to the length of a segment and to the number of subdivisions of a segment.
    - `SPLINE` Spline, Map the bevel factor to the length of a spline.

    Type: | enum in [‘RESOLUTION’, ‘SEGMENTS’, ‘SPLINE’], default ‘RESOLUTION’

  `bevel_factor_mapping_start`

    Determines how the start bevel factor is mapped to a spline

    - `RESOLUTION` Resolution, Map the bevel factor to the number of subdivisions of a spline (U resolution).
    - `SEGMENTS` Segments, Map the bevel factor to the length of a segment and to the number of subdivisions of a segment.
    - `SPLINE` Spline, Map the bevel factor to the length of a spline.

    Type: | enum in [‘RESOLUTION’, ‘SEGMENTS’, ‘SPLINE’], default ‘RESOLUTION’

  `bevel_factor_start`

    Factor that defines from where beveling of spline happens (0=from the very beginning, 1=from the very end)

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

  `bevel_object`

    Curve object name that defines the bevel shape

    Type: | `Object`

  `bevel_resolution`

    Bevel resolution when depth is non-zero and no specific bevel object has been defined

    Type: | int in [0, 32], default 4

  `cycles`

    Cycles mesh settings

    Type: | `CyclesMeshSettings`, (readonly)

  `dimensions`

    Select 2D or 3D curve type

    - `2D` 2D, Clamp the Z axis of the curve.
    - `3D` 3D, Allow editing on the Z axis of this curve, also allows tilt and curve radius to be used.

    Type: | enum in [‘2D’, ‘3D’], default ‘2D’

  `eval_time`

    Parametric position along the length of the curve that Objects ‘following’ it should be at (position is evaluated by dividing by the ‘Path Length’ value)

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

  `extrude`

    Amount of curve extrusion when not using a bevel object

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

  `fill_mode`

    Mode of filling curve

    Type: | enum in [‘FULL’, ‘BACK’, ‘FRONT’, ‘HALF’], default ‘FULL’

  `is_editmode`

    True when used in editmode

    Type: | boolean, default False, (readonly)

  `materials`

    Type: | `IDMaterials` `bpy_prop_collection` of `Material`, (readonly)

  `offset`

    Offset the curve to adjust the width of a text

    Type: | float in [-inf, inf], default 1.0

  `path_duration`

    The number of frames that are needed to traverse the path, defining the maximum value for the ‘Evaluation Time’ setting

    Type: | int in [1, 1048574], default 100

  `render_resolution_u`

    Surface resolution in U direction used while rendering (zero uses preview resolution)

    Type: | int in [0, 1024], default 0

  `render_resolution_v`

    Surface resolution in V direction used while rendering (zero uses preview resolution)

    Type: | int in [0, 1024], default 0

  `resolution_u`

    Surface resolution in U direction

    Type: | int in [1, 1024], default 12

  `resolution_v`

    Surface resolution in V direction

    Type: | int in [1, 1024], default 12

  `shape_keys`

    Type: | `Key`, (readonly)

  `splines`

    Collection of splines in this curve data object

    Type: | `CurveSplines` `bpy_prop_collection` of `Spline`, (readonly)

  `taper_object`

    Curve object name that defines the taper (width)

    Type: | `Object`

  `texspace_location`

    Texture space location

    Type: | float array of 3 items in [-inf, inf], default (0.0, 0.0, 0.0)

  `texspace_size`

    Texture space size

    Type: | float array of 3 items in [-inf, inf], default (0.0, 0.0, 0.0)

  `twist_mode`

    The type of tilt calculation for 3D Curves

    - `Z_UP` Z-Up, Use Z-Up axis to calculate the curve twist at each point.
    - `MINIMUM` Minimum, Use the least twist over the entire curve.
    - `TANGENT` Tangent, Use the tangent to calculate twist.

    Type: | enum in [‘Z_UP’, ‘MINIMUM’, ‘TANGENT’], default ‘MINIMUM’

  `twist_smooth`

    Smoothing iteration for tangents

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

  `use_auto_texspace`

    Adjust active object’s texture space automatically when transforming object

    Type: | boolean, default True

  `use_deform_bounds`

    Option for curve-deform: Use the mesh bounds to clamp the deformation

    Type: | boolean, default True

  `use_fill_caps`

    Fill caps for beveled curves

    Type: | boolean, default False

  `use_fill_deform`

    Fill curve after applying shape keys and all modifiers

    Type: | boolean, default False

  `use_map_taper`

    Map effect of the taper object to the beveled part of the curve

    Type: | boolean, default False

  `use_path`

    Enable the curve to become a translation path

    Type: | boolean, default False

  `use_path_follow`

    Make curve path children to rotate along the path

    Type: | boolean, default False

  `use_radius`

    Option for paths and curve-deform: apply the curve radius with path following it and deforming

    Type: | boolean, default True

  `use_stretch`

    Option for curve-deform: make deformed child to stretch along entire path

    Type: | boolean, default False

  `transform`(matrix, shape_keys=False)

    Transform curve by a matrix

    Parameters: | matrix (float multi-dimensional array of 4 * 4 items in [-inf, inf]) – Matrix shape_keys (boolean, (optional)) – Transform Shape Keys

  `validate_material_indices`()

    Validate material indices of splines or letters, return True when the curve has had invalid indices corrected (to default 0)

    Returns: | Result
    Return type: | boolean

  `update_gpu_tag`()

    update_gpu_tag

  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` `ID.name` `ID.name_full` `ID.is_evaluated` `ID.original` `ID.users` | `ID.use_fake_user` `ID.tag` `ID.is_library_indirect` `ID.library` `ID.override_library` `ID.preview`

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` `ID.evaluated_get` `ID.copy` `ID.override_create` `ID.user_clear` `ID.user_remap` `ID.make_local` `ID.user_of_id` `ID.animation_data_create` `ID.animation_data_clear` `ID.update_tag`

References

`bpy.context.curve` `BlendData.curves` | `BlendDataCurves.new` `BlendDataCurves.remove`