user: Explain CacheFile(ID) in complete detail according to the official Blender documentation.

assistant: # CacheFile(ID)

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

*class* bpy.types.CacheFile(*ID*)
:   active_index
    :   Type:
        :   int in [0, inf], default 0

    animation_data
    :   Animation data for this data-block

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

    filepath
    :   Path to external displacements file

        Type:
        :   string, default “”, (never None, blend relative `//` prefix supported)

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

    frame
    :   The time to use for looking up the data in the cache file, or to determine which file to use in a file sequence

        Type:
        :   float in [-1.04857e+06, 1.04857e+06], default 0.0

    frame_offset
    :   Subtracted from the current frame to use for looking up the data in the cache file, or to determine which file to use in a file sequence

        Type:
        :   float in [-1.04857e+06, 1.04857e+06], default 0.0

    is_sequence
    :   Whether the cache is separated in a series of files

        Type:
        :   boolean, default False

    layers
    :   Layers of the cache

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

    object_paths
    :   Paths of the objects inside the Alembic archive

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

    override_frame
    :   Whether to use a custom frame for looking up data in the cache file, instead of using the current scene frame

        Type:
        :   boolean, default False

    scale
    :   Value by which to enlarge or shrink the object with respect to the world’s origin (only applicable through a Transform Cache constraint)

        Type:
        :   float in [0.0001, 1000], default 1.0

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

    velocity_name
    :   Name of the Alembic attribute used for generating motion blur data

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

    velocity_unit
    :   Define how the velocity vectors are interpreted with regard to time, ‘frame’ means the delta time is 1 frame, ‘second’ means the delta time is 1 / FPS

        Type:
        :   enum in [Velocity Unit Items](bpy_types_enum_items/velocity_unit_items.html#rna-enum-velocity-unit-items), default `'FRAME'`

    *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