user: How do I use Volume(ID) in Blender? Include parameters, examples, warnings and best practices.

assistant: # Volume(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.Volume(*ID*)
:   Volume data-block for 3D volume grids

    animation_data
    :   Animation data for this data-block

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

    display
    :   Volume display settings for 3D viewport

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

    filepath
    :   Volume file used by this Volume data-block

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

    frame_duration
    :   Number of frames of the sequence to use

        Type:
        :   int in [0, 1048574], default 0

    frame_offset
    :   Offset the number of the frame to use in the animation

        Type:
        :   int in [-inf, inf], default 0

    frame_start
    :   Global starting frame of the sequence, assuming first has a #1

        Type:
        :   int in [-1048574, 1048574], default 1

    grids
    :   3D volume grids

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

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

        Type:
        :   boolean, default False

    materials
    :   Type:
        :   [`IDMaterials`](bpy.types.IDMaterials.html#bpy.types.IDMaterials "bpy.types.IDMaterials") [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`Material`](bpy.types.Material.html#bpy.types.Material "bpy.types.Material"), (readonly)

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

    render
    :   Volume render settings for 3D viewport

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

    sequence_mode
    :   Sequence playback mode

        - `CLIP`
          Clip – Hide frames outside the specified frame range.
        - `EXTEND`
          Extend – Repeat the start frame before, and the end frame after the frame range.
        - `REPEAT`
          Repeat – Cycle the frames in the sequence.
        - `PING_PONG`
          Ping-Pong – Repeat the frames, reversing the playback direction every other cycle.

        Type:
        :   enum in [`'CLIP'`, `'EXTEND'`, `'REPEAT'`, `'PING_PONG'`], default `'CLIP'`

    velocity_grid
    :   Name of the velocity field, or the base name if the velocity is split into multiple grids

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

    velocity_scale
    :   Factor to control the amount of motion blur

        Type:
        :   float in [0, inf], default 1.0

    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'`

    velocity_x_grid
    :   Name of the grid for the X axis component of the velocity field if it was split into multiple grids

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

    velocity_y_grid
    :   Name of the grid for the Y axis component of the velocity field if it was split into multiple grids

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

    velocity_z_grid
    :   Name of the grid for the Z axis component of the velocity field if it was split into multiple grids

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

    *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