---
title: "Conditional Group"
description: "This article explains how to set up condition-based control in BeeGraphy, allowing multiple geometry options to exist within a single model while selectively activating only one at a time."
url: https://help.beegraphy.com/en/articles/107-conditional-group
collection: "Tutorial"
updated: 2026-02-02
language: en
---

# Conditional Group

This article explains how to set up condition-based control in BeeGraphy, allowing multiple geometry options to exist within a single model while selectively activating only one at a time.

**Conditional Group** helps structure complex parametric definitions in **BeeGraphy** by allowing geometry and parameters to be organized into clear, selectable sections. When a Conditional Group is used, only the parameters related to the currently active condition are shown and evaluated in the Demo and Configurator, while all others remain hidden.

For example, in an architectural model of a house, each room can be assigned to a condition. Selecting a specific room activates only that section of the geometry and exposes only its related parameters. This makes it easier to edit without visual or interface clutter. This approach improves clarity, simplifies interaction, and allows users to focus on one part of the model at a time.

## How to make Conditional Groups?

![](https://staticfiles.gleap.io/gattachments/GfQVbfCRuGYHDOAtOzSh8QcMipptBVFupS1kpNAQJ80yoVRA6iibjmQs4F8lXeYa18miOQEXNxU.png)

This workflow explains how to **switch between multiple design conditions** (Condition 1, 2, 3, etc.). The idea is simple: **you choose a condition → BeeGraphy activates only the matching geometry stream.**

### 1\. Group geometry by condition

Start by opening your model in the BeeGraphy Editor.

-   Select all components that belong to **one logical condition**
    
-   Create a **Group** from these components.
    
-   Repeat this for every condition (Condition 1, Condition 2, Condition 3).
    

Think of each group as a _self-contained option_ that should appear only when its condition is active.

![](https://staticfiles.gleap.io/gattachments/lOMSY7aVMUNMbTaapLPLLT2KoLTD471eMR9zzV0hT8kvMSPl5f4JTY0bUaHeeYLQNQDUKPTcLLN.png)

![](https://staticfiles.gleap.io/gattachments/vk99dcjlD6JPP9tK5KuAcIBt86yL7FoYLS2Cdpp0PTNdwJgZ3hVX4SHmjnRXxt63HYnJXN6USHa.png)

### 2\. Add a **Select Node** (Condition Selector)

Now we create the control that lets users choose between conditions.

-   Add a **Select Node**.
    
-   In the node:
    
    -   Add numeric values (1,2,3,…).
        
    -   Set the **Label** of each value to the condition name (for example: _Sides_, _Design_, or _Base_)
        

![](https://staticfiles.gleap.io/gattachments/bcf7URp566o7zhZ4tmt4OJHu8dpdL4FSv6dupfxrBfMBt9wfF3r8fMTyFCEnCIQ4ABKN70teRAp.png)

![](https://staticfiles.gleap.io/gattachments/EeASpCrksg1ZMAUAt5EQdOHwm25zXamtqx3JnlCLWpHlXfODmmFfEnj5R7pH7asl5fek9KCtBV3.png)

### 3\. Use **Stream Filter** + **Gate**

-   Add a **Stream Filter** node.
    
-   Connect the geometry streams (from grouped conditions) to the Stream Filter.
    
-   Connect the Stream Filter output into a **Gate** node.
    

At this stage, **all conditions still exist**, but they are passing through a controlled pipeline.

![](https://staticfiles.gleap.io/gattachments/TYv8BFMOCSJ7XNy1CSHZs2py8OaIIXXRDVtIRS3QGDSBJ5eNIogTDJtfQqFSlsq1xvIOsIC6oN4.png)

### 4\. Convert condition label using **String to Number**

Because the selected condition is stored as text:

-   Add a **StringtoNumber** node.
    
-   Connect the output of the **Select Node** to it.
    

This assigns a **numeric value** (1, 2, or 3) to the selected condition, which allows numeric comparison later.

### 5\. Add **Equality Nodes** (Condition Checks)

Now we check _which condition is currently active_.

-   Add an **Equality** node for each condition.
    
-   Connect the output of **StringtoNumber** to the first input (A) of all Equality nodes.
    
-   For the second input (B)
    
    -   Condition 1 → set value to 1
        
    -   Condition 2 → set value to 2
        
    -   Condition 3 → set value to 3
        

The output is a **True / False** signal.

![](https://staticfiles.gleap.io/gattachments/1DS4AbfUmnIDxomy5Snfbnau2maUz3hm3EOsFDvRck1JMOSVqCwDd9v4TVmrKImyBlMqGkdpLPj.png)

### 6\. Add **If Condition Nodes**

-   Add an **If Condition** node for each condition.
    
-   Rename each node clearly (for example: _Sides_, _Design_, or _Base_)) for better readibility.
    
-   Connect the output of the corresponding Equality node to it.
    

At this point, all conditions remain in the model, but how they pass through the system is now regulated.

![](https://staticfiles.gleap.io/gattachments/PKOZEfnEITxX5UB7whuMhcBXMUEh5ZzWSkFkpPK34S7qYQSiJBI1v217QDTwGJcbCG4IfV0CWhw.png)

### 7\. Assign parameters to the condition group

Once the groups are created in **Step 1**, the next step is to control **which parameters appear for each condition**.

-   Open the group you created earlier.
    
-   In the **Condition** dropdown, select the corresponding condition (for example: _Sides_, _Design_, or _Base_).
    
-   Place only those parameters inside the group that you want to be visible and editable for that selected condition.
    

Each group now acts as a **conditional container**:

-   When a condition is active, only the parameters assigned to that group are shown.
    
-   When the condition is inactive, its parameters remain hidden.
    

![](https://staticfiles.gleap.io/gattachments/2UhwoPlNYtNcis4qsQo4XsgG0LWw6CvxgzEv6s08AydKpplCIXoQL5BS6PO6B82jHisr8C4dWjo.png)

![](https://staticfiles.gleap.io/gattachments/69aLN3pJpW9Oh0CYaGXJOqseuvwjUs7D1NpILaK0r4l9v7lggKP9UtKo3TkDVaNqbV2YrXSfLWX.png)

### 8\. Add a second **Stream Filter**

-   Add another Stream Filter node. This Stream Filter is used to **match geometry with its condition**.
    
    ![](https://staticfiles.gleap.io/gattachments/Bq1B1mSZedxEuGDYpbDejQ1nWJ2xm7AI2EWvwJWQeEBNjOShQwcR4MOP6wAoF1tquOAULMwK3f9.png)
-   For each condition:
    
    -   Connect each Gate input port with the corresponding Equality.
        

![](https://staticfiles.gleap.io/gattachments/cNy7sTP8d8EyT4HvGGyEZejPl3rPTmY49L4g8cyg0FxWWpTfAOO7riEw1zAtx06HBUKVCUPHkCf.png)

-   Connect the corresponding Equality output to the **second input** of that Stream Filter.
    

**What happens here?**  
Only the geometry whose condition evaluates to **True** is allowed to pass. All other geometry streams are blocked.

![](https://staticfiles.gleap.io/gattachments/CmC2sVLFwLB7gNluq1up0t4eeojSdCF7oHsg4SLfvJc0lW2QzG0Z6pS5lP7XvTNbCGIRn7pFtIj.png)

### 8\. View results in **Demo Mode**

Now switch to **Demo Mode**.

-   Use the Select Node to choose a condition.
    
-   Instantly, only the geometry linked to that condition appears.
    
-   Materials, outputs, and parameters update live.
    

This creates a **single model with multiple behaviors**, controlled by one clean parameter.

![](https://staticfiles.gleap.io/gattachments/htxABcH4459svig8iP0R8wIlrt0XvgYAuM2WQa8MWAgzXPKSLkU5i4ZnoXKKuXma0JiUczjt7W8.png)

This model is provided for interaction. You can duplicate the script and experiment independently to better understand the setup. [Click here](https://beegraphy.com/market/product/parametric-basket-conditional-group-f22).

[

Dynamic Group

Learn how to generate multiple geometry variations from the same parameters and display them together.

](https://help.beegraphy.com/en/articles/106-dynamic-group.md)

To try Conditional & Dynamic Grouping together: [Click Here.](https://beegraphy.com/market/product/dynamic-and-conditional-group-873)
