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

assistant: # MetaBall(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.MetaBall(*ID*)
:   Metaball data-block to define blobby surfaces

    animation_data
    :   Animation data for this data-block

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

    cycles
    :   Cycles mesh settings

        Type:
        :   `CyclesMeshSettings`, (readonly)

    elements
    :   Metaball elements

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

    is_editmode
    :   True when used in editmode

        Type:
        :   boolean, default False, (readonly)

    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)

    render_resolution
    :   Polygonization resolution in rendering

        Type:
        :   float in [0.005, 10000], default 0.2

    resolution
    :   Polygonization resolution in the 3D viewport

        Type:
        :   float in [0.005, 10000], default 0.4

    texspace_location
    :   Texture space location

        Type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], default (0.0, 0.0, 0.0)

    texspace_size
    :   Texture space size

        Type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") of 3 items in [-inf, inf], default (1.0, 1.0, 1.0)

    threshold
    :   Influence of metaball elements

        Type:
        :   float in [0, 5], default 0.6

    update_method
    :   Metaball edit update behavior

        - `UPDATE_ALWAYS`
          Always – While editing, update metaball always.
        - `HALFRES`
          Half – While editing, update metaball in half resolution.
        - `FAST`
          Fast – While editing, update metaball without polygonization.
        - `NEVER`
          Never – While editing, don’t update metaball at all.

        Type:
        :   enum in [`'UPDATE_ALWAYS'`, `'HALFRES'`, `'FAST'`, `'NEVER'`], default `'UPDATE_ALWAYS'`

    use_auto_texspace
    :   Adjust active object’s texture space automatically when transforming object

        Type:
        :   boolean, default True

    transform(*matrix*)
    :   Transform metaball elements by a matrix

        Parameters:
        :   **matrix** ([`mathutils.Matrix`](mathutils.html#mathutils.Matrix "mathutils.Matrix") of 4 \* 4 items in [-inf, inf]) – Matrix

    update_gpu_tag()
    :   update_gpu_tag

    *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