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

assistant: # ParticleEdit(bpy_struct)

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

*class* bpy.types.ParticleEdit(*bpy_struct*)
:   Properties of particle editing mode

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

    default_key_count
    :   How many keys to make new particles with

        Type:
        :   int in [2, 32767], default 5

    display_step
    :   How many steps to display the path with

        Type:
        :   int in [1, 10], default 2

    emitter_distance
    :   Distance to keep particles away from the emitter

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

    fade_frames
    :   How many frames to fade

        Type:
        :   int in [1, 100], default 2

    is_editable
    :   A valid edit mode exists

        Type:
        :   boolean, default False, (readonly)

    is_hair
    :   Editing hair

        Type:
        :   boolean, default False, (readonly)

    object
    :   The edited object

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

    select_mode
    :   Particle select and display mode

        - `PATH`
          Path – Path edit mode.
        - `POINT`
          Point – Point select mode.
        - `TIP`
          Tip – Tip select mode.

        Type:
        :   enum in [`'PATH'`, `'POINT'`, `'TIP'`], default `'PATH'`

    shape_object
    :   Outer shape to use for tools

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

    show_particles
    :   Display actual particles

        Type:
        :   boolean, default False

    tool
    :   - `COMB`
          Comb – Comb hairs.
        - `SMOOTH`
          Smooth – Smooth hairs.
        - `ADD`
          Add – Add hairs.
        - `LENGTH`
          Length – Make hairs longer or shorter.
        - `PUFF`
          Puff – Make hairs stand up.
        - `CUT`
          Cut – Cut hairs.
        - `WEIGHT`
          Weight – Weight hair particles.

        Type:
        :   enum in [`'COMB'`, `'SMOOTH'`, `'ADD'`, `'LENGTH'`, `'PUFF'`, `'CUT'`, `'WEIGHT'`], default `'COMB'`

    type
    :   Type:
        :   enum in [`'PARTICLES'`, `'SOFT_BODY'`, `'CLOTH'`], default `'PARTICLES'`

    use_auto_velocity
    :   Calculate point velocities automatically

        Type:
        :   boolean, default True

    use_default_interpolate
    :   Interpolate new particles from the existing ones

        Type:
        :   boolean, default False

    use_emitter_deflect
    :   Keep paths from intersecting the emitter

        Type:
        :   boolean, default True

    use_fade_time
    :   Fade paths and keys further away from current frame

        Type:
        :   boolean, default False

    use_preserve_length
    :   Keep path lengths constant

        Type:
        :   boolean, default True

    use_preserve_root
    :   Keep root keys unmodified

        Type:
        :   boolean, default True

    *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](#bpy.types.ParticleEdit.type "bpy.types.ParticleEdit.type")