user: Show practical ways to work with SolidifyModifier(Modifier) in a Blender add-on or script – include code.

assistant: # SolidifyModifier(Modifier)

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

*class* bpy.types.SolidifyModifier(*Modifier*)
:   Create a solid skin, compensating for sharp angles

    bevel_convex
    :   Edge bevel weight to be added to outside edges

        Type:
        :   float in [-1, 1], default 0.0

    edge_crease_inner
    :   Assign a crease to inner edges

        Type:
        :   float in [0, 1], default 0.0

    edge_crease_outer
    :   Assign a crease to outer edges

        Type:
        :   float in [0, 1], default 0.0

    edge_crease_rim
    :   Assign a crease to the edges making up the rim

        Type:
        :   float in [0, 1], default 0.0

    invert_vertex_group
    :   Invert the vertex group influence

        Type:
        :   boolean, default False

    material_offset
    :   Offset material index of generated faces

        Type:
        :   int in [-32768, 32767], default 0

    material_offset_rim
    :   Offset material index of generated rim faces

        Type:
        :   int in [-32768, 32767], default 0

    nonmanifold_boundary_mode
    :   Selects the boundary adjustment algorithm

        - `NONE`
          None – No shape correction.
        - `ROUND`
          Round – Round open perimeter shape.
        - `FLAT`
          Flat – Flat open perimeter shape.

        Type:
        :   enum in [`'NONE'`, `'ROUND'`, `'FLAT'`], default `'NONE'`

    nonmanifold_merge_threshold
    :   Distance within which degenerated geometry is merged

        Type:
        :   float in [0, 1], default 0.0001

    nonmanifold_thickness_mode
    :   Selects the used thickness algorithm

        - `FIXED`
          Fixed – Most basic thickness calculation.
        - `EVEN`
          Even – Even thickness calculation which takes the angle between faces into account.
        - `CONSTRAINTS`
          Constraints – Thickness calculation using constraints, most advanced.

        Type:
        :   enum in [`'FIXED'`, `'EVEN'`, `'CONSTRAINTS'`], default `'CONSTRAINTS'`

    offset
    :   Offset the thickness from the center

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

    rim_vertex_group
    :   Vertex group that the generated rim geometry will be weighted to

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

    shell_vertex_group
    :   Vertex group that the generated shell geometry will be weighted to

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

    solidify_mode
    :   Selects the used algorithm

        - `EXTRUDE`
          Simple – Output a solidified version of a mesh by simple extrusion.
        - `NON_MANIFOLD`
          Complex – Output a manifold mesh even if the base mesh is non-manifold, where edges have 3 or more connecting faces. This method is slower..

        Type:
        :   enum in [`'EXTRUDE'`, `'NON_MANIFOLD'`], default `'EXTRUDE'`

    thickness
    :   Thickness of the shell

        Type:
        :   float in [-inf, inf], default 0.01

    thickness_clamp
    :   Offset clamp based on geometry scale

        Type:
        :   float in [0, 100], default 0.0

    thickness_vertex_group
    :   Thickness factor to use for zero vertex group influence

        Type:
        :   float in [0, 1], default 0.0

    use_even_offset
    :   Maintain thickness by adjusting for sharp corners (slow, disable when not needed)

        Type:
        :   boolean, default False

    use_flat_faces
    :   Make faces use the minimal vertex weight assigned to their vertices (ensures new faces remain parallel to their original ones, slow, disable when not needed)

        Type:
        :   boolean, default False

    use_flip_normals
    :   Invert the face direction

        Type:
        :   boolean, default False

    use_quality_normals
    :   Calculate normals which result in more even thickness (slow, disable when not needed)

        Type:
        :   boolean, default False

    use_rim
    :   Create edge loops between the inner and outer surfaces on face edges (slow, disable when not needed)

        Type:
        :   boolean, default True

    use_rim_only
    :   Only add the rim to the original data

        Type:
        :   boolean, default False

    use_thickness_angle_clamp
    :   Clamp thickness based on angles

        Type:
        :   boolean, default False

    vertex_group
    :   Vertex group name

        Type:
        :   string, default “”, (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