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

assistant: # ParticleInstanceModifier(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.ParticleInstanceModifier(*Modifier*)
:   Particle system instancing modifier

    axis
    :   Pole axis for rotation

        Type:
        :   enum in [Axis Xyz Items](bpy_types_enum_items/axis_xyz_items.html#rna-enum-axis-xyz-items), default `'Z'`

    index_layer_name
    :   Custom data layer name for the index

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

    object
    :   Object that has the particle system

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

    particle_amount
    :   Amount of particles to use for instancing

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

    particle_offset
    :   Relative offset of particles to use for instancing, to avoid overlap of multiple instances

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

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

    particle_system_index
    :   Type:
        :   int in [1, 32767], default 1

    position
    :   Position along path

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

    random_position
    :   Randomize position along path

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

    random_rotation
    :   Randomize rotation around path

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

    rotation
    :   Rotation around path

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

    show_alive
    :   Show instances when particles are alive

        Type:
        :   boolean, default True

    show_dead
    :   Show instances when particles are dead

        Type:
        :   boolean, default True

    show_unborn
    :   Show instances when particles are unborn

        Type:
        :   boolean, default True

    space
    :   Space to use for copying mesh data

        - `LOCAL`
          Local – Use offset from the particle object in the instance object.
        - `WORLD`
          World – Use world space offset in the instance object.

        Type:
        :   enum in [`'LOCAL'`, `'WORLD'`], default `'WORLD'`

    use_children
    :   Create instances from child particles

        Type:
        :   boolean, default False

    use_normal
    :   Create instances from normal particles

        Type:
        :   boolean, default True

    use_path
    :   Create instances along particle paths

        Type:
        :   boolean, default False

    use_preserve_shape
    :   Don’t stretch the object

        Type:
        :   boolean, default False

    use_size
    :   Use particle size to scale the instances

        Type:
        :   boolean, default False

    value_layer_name
    :   Custom data layer name for the randomized value

        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