# Select Data

## Overview

![](https://2631170186-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MIspkFTPkuGkv4UgQGs-887967055%2Fuploads%2Fgit-blob-3999ace814ce0f54ab38b6627b9e6acd8f00b381%2Fnode-selectdata.png?alt=media)

When you want to evaluate a **Data Value** in one or more different ways, depending on some conditions, **SelectData** is used to converge **Branches** of **Logic** into a single **Branch**, regardless of how the **Data** was calculated.

## Attributes

| Attribute   | Type          | Description                                                                   |
| ----------- | ------------- | ----------------------------------------------------------------------------- |
| `Data Type` | **Drop-down** | The type of data that will be plugged into the `Input` **Sockets**.           |
| `Count`     | **Int**       | The number of **Input Pulses** and **Data Values** the **Node** will receive. |

## Inputs

| Input       | Type                                          | Description                                                          |
| ----------- | --------------------------------------------- | -------------------------------------------------------------------- |
| `Pulse [n]` | **Pulse**                                     | The **Pulse** corresponding to the **Data** in the **Socket** below. |
| `Input [n]` | *Defined in the* `Data Type` ***Attribute***. | The **Data Value** corresponding to the above **Pulse**.             |

## Outputs

| Output             | Type                                          | Description                                                                                                                            |
| ------------------ | --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| *Pulse Output* (►) | **Pulse**                                     | A standard **Output Pulse**, to move onto the next **Node** along the **Logic Branch**, once this **Node** has finished its execution. |
| `Output`           | *Defined in the* `Data Type` ***Attribute***. | The `Input` **Value** corresponding to whichever `Pulse` triggered the execution of the **Node**.                                      |

## Examples

Below is a very simple example of the usage of the **SelectData Node**. We have two **OnKeyPress Nodes**, which increment/decrement the **Value** of a **Variable**, when the `Up` / `Down` arrows are pressed. By using **SelectData**, we only need to assing the **Value** once.

![](https://2631170186-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MIspkFTPkuGkv4UgQGs-887967055%2Fuploads%2Fgit-blob-3595a670844b1c2a20f23285dda04ca6ef6d5df7%2Fexample-selectdata.png?alt=media)
