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

assistant: # Paint(bpy_struct)

base class — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct")

subclasses —
[`CurvesSculpt`](bpy.types.CurvesSculpt.html#bpy.types.CurvesSculpt "bpy.types.CurvesSculpt"), [`GpPaint`](bpy.types.GpPaint.html#bpy.types.GpPaint "bpy.types.GpPaint"), [`GpSculptPaint`](bpy.types.GpSculptPaint.html#bpy.types.GpSculptPaint "bpy.types.GpSculptPaint"), [`GpVertexPaint`](bpy.types.GpVertexPaint.html#bpy.types.GpVertexPaint "bpy.types.GpVertexPaint"), [`GpWeightPaint`](bpy.types.GpWeightPaint.html#bpy.types.GpWeightPaint "bpy.types.GpWeightPaint"), [`ImagePaint`](bpy.types.ImagePaint.html#bpy.types.ImagePaint "bpy.types.ImagePaint"), [`Sculpt`](bpy.types.Sculpt.html#bpy.types.Sculpt "bpy.types.Sculpt"), [`VertexPaint`](bpy.types.VertexPaint.html#bpy.types.VertexPaint "bpy.types.VertexPaint")

*class* bpy.types.Paint(*bpy_struct*)
:   brush
    :   Active brush

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

    brush_asset_reference
    :   A weak reference to the matching brush asset, used e.g. to restore the last used brush on file load

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

    cavity_curve
    :   Editable cavity curve

        Type:
        :   [`CurveMapping`](bpy.types.CurveMapping.html#bpy.types.CurveMapping "bpy.types.CurveMapping"), (readonly, never None)

    eraser_brush
    :   Default eraser brush for quickly alternating with the main brush

        Type:
        :   [`Brush`](bpy.types.Brush.html#bpy.types.Brush "bpy.types.Brush")

    eraser_brush_asset_reference
    :   A weak reference to the matching brush asset, used e.g. to restore the last used brush on file load

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

    palette
    :   Active Palette

        Type:
        :   [`Palette`](bpy.types.Palette.html#bpy.types.Palette "bpy.types.Palette")

    show_brush
    :   Type:
        :   boolean, default False

    show_brush_on_surface
    :   Type:
        :   boolean, default False

    show_jitter_curve
    :   Type:
        :   boolean, default False

    show_low_resolution
    :   For multires, show low resolution while navigating the view

        Type:
        :   boolean, default False

    show_size_curve
    :   Type:
        :   boolean, default False

    show_strength_curve
    :   Type:
        :   boolean, default False

    tile_offset
    :   Stride at which tiled strokes are copied

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

    tile_x
    :   Tile along X axis

        Type:
        :   boolean, default False

    tile_y
    :   Tile along Y axis

        Type:
        :   boolean, default False

    tile_z
    :   Tile along Z axis

        Type:
        :   boolean, default False

    unified_paint_settings
    :   Type:
        :   [`UnifiedPaintSettings`](bpy.types.UnifiedPaintSettings.html#bpy.types.UnifiedPaintSettings "bpy.types.UnifiedPaintSettings"), (readonly, never None)

    use_cavity
    :   Mask painting according to mesh geometry cavity

        Type:
        :   boolean, default False

    use_sculpt_delay_updates
    :   Update the geometry when it enters the view, providing faster view navigation

        Type:
        :   boolean, default False

    use_symmetry_feather
    :   Reduce the strength of the brush where it overlaps symmetrical daubs

        Type:
        :   boolean, default False

    use_symmetry_x
    :   Mirror brush across the X axis

        Type:
        :   boolean, default False

    use_symmetry_y
    :   Mirror brush across the Y axis

        Type:
        :   boolean, default False

    use_symmetry_z
    :   Mirror brush across the Z axis

        Type:
        :   boolean, default False

    *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