PGCRYPT/OpenBlender_Train huggingface dataset:
user: Describe Inherited Properties from the Blender manual or Python API, including usage steps and snippets.

assistant: |  |  |
| --- | --- |
| - [`bpy_struct.id_data`](bpy.types.bpy_struct.html#bpy.types.bpy_struct.id_data "bpy.types.bpy_struct.id_data") - [`TextureSlot.texture`](bpy.types.TextureSlot.html#bpy.types.TextureSlot.texture "bpy.types.TextureSlot.texture") - [`TextureSlot.name`](bpy.types.TextureSlot.html#bpy.types.TextureSlot.name "bpy.types.TextureSlot.name") - [`TextureSlot.offset`](bpy.types.TextureSlot.html#bpy.types.TextureSlot.offset "bpy.types.TextureSlot.offset") - [`TextureSlot.scale`](bpy.types.TextureSlot.html#bpy.types.TextureSlot.scale "bpy.types.TextureSlot.scale") | - [`TextureSlot.color`](bpy.types.TextureSlot.html#bpy.types.TextureSlot.color "bpy.types.TextureSlot.color") - [`TextureSlot.blend_type`](bpy.types.TextureSlot.html#bpy.types.TextureSlot.blend_type "bpy.types.TextureSlot.blend_type") - [`TextureSlot.default_value`](bpy.types.TextureSlot.html#bpy.types.TextureSlot.default_value "bpy.types.TextureSlot.default_value") - [`TextureSlot.output_node`](bpy.types.TextureSlot.html#bpy.types.TextureSlot.output_node "bpy.types.TextureSlot.output_node") |
user: Give a detailed overview of Color Tagging: syntax, arguments, return values, common patterns.

assistant: Collections can have a color group assigned to them; helping organize
and group different collections. This color tag is displayed as part of
the collection icon in the [Outliner](../../editors/outliner/index.xhtml)
and various other menus. The available colors are defined by
Blender’s interface [Theme](../../editors/preferences/themes.xhtml).

To assign a color to a collection,
use the [Set Color Tag](../../editors/outliner/editing.xhtml#bpy-ops-outliner-collection-color-tag-set) tool in the Outliner.
user: What is Metaball and how is it used in Blender Python scripting?

assistant: [image reference removed]

Family meta properties.

Resolution Viewport
:   Controls the resolution of the resultant mesh as generated by the *Meta* objects.
    The 3D Viewport resolution of the generated mesh; finest to coarsest.

Render
:   The rendered resolution of the generated mesh; finest to coarsest.

Influence Threshold
:   Defines how much a meta’s surface “influences” other metas.
    It controls the *field level* at which the surface is computed.
    The setting is global to a group of *Meta* objects.
    As the threshold increases, so does the influence that each meta has on each other.

    There are two types of [influence](#meta-ball-editing-negative-influence): *positive* or *negative*.

Update on Edit
:   While transforming metas (move, scale, etc.), you have four “modes” of visualization.

    This should help you if you experience difficulties (metas are quite computationally intensive…),
    but with modern computers, this should not happen, unless you use many metas,
    or very high resolutions…

    Always:
    :   Fully display the meta during transformations.

    Half:
    :   During transformations, display the meta at half its *Viewport* resolution.

    Fast:
    :   Do not display meta during transformations.

    Never:
    :   Never show meta mesh (not a very recommended option, as the meta is only visible at render time!).
user: Show practical ways to work with Open Cached Render in a Blender add-on or script – include code.

assistant: Find the render cache file for the current scene and load it into the
Render Result. This way, you can restore the last render from a previous
Blender session and continue working in the Compositor without having to
render the scene again.

Note that Blender doesn’t create these cache files by default. You
have to enable [Cache Result](../../render/output/properties/output.html#bpy-types-rendersettings-use-render-cache)
in the scene’s Output options and then render it at least once.
user: Explain Timer(bpy_struct) in complete detail according to the official Blender documentation.

assistant: # Timer(bpy_struct)

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

*class* bpy.types.Timer(*bpy_struct*)
:   Window event timer

    time_delta
    :   Time since last step in seconds

        Type:
        :   float in [-inf, inf], default 0.0, (readonly)

    time_duration
    :   Time since the timer started seconds

        Type:
        :   float in [-inf, inf], default 0.0, (readonly)

    time_step
    :   Type:
        :   float in [-inf, inf], default 0.0, (readonly)

    *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
user: How do I use The operator still doesn’t work! in Blender? Include parameters, examples, warnings and best practices.

assistant: Certain operators in Blender are only intended for use in a specific context,
some operators for example are only called from the properties editor where they check the current material,
modifier or constraint.

Examples of this are:

- [`bpy.ops.texture.slot_move`](bpy.ops.texture.html#bpy.ops.texture.slot_move "bpy.ops.texture.slot_move")
- [`bpy.ops.constraint.limitdistance_reset`](bpy.ops.constraint.html#bpy.ops.constraint.limitdistance_reset "bpy.ops.constraint.limitdistance_reset")
- [`bpy.ops.object.modifier_copy`](bpy.ops.object.html#bpy.ops.object.modifier_copy "bpy.ops.object.modifier_copy")
- [`bpy.ops.buttons.file_browse`](bpy.ops.buttons.html#bpy.ops.buttons.file_browse "bpy.ops.buttons.file_browse")

Another possibility is that you are the first person to attempt to use this operator
in a script and some modifications need to be made to the operator to run in a different context.
If the operator should logically be able to run but fails when accessed from a script
it should be reported to the bug tracker.
user: How do I use GeometryNodeCornersOfEdge(GeometryNode) in Blender? Include parameters, examples, warnings and best practices.

assistant: # GeometryNodeCornersOfEdge(GeometryNode)

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

*class* bpy.types.GeometryNodeCornersOfEdge(*GeometryNode*)
:   Retrieve face corners connected to edges

    *classmethod* is_registered_node_type()
    :   True if a registered node type

        Returns:
        :   Result

        Return type:
        :   boolean

    *classmethod* input_template(*index*)
    :   Input socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *classmethod* output_template(*index*)
    :   Output socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *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
user: Describe Library Overrides from the Blender manual or Python API, including usage steps and snippets.

assistant: # Library Overrides

Library Overrides is a system designed to allow editing
[linked data](link_append.xhtml), while keeping it in sync
with the original library data. Most types of linked data-blocks can be overridden,
and the properties of these overrides can then be edited. When the library data changes,
unmodified properties of the overridden one will be updated accordingly.

Library overrides supports:

- Multiple independent overrides of a same linked data
  (e.g. having the same character multiple times in the same scene).
- Adding new modifiers and constraints, anywhere in the stack.
- Recursively chaining overrides (i.e. link and override overrides from another library file, etc.).
user: Describe TextureNodeViewer(TextureNode) from the Blender manual or Python API, including usage steps and snippets.

assistant: # TextureNodeViewer(TextureNode)

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

*class* bpy.types.TextureNodeViewer(*TextureNode*)
:   *classmethod* is_registered_node_type()
    :   True if a registered node type

        Returns:
        :   Result

        Return type:
        :   boolean

    *classmethod* input_template(*index*)
    :   Input socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *classmethod* output_template(*index*)
    :   Output socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *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
user: Show practical ways to work with Quick Start in a Blender add-on or script – include code.

assistant: Artists can add Grease Pencil to any existing Blender scene, or start with a 2D Animation template.
The template offers some pre-configured options that are helpful for animation and storyboarding.

### Create and Use Grease Pencil

1. From [Object Mode](../scene_layout/object/introduction.xhtml), Add ‣ Grease Pencil ‣ Blank.
2. Create a new keyframe or turn on Auto Key. (See [Keyframe Editing](../animation/keyframes/editing.xhtml))
3. Switch to [Draw Mode](modes/draw/introduction.xhtml).
4. Click and drag across the viewport to add strokes to the Grease Pencil object.

### 2D Animation Template

To create a new Blender file using the “2D Animation”
project template use: File ‣ New ‣ 2D Animation.

Note the following pre-configured setup for the 2D Animation template:

- 2D Animation is the default active workspace.
- World Properties ‣ Surface (Background) ‣ Color is set to white.
- Color management [Views](../render/color_management/displays_views.xhtml#bpy-types-colormanagedviewsettings-view-transform) is set to *Standard*.
- The [drawing plane](modes/draw/drawing_planes.xhtml) is set to Front (X-Z).
- Line and Fill layers, along with some stroke materials, are configured for Grease Pencil.
- The animation timeline will automatically create a new keyframe when Grease Pencil is used on empty frames.
user: What is Panels and how is it used in Blender Python scripting?

assistant: [image reference removed]

Panels in Properties.

A panel is highlighted in yellow and a subpanel in red.

The smallest organizational unit in the user interface is a panel.
The panel header shows the title of the panel. It is always visible.
Some panels also include subpanels.

### Collapsing and Expanding

A panel can either be expanded to show its contents, or collapsed to hide its contents.
An expanded panel is indicated by a down-arrow (▼) in the panel header,
while a collapsed panel is shown with a right-arrow (►).

- Clicking `LMB` on the panel header expands or collapses it.
- Pressing `A` expands/collapses the panel under the mouse pointer.
- Clicking `Ctrl`-`LMB` on the header of a collapsed panel will expand it and collapse all others.
- Clicking `Ctrl`-`LMB` on the header of an expanded panel will expand/collapse all its subpanels.
- Dragging with `LMB` over the headers will expand or collapse many at once.

### Position

You can change the position of a panel within its region by clicking
and dragging the grip widget (::::) on the right side of its header.

### Pinning

Sometimes it is desirable to view panels from different tabs at the same time.
Like, for instance, having access to a camera’s properties, while other objects are selected.
This has been solved by making panels pinnable.

A pinned panel remains visible regardless of which tab has been selected.
You can pin a panel by clicking on the pin icon in its header.
Panels that do not have a pin icon can be pinned by `RMB` on the panel header
and selecting *Pin*, or by pressing `Shift`-`LMB`.

### Presets

Panels in Blender provide a **Presets** menu () for quickly reusing common settings.
Presets can save time by storing frequently used configurations, which can then be reapplied with a single click.

[image reference removed]

Example Presets menu.

Selector
:   A list of available presets. Selecting one will apply the stored values to the relevant properties.

    Preset Name
    :   The name to use when adding a new preset.

    (Add)
    :   Create a new preset using the current settings,
        the preset is then saved and appears in the list for future reuse.

    (Remove)
    :   Deletes the selected preset.

Presets are stored as Python files in Blender’s [configuration directory](../../advanced/blender_directory_layout.html#blender-directory-path-layout).
Advanced users can edit these preset files directly to fine-tune settings or copy them to other systems.
user: What is Introduction and how is it used in Blender Python scripting?

assistant: # Introduction

A UV texture is a picture (image, sequence or movie)
that is used to color the surface of a mesh.
The UV texture is mapped to the mesh through one or more UV maps.
There are three ways to establish the image used by the UV texture:

1. Use any image editing program to create an image. In the Image Editor,
   select the UV texture and load the image. Blender will then use
   that texture’s UV map to transfer the colors to the faces of the mesh.
2. Paint a flat image in the Image Editor onto the currently selected UV texture,
   using its UV map to transfer the colors to the faces of the mesh.
3. Paint the mesh in the 3D Viewport, and let Blender use
   the currently selected UV map to update the UV texture
   (as discussed below).

Blender features a built-in paint mode called *Texture Paint* which is designed
specifically to help you edit your UV textures and images quickly and
easily in either the Image Editor or the 3D Viewport.
Since a UV texture is just a special-purpose image,
you can also use any external paint program, like GIMP or Krita.

[[image reference removed]](../../_images/sculpt-paint_texture-paint_introduction_example.png)

Texture painting in Blender.

Since a mesh can have layers of UV textures, there may be many images that color the mesh.
However, each UV texture only has one image.

*Texture Paint* works in both a 3D Viewport and the Image Editor.
In the 3D Viewport in Texture Paint Mode, you paint directly on the mesh by projecting onto the UVs.
user: Explain Select Menu in complete detail according to the official Blender documentation.

assistant: All `A`
:   Selects all keyframes.

None `Alt`-`A`
:   Deselects all keyframes.

Invert `Ctrl`-`I`
:   Inverts the selection.

---

[Box Select](../../interface/selecting.html#bpy-ops-select-box) `B`
:   Lets you drag a box and selects the keyframes inside it.

Box Select (Axis Range) `Alt`-`B`
:   Lets you drag a box and selects the keyframes inside the corresponding time range,
    even if they’re above or below the box.

[Circle Select](../../interface/selecting.html#bpy-ops-select-circle) `C`
:   Displays a circle around the cursor, which you can drag over keyframes to select them.

[Lasso Select](../../interface/selecting.html#bpy-ops-select-lasso) `Ctrl`-`RMB`
:   Lets you draw a freehand shape and selects the keyframes inside it.

---

More `Ctrl`-`NumpadPlus`
:   Expand the selection to include the neighbors (in time) of the currently selected keys.

Less `Ctrl`-`NumpadMinus`
:   Deselect keyframes with fewer than two selected neighbors.

---

Select Linked `L`
:   Select keys that are on the same channel as a key that’s already selected.

---

Columns on Selected Keys `K`
:   Selects keys that are on the same frame as a key that’s already selected.

Column on Current Frame `Ctrl`-`K`
:   Selects all the keys that are on the current frame.

Columns on Selected Markers `Shift`-`K`
:   Selects keys that are on the same frame as a selected marker.

Between Selected Markers `Alt`-`K`
:   Selects keys that lie between the leftmost and rightmost selected markers.

---

Before Current Frame `[`
:   Select the keys that lie before (or on) the current frame.
    You can also click `Shift`-`Ctrl`-`LMB` anywhere to the left of the Playhead.

After Current Frame `]`
:   Select the keys that lie after (or on) the current frame.
    You can also click `Shift`-`Ctrl`-`LMB` anywhere to the right of the Playhead.
user: Show practical ways to work with EEVEE Support in a Blender add-on or script – include code.

assistant: EEVEE has no real concept of rays, but in order to ease the workflow between Cycles and EEVEE,
some of the outputs are supported in particular cases.

- *Is Camera*: Supported.
- *Is Shadow*: Supported.
- *Is Diffuse*: Supported.
- *Is Glossy*: Supported.
- *Is Singular*: Not supported. Same as *Is Glossy*.
- *Is Reflection*: Not supported. Same as *Is Glossy*.
- *Is Transmission*: Not supported. Same as *Is Glossy*.
- *Ray Length*: Distance from the camera to the shading point.
- *Ray Depth*: Indicates the current bounce when baking the light cache.
- *Diffuse Depth*: Same as Ray Depth but only when baking diffuse light.
- *Glossy Depth*: Same as Ray Depth but only when baking specular light.
- *Transparent Depth*: Not supported. Defaults to 0.
- *Transmission Depth*: Not supported. Same as *Glossy Depth*.
user: Explain GeometryNodeDuplicateElements(GeometryNode) in complete detail according to the official Blender documentation.

assistant: # GeometryNodeDuplicateElements(GeometryNode)

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

*class* bpy.types.GeometryNodeDuplicateElements(*GeometryNode*)
:   Generate an arbitrary number copies of each selected input element

    domain
    :   Which domain to duplicate

        Type:
        :   enum in [`'POINT'`, `'EDGE'`, `'FACE'`, `'SPLINE'`, `'LAYER'`, `'INSTANCE'`], default `'POINT'`

    *classmethod* is_registered_node_type()
    :   True if a registered node type

        Returns:
        :   Result

        Return type:
        :   boolean

    *classmethod* input_template(*index*)
    :   Input socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *classmethod* output_template(*index*)
    :   Output socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *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
user: What is Expressions and how is it used in Blender Python scripting?

assistant: Expression
:   A text field where you can enter an arbitrary Python expression that refers to
    *Driver Variables* by their names.

    The expression has access to a set of standard constants and math functions from `math`,
    `bl_math` and other modules, provided in the *Driver Namespace*. For an example of adding
    a custom function to the namespace, see the [driver namespace example](workflow_examples.html#driver-namespace).

    For performance reasons it is best to use the [Simple Expressions](#simple-expressions) subset as much as possible.

Use Self
:   If this option is enabled, the variable `self` can be used for drivers to reference their own data.
    Useful for objects and bones to avoid having creating a *Driver Variable* pointing to itself.

    Example: `self.location.x` applied to the Y rotation property of the same object
    will make the object tumble when moving.

    Note that dependencies for properties accessed via `self` may not be fully tracked.

### Simple Expressions

Blender can evaluate a useful subset of Python driver expressions directly,
which significantly improves performance, especially on multi-core systems.
To take advantage of this, the driver expression must only use the following features:

Variable Names
:   Use only ASCII characters.

Literals
:   Floating-point and decimal integer.

Globals
:   `frame`

Constants
:   `pi`, `True`, `False`

Operators
:   `+`, `-`, `*`, `/`,
    `==`, `!=`, `<`, `<=`, `>`, `>=`,
    `and`, `or`, `not`, conditional operator/ ternary if

Standard Functions
:   `min`, `max`, `radians`, `degrees`,
    `abs`, `fabs`, `floor`, `ceil`, `trunc`, `round`, `int`,
    `sin`, `cos`, `tan`, `asin`, `acos`, `atan`, `atan2`,
    `exp`, `log`, `sqrt`, `pow`, `fmod`

Blender Provided Functions
:   `lerp`, `clamp`, `smoothstep`

Simple expressions are evaluated even when Python script execution is disabled.

When an expression outside of this subset is used, Blender displays a “Slow Python expression”
warning. However, as long as the majority of drivers use simple expressions, using a complex
expression in select few is OK.
user: What is Repeat History and how is it used in Blender Python scripting?

assistant: [image reference removed]

The Repeat History menu.

The *Repeat History* feature will present you a list of the last repeated actions,
and you can choose the actions you want to repeat.
It works in the same way as the Undo History, explained above,
but the list contains only repeated actions.
user: Show practical ways to work with FluidEffectorSettings(bpy_struct) in a Blender add-on or script – include code.

assistant: # FluidEffectorSettings(bpy_struct)

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

*class* bpy.types.FluidEffectorSettings(*bpy_struct*)
:   Smoke collision settings

    effector_type
    :   Change type of effector in the simulation

        - `COLLISION`
          Collision – Create collision object.
        - `GUIDE`
          Guide – Create guide object.

        Type:
        :   enum in [`'COLLISION'`, `'GUIDE'`], default `'COLLISION'`

    guide_mode
    :   How to create guiding velocities

        - `MAXIMUM`
          Maximize – Compare velocities from previous frame with new velocities from current frame and keep the maximum.
        - `MINIMUM`
          Minimize – Compare velocities from previous frame with new velocities from current frame and keep the minimum.
        - `OVERRIDE`
          Override – Always write new guide velocities for every frame (each frame only contains current velocities from guiding objects).
        - `AVERAGED`
          Averaged – Take average of velocities from previous frame and new velocities from current frame.

        Type:
        :   enum in [`'MAXIMUM'`, `'MINIMUM'`, `'OVERRIDE'`, `'AVERAGED'`], default `'OVERRIDE'`

    subframes
    :   Number of additional samples to take between frames to improve quality of fast moving effector objects

        Type:
        :   int in [0, 200], default 0

    surface_distance
    :   Additional distance around mesh surface to consider as effector

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

    use_effector
    :   Control when to apply the effector

        Type:
        :   boolean, default True

    use_plane_init
    :   Treat this object as a planar, unclosed mesh

        Type:
        :   boolean, default False

    velocity_factor
    :   Multiplier of obstacle velocity

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

    *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
user: What is Options and how is it used in Blender Python scripting?

assistant: High Quality
:   Uses more precise math to better determine the locations for the objects.
    In case of positive or negative bounding box alignment,
    if one or more of the selected objects have any rotation transformations
    (or delta rotation transformations), it is recommended to check *High Quality*
    so that their bounding box is calculated with precision for all three global axes.

Align Mode
:   The *Align Mode* control will define what part of the objects will be aligned:

    Centers:
    :   The objects centers.

    Positive Sides/Negative Sides:
    :   The positive or negative sides (on the global axes) of their respective bounding boxes.

Relative To
:   The *Relative To* control will let us choose to align the objects to:

    Active:
    :   The active object.

    Selection:
    :   The median point of the selection.

    3D Cursor:
    :   The current position of the 3D Cursor.

    Scene Origin:
    :   The global origin.

Align X, Y, Z
:   Chooses which axis to align the selected objects on.
user: Provide the full official documentation entry for Properties, preserving all code examples.

assistant: ### Import

Target
:   The motion capture data type.

    Armature:
    :   The bvh-file contains an animated rigged skeleton such as a walking motion capture.

    Object:
    :   The bvh-file contains a static (not animated) mesh object such as a character model.

#### Transform

Scale
:   Factor to increase the physical size of the BVH.

Rotation
:   Rotation order of the BVH.

Forward / Up
:   Since many applications use a different axis for pointing upwards, these are axis conversion for these settings,
    Forward and up axes – By mapping these to different axes you can convert rotations
    between applications default up and forward axes.

    Blender uses Y forward, Z up (since the front view looks along the +Y direction).
    For example, its common for applications to use Y as the up axis, in that case -Z forward, Y up is needed.

#### Animation

Start Frame
:   The start frame, in Blender, to start playback of the BVH animation.

Scale FPS
:   Scales the frame rate from the BVH file to the scene frame rate set in Blender,
    otherwise each BVH frame maps directly to a frame in Blender.

Loop
:   Cycles the animation playback.

Update Scene FPS
:   Set the scene’s frame rate to match the frame rate of the BVH file.

Update Scene Duration
:   Extend the scene’s duration to match the BVH’s duration.

### Export

#### Transform

Scale
:   Factor to increase the physical size of the BVH.

Rotation
:   Rotation order of the BVH.

Root Translation Only
:   Only write the translation animation channels for the root bone.

#### Animation

Start / End
:   Sets the range of animation to export to the BVH file.
user: Provide the full official documentation entry for Exr Codec Items, preserving all code examples.

assistant: # Exr Codec Items

NONE:
:   None.

    No compression.

ZIP:
:   ZIP.

    Lossless zip compression of 16 row image blocks.

PIZ:
:   PIZ.

    Lossless wavelet compression, effective for noisy/grainy images.

DWAA:
:   DWAA (lossy).

    JPEG-like lossy compression on 32 row image blocks.

DWAB:
:   DWAB (lossy).

    JPEG-like lossy compression on 256 row image blocks.

ZIPS:
:   ZIPS.

    Lossless zip compression, each image row compressed separately.

RLE:
:   RLE.

    Lossless run length encoding compression.

PXR24:
:   Pxr24 (lossy).

    Lossy compression for 32 bit float images (stores 24 bits of each float).

B44:
:   B44 (lossy).

    Lossy compression for 16 bit float images, at fixed 2.3:1 ratio.

B44A:
:   B44A (lossy).

    Lossy compression for 16 bit float images, at fixed 2.3:1 ratio.
user: How do I use GeometryNodeGizmoLinear(GeometryNode) in Blender? Include parameters, examples, warnings and best practices.

assistant: # GeometryNodeGizmoLinear(GeometryNode)

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

*class* bpy.types.GeometryNodeGizmoLinear(*GeometryNode*)
:   Show a linear gizmo in the viewport for a value

    color_id
    :   Type:
        :   enum in [Geometry Nodes Gizmo Color Items](bpy_types_enum_items/geometry_nodes_gizmo_color_items.html#rna-enum-geometry-nodes-gizmo-color-items), default `'PRIMARY'`

    draw_style
    :   Type:
        :   enum in [Geometry Nodes Linear Gizmo Draw Style Items](bpy_types_enum_items/geometry_nodes_linear_gizmo_draw_style_items.html#rna-enum-geometry-nodes-linear-gizmo-draw-style-items), default `'ARROW'`

    *classmethod* is_registered_node_type()
    :   True if a registered node type

        Returns:
        :   Result

        Return type:
        :   boolean

    *classmethod* input_template(*index*)
    :   Input socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *classmethod* output_template(*index*)
    :   Output socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *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
user: Explain GeometryNodeCurvesToGreasePencil(GeometryNode) in complete detail according to the official Blender documentation.

assistant: # GeometryNodeCurvesToGreasePencil(GeometryNode)

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

*class* bpy.types.GeometryNodeCurvesToGreasePencil(*GeometryNode*)
:   Convert the curves in each top-level instance into Grease Pencil layer

    *classmethod* is_registered_node_type()
    :   True if a registered node type

        Returns:
        :   Result

        Return type:
        :   boolean

    *classmethod* input_template(*index*)
    :   Input socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *classmethod* output_template(*index*)
    :   Output socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

        Return type:
        :   [`NodeInternalSocketTemplate`](bpy.types.NodeInternalSocketTemplate.html#bpy.types.NodeInternalSocketTemplate "bpy.types.NodeInternalSocketTemplate")

    *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
user: What is Usage and how is it used in Blender Python scripting?

assistant: Empties can serve as transform handles. Some examples of ways to use them include:

Parent object for a group of objects

An empty can be parented to any number of other objects.
This gives the user the ability to control a group of objects easily, and without affecting a render.

Target for constraints

An empty can also be used as a target for normal, or bone constraints.
This gives the user far more control; for instance,
a rig can easily be set up to enable a camera to point towards an empty using the *Track to* constraint.

Array offset

An empty can be used to offset an Array Modifier,
meaning complex deformations can be achieved by only moving a single object.

|  |  |
| --- | --- |
| ../_images/modeling_modifiers_generate_array_example-fractal-1.jpg   An example of an empty being used to control an array. | ../_images/modeling_empties_example-track-to-simple.png   An example of an empty being used to control the Track To constraint. |

Other common uses:

- Placeholders
- Rigging controls
- DOF distances
- Reference Images
user: What is Outputs and how is it used in Blender Python scripting?

assistant: Position
:   Closest location on the surface of the target mesh, or the closest point in the target point cloud
    in *Points* mode.

Distance
:   Distance (as floating-point value) from the source position to the closest location in the target.

Is Valid
:   Whether the sampling was successful. It can fail when the sampled group is empty.
user: Describe Primitives from the Blender manual or Python API, including usage steps and snippets.

assistant: [image reference removed]

Empty Display Types.

### Plain Axes

Displays as six lines, initially with one pointing in each of the +X, -X, +Y, -Y, +Z, and -Z axis directions.

### Arrows

Displays as arrows, initially pointing in the positive X, Y, and Z axis directions, each with a label.

### Single Arrow

Displays as a single arrow, initially pointing in the +Z axis direction.

### Circle

Displays as a circle initially in the XZ plane.

### Cube

Displays as a cube, initially aligned to the XYZ axes.

### Sphere

Displays as an implied sphere defined by three circles.
Initially, the circles are aligned, one each, to the X, Y, and Z axes.

### Cone

Displays as a cone, initially pointing in the +Y axis direction.

### Image

Empties can display images. This can be used to create reference images,
including blueprints or character sheets to model from.
The image is displayed regardless of the 3D display mode.

Empty Displays settings can be accessed from Properties ‣ Object Data ‣ Empty panel.

Offset X, Y
:   Offset the image origin
    (where 1.0 represents the width/height of the image).

    X=0.5, Y=0.5:
    :   Object origin at image center.

    X=0.0, Y=0.0:
    :   Object origin at image bottom, left.

    X=1.0, Y=1.0:
    :   Object origin at image top, right.

Depth
:   Default:
    :   Use normal depth behavior.

    Front:
    :   Always display on top of other objects.

    Back:
    :   Always display behind of other objects.

Side
:   Both:
    :   Display both the front and back of the empty.

    Front:
    :   Only display the front of the image.

    Back:
    :   Only display the back of the image.

Show in
:   Orthographic
    :   Show in orthographic view.

    Perspective
    :   Show in perspective view.

    Only Axis Aligned
    :   Only displays the image contents when the view is aligned with the object’s local axis.

Opacity
:   Blends the image with the background. The value slider adjusts the opacity of the image,
    changing how much of the image is blended with the background.
user: Describe NodeSocketStringFilePath(NodeSocketStandard) from the Blender manual or Python API, including usage steps and snippets.

assistant: # NodeSocketStringFilePath(NodeSocketStandard)

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

*class* bpy.types.NodeSocketStringFilePath(*NodeSocketStandard*)
:   String socket of a node

    default_value
    :   Input value used for unconnected socket

        Type:
        :   string, default “”, (never None, blend relative `//` prefix supported)

    links
    :   List of node links from or to this socket.

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

        (readonly)

    *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
user: What is GreasePencilSubdivModifier(Modifier) and how is it used in Blender Python scripting?

assistant: # GreasePencilSubdivModifier(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.GreasePencilSubdivModifier(*Modifier*)
:   Subdivide Stroke modifier

    invert_layer_filter
    :   Invert layer filter

        Type:
        :   boolean, default False

    invert_layer_pass_filter
    :   Invert layer pass filter

        Type:
        :   boolean, default False

    invert_material_filter
    :   Invert material filter

        Type:
        :   boolean, default False

    invert_material_pass_filter
    :   Invert material pass filter

        Type:
        :   boolean, default False

    layer_pass_filter
    :   Layer pass filter

        Type:
        :   int in [0, 100], default 0

    level
    :   Level of subdivision

        Type:
        :   int in [0, 16], default 1

    material_filter
    :   Material used for filtering

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

    material_pass_filter
    :   Material pass

        Type:
        :   int in [0, 100], default 0

    open_influence_panel
    :   Type:
        :   boolean, default False

    subdivision_type
    :   Select type of subdivision algorithm

        Type:
        :   enum in [`'CATMULL_CLARK'`, `'SIMPLE'`], default `'CATMULL_CLARK'`

    tree_node_filter
    :   Layer name

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

    use_layer_group_filter
    :   Filter by layer group name

        Type:
        :   boolean, default False

    use_layer_pass_filter
    :   Use layer pass filter

        Type:
        :   boolean, default False

    use_material_pass_filter
    :   Use material pass filter

        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
user: Show practical ways to work with Scale Envelope Distance in a Blender add-on or script – include code.

assistant: You can alter the size of the Bone Envelope volume by clicking on the body of the bone you want to alter,
`Ctrl`-`Alt`-`S` then drag your mouse left or right and the Bone Envelope volume will alter accordingly.

You can also alter the Bone Envelope volume by selecting the Bone you wish to alter and
then navigate to Properties ‣ Bone ‣ Deform ‣ Envelope ‣ Distance
then enter a new value into it.

Altering the Bone Envelope volume does not alter the size of the bone just the range
within which it can influence vertices of child objects.

Envelope scaling example.

|  |  |
| --- | --- |
| ../../../../_images/animation_armatures_bones_editing_transform_scaling-bone-radius-3.png   A single bone selected in Envelope visualization. | ../../../../_images/animation_armatures_bones_editing_transform_scaling-bone-radius-5.png   Its envelope distance scaled. |

“Bone size” scaling example.

|  |  |  |
| --- | --- | --- |
| ../../../../_images/animation_armatures_bones_editing_transform_scaling-bone-size-1.png   A single “default size” bone selected in B-Bone visualization. | ../../../../_images/animation_armatures_bones_editing_transform_scaling-bone-size-2.png   Its envelope distance scaled. | ../../../../_images/animation_armatures_bones_editing_transform_scaling-bone-size-3.png   The same armature in Object Mode and B-Bone visualization, with Bone.004’s size scaled up. |
user: Describe KeyingSetPaths(bpy_struct) from the Blender manual or Python API, including usage steps and snippets.

assistant: # KeyingSetPaths(bpy_struct)

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

*class* bpy.types.KeyingSetPaths(*bpy_struct*)
:   Collection of keying set paths

    active
    :   Active Keying Set used to insert/delete keyframes

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

    active_index
    :   Current Keying Set index

        Type:
        :   int in [-inf, inf], default 0

    add(*target_id*, *data_path*, *\**, *index=-1*, *group_method='KEYINGSET'*, *group_name=''*)
    :   Add a new path for the Keying Set

        Parameters:
        :   - **target_id** ([`ID`](bpy.types.ID.html#bpy.types.ID "bpy.types.ID")) – Target ID, ID data-block for the destination
            - **data_path** (*string**,* *(**never None**)*) – Data-Path, RNA-Path to destination property
            - **index** (*int in* *[**-1**,* *inf**]**,* *(**optional**)*) – Index, The index of the destination property (i.e. axis of Location/Rotation/etc.), or -1 for the entire array
            - **group_method** (enum in [Keyingset Path Grouping Items](bpy_types_enum_items/keyingset_path_grouping_items.html#rna-enum-keyingset-path-grouping-items), (optional)) – Grouping Method, Method used to define which Group-name to use
            - **group_name** (*string**,* *(**optional**,* *never None**)*) – Group Name, Name of Action Group to assign destination to (only if grouping mode is to use this name)

        Returns:
        :   New Path, Path created and added to the Keying Set

        Return type:
        :   [`KeyingSetPath`](bpy.types.KeyingSetPath.html#bpy.types.KeyingSetPath "bpy.types.KeyingSetPath")

    remove(*path*)
    :   Remove the given path from the Keying Set

        Parameters:
        :   **path** ([`KeyingSetPath`](bpy.types.KeyingSetPath.html#bpy.types.KeyingSetPath "bpy.types.KeyingSetPath"), (never None)) – Path

    clear()
    :   Remove all the paths from the Keying Set

    *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
user: What is References and how is it used in Blender Python scripting?

assistant: |  |  |
| --- | --- |
| - [`ClothModifier.point_cache`](bpy.types.ClothModifier.html#bpy.types.ClothModifier.point_cache "bpy.types.ClothModifier.point_cache") - [`DynamicPaintSurface.point_cache`](bpy.types.DynamicPaintSurface.html#bpy.types.DynamicPaintSurface.point_cache "bpy.types.DynamicPaintSurface.point_cache") - [`ParticleSystem.point_cache`](bpy.types.ParticleSystem.html#bpy.types.ParticleSystem.point_cache "bpy.types.ParticleSystem.point_cache") | - [`RigidBodyWorld.point_cache`](bpy.types.RigidBodyWorld.html#bpy.types.RigidBodyWorld.point_cache "bpy.types.RigidBodyWorld.point_cache") - [`SoftBodyModifier.point_cache`](bpy.types.SoftBodyModifier.html#bpy.types.SoftBodyModifier.point_cache "bpy.types.SoftBodyModifier.point_cache") |