# ID(bpy_struct)

base class — `bpy_struct`

subclasses — `Action`, `Armature`, `Brush`, `CacheFile`, `Camera`, `Collection`, `Curve`, `FreestyleLineStyle`, `GreasePencil`, `Image`, `Key`, `Lattice`, `Library`, `Light`, `LightProbe`, `Mask`, `Material`, `Mesh`, `MetaBall`, `MovieClip`, `NodeTree`, `Object`, `PaintCurve`, `Palette`, `ParticleSettings`, `Scene`, `Screen`, `Sound`, `Speaker`, `Text`, `Texture`, `VectorFont`, `WindowManager`, `WorkSpace`, `World`

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

  Base type for data-blocks, defining a unique name, linking from other libraries and garbage collection

  `is_evaluated`

    Whether this ID is runtime-only, evaluated data-block, or actual data from .blend file

    Type: | boolean, default False, (readonly)

  `is_library_indirect`

    Is this ID block linked indirectly

    Type: | boolean, default False, (readonly)

  `library`

    Library file the data-block is linked from

    Type: | `Library`, (readonly)

  `name`

    Unique data-block ID name

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

  `name_full`

    Unique data-block ID name, including library one is any

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

  `original`

    Actual data-block from .blend file (Main database) that generated that evaluated one

    Type: | `ID`, (readonly)

  `override_library`

    Library override data

    Type: | `IDOverrideLibrary`, (readonly)

  `preview`

    Preview image and icon of this data-block (None if not supported for this type of data)

    Type: | `ImagePreview`, (readonly)

  `tag`

    Tools can use this to tag data for their own purposes (initial state is undefined)

    Type: | boolean, default False

  `use_fake_user`

    Save this data-block even if it has no users

    Type: | boolean, default False

  `users`

    Number of times this data-block is referenced

    Type: | int in [0, inf], default 0, (readonly)

  `evaluated_get`(depsgraph)

    Get corresponding evaluated ID from the given dependency graph

    Parameters: | depsgraph (`Depsgraph`, (never None)) – Dependency graph to perform lookup in
    Returns: | New copy of the ID
    Return type: | `ID`

  `copy`()

    Create a copy of this data-block (not supported for all data-blocks)

    Returns: | New copy of the ID
    Return type: | `ID`

  `override_create`(remap_local_usages=False)

    Create an overridden local copy of this linked data-block (not supported for all data-blocks)

    Parameters: | remap_local_usages (boolean, (optional)) – Whether local usages of the linked ID should be remapped to the new library override of it
    Returns: | New overridden local copy of the ID
    Return type: | `ID`

  `user_clear`()

    Clear the user count of a data-block so its not saved, on reload the data will be removed

    This function is for advanced use only, misuse can crash blender since the user count is used to prevent data being removed when it is used.

        # This example shows what _not_ to do, and will crash blender.
        import bpy

        # object which is in the scene.
        obj = bpy.data.objects["Cube"]

        # without this, removal would raise an error.
        obj.user_clear()

        # runs without an exception
        # but will crash on redraw.
        bpy.data.objects.remove(obj)

  `user_remap`(new_id)

    Replace all usage in the .blend file of this ID by new given one

    Parameters: | new_id (`ID`, (never None)) – New ID to use

  `make_local`(clear_proxy=True)

    Make this datablock local, return local one (may be a copy of the original, in case it is also indirectly used)

    Parameters: | clear_proxy (boolean, (optional)) – Whether to clear proxies (the default behavior, note that if object has to be duplicated to be made local, proxies are always cleared)
    Returns: | This ID, or the new ID if it was copied
    Return type: | `ID`

  `user_of_id`(id)

    Count the number of times that ID uses/references given one

    Parameters: | id (`ID`, (never None)) – ID to count usages
    Returns: | Number of usages/references of given id by current data-block
    Return type: | int in [0, inf]

  `animation_data_create`()

    Create animation data to this ID, note that not all ID types support this

    Returns: | New animation data or NULL
    Return type: | `AnimData`

  `animation_data_clear`()

    Clear animation on this this ID

  `update_tag`(refresh={})

    Tag the ID to update its display data, e.g. when calling `bpy.types.Scene.update`

    Parameters: | refresh (enum set in {'OBJECT', 'DATA', 'TIME'}, (optional)) – Type of updates to perform

  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

`bpy.context.annotation_data_owner` `bpy.context.gpencil_data_owner` `bpy.context.texture_user` `BlendDataObjects.new` `Depsgraph.id_eval_get` `Depsgraph.id_eval_get` `Depsgraph.ids` `DepsgraphUpdate.id` `DopeSheet.source` `DriverTarget.id` `ID.copy` `ID.evaluated_get` `ID.make_local` `ID.original` `ID.override_create` `ID.user_of_id` | `ID.user_remap` `IDOverrideLibrary.reference` `Key.user` `KeyingSetPath.id` `KeyingSetPaths.add` `MaskParent.id` `NodeTree.get_from_context` `NodeTree.get_from_context` `Object.data` `PropertyGroupItem.id` `SpaceNodeEditor.id` `SpaceNodeEditor.id_from` `SpaceProperties.pin_id` `UILayout.template_path_builder` `UILayout.template_preview` `UILayout.template_preview`