# Functions

The **Preselect** add-on is primarily made to be a support tool for the [**Random Flow**](/add-ons/random-flow.md) add-on. This makes it easier to select groups of faces in flat areas of the mesh to use the randomization operators.

There are no menus but you can engage with the add-on using the hotkeys for the 3 select/deselect functionality.

The add-on can work both in edit and object mode and will briefly display drawing overlays in object mode to show you what faces are selected or deselected.

{% hint style="info" %}
Preselect can select faces from geometry provided by the mirror modifier but the preview drawing in object mode will be from the real geometry side.&#x20;
{% endhint %}

{% hint style="danger" %}
In rare occasions, the face capture will not work in edit mode. In this case, just go to object mode and do the selection there. Version 1.5 solves this but not tested for all scenarios.
{% endhint %}

{% hint style="danger" %}
Preselect can sometimes not work on objects with children or as parent. The only way to resolve this is to get rid of those relationships using the Alt+P hotkey.
{% endhint %}

<figure><img src="/files/3zO98Hehs6OLKuf6clGZ" alt=""><figcaption></figcaption></figure>

In the add-on preferences, you can find all the operators with its corresponding hotkey. You can change this to your liking but avoid clicking the x button. The UI template code for this is unstable at times.

### Linked Flat Faces

Can be activated using the **Shift F** hotkey.

This functionality copies Blender's native **Linked Flat Faces** operator. It selects all faces connected to the currently selected face(s) and expands the selection until it encounters an edge where a sharpness threshold will determine if the selection should continue.

In the case of the add-on, it utilizes ray tracing to determine the active face by detecting a face located beneath the mouse cursor. Once acquired, the script uses this face as the active face.

<figure><img src="/files/nBH0zyOMbwy5KNKETLzy" alt=""><figcaption><p>Figure 1</p></figcaption></figure>

In Figure 1, the mesh is shown in edit mode with no selection then in object mode where the add-on is used using the **Shift F** hotkey. A brief drawing overlay was shown with the wireframes in blue showing you what faces were selected whereupon the mesh is switched back to edit mode to display the selection.

{% hint style="info" %}
*Just a reminder, the add-on works for both edit and object mode. The example shown in Figure 1 is just to demo the add-on functionality in object mode.*
{% endhint %}

<figure><img src="/files/Jci8urkZBWw9DZ0TiY8V" alt=""><figcaption><p>Figure 2</p></figcaption></figure>

By default,  the operator will use a sharpness threshold to delimit the expansion of the selection. This typically refers to edge faces that transition sharply in an angular fashion like the sharp edges of a cube.

<figure><img src="/files/YsZPdsEEvMepB3Gtjamw" alt=""><figcaption><p>Figure 3</p></figcaption></figure>

Using the **Sharp Limit** toggle will further delimit the selection using faces with marked sharp edges as boundaries. In the newer version, a new toggle called **Seam Limit** has been added that lets you delimit the selection using edges with seams instead. Both can be toggle on and delimit at the same time.

{% hint style="info" %}
*If you are wondering about Blender's weird disappearing redo panel, head over to this page:* [*Redo Panels*](/add-ons/other-information/redo-panel.md)
{% endhint %}

The **Sharpness** property lets you modify the sharpness angle threshold so the selection can expand into sharper face angles in edges.

The **Use Xray** toggle let's you see the selected/deselected faces overlay from behind the mesh or objects that are in front of the active mesh.

<figure><img src="/files/WQue9LZgjWCIY2Qqux5V" alt=""><figcaption><p>Figure 4</p></figcaption></figure>

If the face detected under the mouse cursor is selected, the operation deselects the faces instead using the hotkey and will show you a red overlay as shown in Figure 4.&#x20;

{% hint style="info" %}
*The deselect behaviour is the same for all hotkey activated functionality in the add-on.*
{% endhint %}

### Linked

Can be activated using the **Ctrl Shift F** hotkey.

This functionality copies the native **Linked** operator in Blender. It selects all faces connected to the active face or selected faces and compared to **Linked Flat Faces** is only delimited by boundary or terminator edges. This makes it easier to select individual face groups or islands in the mesh.

<figure><img src="/files/AD2f0TAu4N2jidpfyilu" alt=""><figcaption><p>Figure 5</p></figcaption></figure>

Deselecting should run the same way as stated earlier. If the face obtained underneath the mouse cursor is selected, then the function will deselect the faces using its specific algorithm.

<figure><img src="/files/wANhLIBDmbx5yALueBGH" alt=""><figcaption><p>Figure 6</p></figcaption></figure>

{% hint style="info" %}
*The drawing overlay in object mode will show your currently selected faces in blue and deselected faces in red*.
{% endhint %}

<figure><img src="/files/S3NcqonQGf5AfOFC1sWA" alt=""><figcaption><p>Figure 7</p></figcaption></figure>

You can use the **Sharp Limi**t and **Seam Limit** toggle to delimit the selection on edges with seams or marked sharp.

The redo panel also has the **Use Xray** parameter which lets see the drawing overlays from behind the mesh.

<figure><img src="/files/4nXIgAOUgfbOT2YkOBQq" alt=""><figcaption><p>Figure 8</p></figcaption></figure>

In addition, using the **Delete Linked** toggle will remove the selected face islands from the mesh. This helps by removing certain details that you don't want from the resulting randomization. To disable this, select something using the hotkey and call the redo panel using the F9 hotkey and turn off the toggle.

### Select Similar Coplanar

Can be activated using the **Ctrl Shift Alt F** hotkey.&#x20;

This copies the **Select Similar: Coplanar** command in Blender that can be accessed using the **Shift G** hotkey. It selects all the faces that lie on the same plane as the active face.

<figure><img src="/files/CUrznReCMwsiz4XmmHLG" alt=""><figcaption><p>Figure 7</p></figcaption></figure>

You can use the F9 hotkey to show the redo panel right after using this functionality to show the redo properties.

<figure><img src="/files/j1QfMNWWccPPB21x2XPg" alt=""><figcaption><p>Figure 8</p></figcaption></figure>

Changing the threshold value will change the width of the plane where the faces can be selected.

<figure><img src="/files/pz74WIprKIhto0YTM0F3" alt=""><figcaption><p>Figure 9</p></figcaption></figure>

{% hint style="warning" %}
Do not use this on hires topology because it can result in a freeze. Future updates may add further optimizations but for now be careful.
{% endhint %}

### Deselect All

Can be activated using the **Ctrl Shift A** hotkey.

This deselects all the faces in the mesh. You do not to hover the mouse cursor over any faces for this one. It will just simple deselect all the faces in the active object.

<figure><img src="/files/zoo9uWbtPtXOFopNGDoV" alt=""><figcaption><p>Figure 10</p></figcaption></figure>

Using this functionality first before selecting anything using the earlier select operators ensures that there are no stray or unwanted selections when you finally use [**Random Flow**](/add-ons/random-flow.md).

### Select All

Can be activated using the **Ctrl Shift Alt A** hotkey.

This is the inverse of the above operator and will select every face in the mesh instead.

<figure><img src="/files/iSF6GFPOdomPgy7EIR5a" alt=""><figcaption><p>Figure 11</p></figcaption></figure>

***

{% hint style="info" %}
*The raytracing used to detect faces under the mouse will only work on the active mesh and not on others.*
{% endhint %}

You can use this even if you don't have [**Random Flow**](/add-ons/random-flow.md) but remember that it is primarily created for this add-on.

{% embed url="<https://www.patreon.com/c/blenderguppy>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.blenderguppy.com/add-ons/preselect/functions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
