# Condition Editor

The **Condition Editor** is a visual editor for defining conditional logic that branches the processing flow based on input devices and the solution state. Conditional logic is managed in **Condition Blocks**. Within a Condition Block, you define one or more **ConditionOutput**s that represent the evaluation results (true/false). ConditionOutputs can be referenced from Condition nodes in the <span style="color: rgb(230, 126, 35);">**[Action Chain Editor](https://doc316en.candera.eu/books/view-editor/page/action-chain-editor)**</span>. They can also be assigned to the Condition property of behaviors and Fusion, allowing the same conditional logic to be reused in multiple places across the solution.

### Tool UI overview

#### Panel layout

Double-click any **Condition Block** in **Solution Explorer** to open the **Condition Editor** panel. On this panel, you build a logical expression by placing and connecting **Check / AND / OR / NOT** nodes. Condition Blocks you create here can be referenced from the <span style="color: rgb(230, 126, 35);">[**Action Chain Editor**](https://doc316en.candera.eu/books/view-editor/page/action-chain-editor)</span>.

<p class="callout info">By default, the **Condition Editor** panel is hidden. To display it, choose **View &gt; View Editor &gt; Condition Editor** from the menu bar.</p>


<div drawio-diagram="8823"><img src="https://doc316en.candera.eu/uploads/images/drawio/2025-12/drawing-4-1764895088.png" alt=""/></div>

On the **Condition diagram**, you can place and connect nodes via the context menu. When you open a **Condition Block** in the Condition Editor, a default ConditionOutput node is placed automatically on the diagram. ConditionOutputs can be added or deleted as needed. The properties of nodes placed on the diagram can be edited in the **Properties panel**.

<p class="callout info">A **ConditionOutput** node represents the evaluation result (true/false) of the logical expression defined in the **Condition Block**. The logical expression you create in the Condition Editor is stored under each **ConditionOutput** node name and can be referenced from the **Action Chain Editor**. The same ConditionOutput can also be assigned to the Condition property of behaviors and **Fusion**.</p>

<table border="1" id="bkmrk-%E3%83%8E%E3%83%BC%E3%83%89%E7%A8%AE%E5%88%A5-%E8%AA%AC%E6%98%8E-add-check-%E6%9D%A1" style="width: 800px; height: 139.517px; border-collapse: collapse;"><thead><tr style="height: 29.7017px;"><th style="width: 27.2767%; height: 29.7017px; background-color: rgb(35, 111, 161);"><span style="color: rgb(255, 255, 255);">**Node type**</span></th><th style="width: 72.7124%; height: 29.7017px; background-color: rgb(35, 111, 161);"><span style="color: rgb(255, 255, 255);">**Description**</span></th></tr></thead><tbody><tr style="height: 63.3097px;"><td style="width: 27.2767%; height: 63.3097px;">Add Check</td><td style="width: 72.7124%; height: 63.3097px;">Select a **Check** node that serves as the entry point for configuring the condition expression.

Use this menu to select the **Condition behavior** or **Behavior Building Block** (including Condition behaviors) that you want to use as the starting point. You can also create it by dragging a Condition behavior from the toolbox onto the diagram.

</td></tr><tr style="height: 46.5057px;"><td style="width: 27.2767%; height: 46.5057px;">Add AND / OR / NOT</td><td style="width: 72.7124%; height: 46.5057px;">These are logical operator nodes that combine multiple **Check** nodes and sub-conditions. Use **AND / OR / NOT** to express composite conditions.</td></tr><tr><td style="width: 27.2767%;">Add OUTPUT</td><td style="width: 72.7124%;">Add a new **ConditionOutput** node.</td></tr><tr><td style="width: 27.2767%;">Copy / Cut / Delete / Paste</td><td style="width: 72.7124%;">This menu becomes available when a node on the diagram is selected. It lets you **copy**, **cut**, **delete**, and **paste** the selected node.</td></tr></tbody></table>

### Basic operations

#### Create a new Condition Block

Follow these steps to create a new **Condition Block**:

1. In **Solution Explorer**, open the context menu at the desired location.
2. Choose **Add &gt; New Item**.
    
    
    - The **Add New Item** dialog opens.
3. In the dialog’s left pane, select **Condition Block**, then click **OK**.
    
    
    - The value you enter in **Name** becomes the new Condition Block’s name.
    - The [<span style="color: rgb(230, 126, 35);">**Category** setting determines</span>](#bkmrk-create-a-new-conditi) which category (location) the Condition Block is registered under in the toolbox.
4. A new **Condition Block** is created in **Solution Explorer**.
    
    
    - At the same time, the Condition Block you created is added to **Behaviors** in the **toolbox**.
    - For details on where it is placed, see <span style="color: rgb(230, 126, 35);">[Reusing a Condition Block](#bkmrk-reusing-a-condition-)</span> below.
5. Double-click the newly created Condition Block to launch the **Condition Editor**.
    
    
    - On the Condition Editor panel diagram, there is a ConditionOutput node named **Condition**.

#### Reusing a Condition Block

The created ConditionBlock and each ConditionOutput within the ConditionBlock are registered in the toolbox. By dragging and dropping a ConditionBlock or ConditionOutput from the toolbox, you can reuse the same condition logic in the following places:

- **Condition Editor**: Place it as a Check node that references an existing ConditionOutput.
- **Action Chain Editor**: Assign it to the **Condition** property of a Condition node.
- **Behaviors/Fusion**: Assign the ConditionOutput to the **Condition** property of the corresponding behavior.

Also, where a **Condition Block** appears within the toolbox’s Behaviors categories depends on whether the Category property is set.

- If **Category is set**: A category with the same name is added under the toolbox’s Behaviors, and the Condition Block is shown there.
- If **Category is not set**: The Condition Block is automatically shown under an appropriate category in the toolbox’s Behaviors, depending on the conditions you configured.

To check which category it appears in, select the target Condition Block in the Solution Explorer, then see **General &gt; Category** in the Properties panel.

<p class="callout info">For the created Condition Block and the **ConditionOutput** nodes placed within the Condition Block, you can use <span style="color: rgb(230, 126, 35);">[the standard operations](https://doc316en.candera.eu/link/46#bkmrk-copy%2C-clone%2C-rename-)</span> in **Solution Explorer** to copy, duplicate, delete, and rename them.</p>

#### Creating a Condition diagram

1. In **Solution Explorer**, double-click any Condition Block.
    
    
    - The **Condition Editor** panel opens.
    - On the panel, there is a ConditionOutput node named **Condition**.
2. On the right pane, open the context menu, choose **Add Check**, and select the Condition behavior to use.
    
    
    - It is placed on the diagram as a **Check** node.
3. Place **AND / OR / NOT** nodes as needed and build the logical expression.
4. As needed, add **AND / OR / NOT** nodes and connect the **Check** nodes to construct the expression.
5. Connect the **ConditionOutput** node at the end of the diagram.
    
    
    - Logical expressions created in the Condition Editor are saved under the name of each ConditionOutput node and can be referenced from Condition nodes in the Action Chain Editor.
    - The same ConditionOutput can also be assigned to the **Condition** property of the corresponding behaviors/Fusion for reuse.