# SceneNode \ Attributes

These event nodes watch an object and fire automatically the moment one of its **attributes** changes — so you can react when an attribute is added, edited, or removed without having to keep checking for it yourself. They pair naturally with the **Set Node Attribute** and **Remove Node Attribute** nodes, which are what usually make these events fire.

Each event watches the object you connect to its **SceneNode** input. When it fires, it hands you the object that changed along with the **Category** and **Name** of the attribute involved, so you know exactly what happened. Leave the **Enable** input on to keep watching, or turn it off to pause.

### ![Node_Attribute_Added.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-node-attribute-added.png) Node Attribute Added

Fires automatically the moment a brand-new attribute is added to an object.

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/SPvimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/SPvimage.png)

#### What it does

The **Node Attribute Added** event node continuously monitors the targeted SceneNode and activates whenever a completely new attribute is attached to it. This event is typically used in conjunction with **Set Node Attribute nodes** to trigger subsequent actions. Once activated, it outputs the affected SceneNode along with the specific Category and Name of the newly created attribute.

#### Inputs

<table id="bkmrk-port-type-what-to-co"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Enable**</td><td style="white-space: nowrap;">True / false</td><td>Turns the watch on or off. It is on by default; set it to `false` to pause watching and back to `true` to resume.</td></tr><tr><td style="white-space: nowrap;">**SceneNode**</td><td style="white-space: nowrap;">Scene node</td><td>The object you want to watch.</td></tr></tbody></table>

#### Outputs

<table id="bkmrk-port-type-what-you-g"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires each time a new attribute is added to the object. Wire the next node here to react — this is what starts the chain.</td></tr><tr><td style="white-space: nowrap;">**SceneNode**</td><td style="white-space: nowrap;">Scene node</td><td>The object the change happened on.</td></tr><tr><td style="white-space: nowrap;">**Category**</td><td style="white-space: nowrap;">Text</td><td>The category the affected attribute belongs to.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The name of the affected attribute.</td></tr></tbody></table>

#### Example

<table id="bkmrk-scenenode-input-the-"><tbody><tr><td style="white-space: nowrap;">**SceneNode** input</td><td>the `<Forklift>` object</td></tr><tr><td style="white-space: nowrap;">**Execute** output</td><td>fires when an attribute is added to the forklift</td></tr><tr><td style="white-space: nowrap;">**SceneNode** output</td><td>the `<Forklift>` object</td></tr><tr><td style="white-space: nowrap;">**Category** output</td><td>`Maintenance`</td></tr><tr><td style="white-space: nowrap;">**Name** output</td><td>`inspected`</td></tr></tbody></table>

---

### ![Node_Attribute_Changed.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-node-attribute-changed.png) Node Attribute Changed

Fires automatically whenever the value of one of an object’s attributes changes.

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/Ciwimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/Ciwimage.png)

#### What it does

The **Node Attribute Changed** event node observes the targeted SceneNode and activates whenever the value of any of its existing attributes is modified. Once activated, the node outputs the affected SceneNode alongside the exact Category and Name of the altered attribute.

#### Inputs

<table id="bkmrk-port-type-what-to-co-0"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Enable**</td><td style="white-space: nowrap;">True / false</td><td>Turns the watch on or off. It is on by default; set it to `false` to pause watching and back to `true` to resume.</td></tr><tr><td style="white-space: nowrap;">**SceneNode**</td><td style="white-space: nowrap;">Scene node</td><td>The object you want to watch.</td></tr></tbody></table>

#### Outputs

<table id="bkmrk-port-type-what-you-g-0"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires each time one of the object’s attributes changes value. Wire the next node here to react — this is what starts the chain.</td></tr><tr><td style="white-space: nowrap;">**SceneNode**</td><td style="white-space: nowrap;">Scene node</td><td>The object the change happened on.</td></tr><tr><td style="white-space: nowrap;">**Category**</td><td style="white-space: nowrap;">Text</td><td>The category the affected attribute belongs to.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The name of the affected attribute.</td></tr></tbody></table>

#### Example

<table id="bkmrk-scenenode-input-the--0"><tbody><tr><td style="white-space: nowrap;">**SceneNode** input</td><td>the `<Forklift>` object</td></tr><tr><td style="white-space: nowrap;">**Execute** output</td><td>fires when one of the forklift’s attributes changes value</td></tr><tr><td style="white-space: nowrap;">**SceneNode** output</td><td>the `<Forklift>` object</td></tr><tr><td style="white-space: nowrap;">**Category** output</td><td>`Maintenance`</td></tr><tr><td style="white-space: nowrap;">**Name** output</td><td>`inspected`</td></tr></tbody></table>

---

### ![Node_Attribute_Removed.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/event-node-attribute-removed.png) Node Attribute Removed

Fires automatically the moment an attribute is removed from an object.

[![image.png](https://simlab-soft.com/help/uploads/images/gallery/2026-03/scaled-1680-/0Lcimage.png)](https://simlab-soft.com/help/uploads/images/gallery/2026-03/0Lcimage.png)

#### What it does

The **Node Attribute Removed** event node tracks the targeted SceneNode and activates the moment an existing attribute is deleted from the object. This event is typically used alongside the **Remove Node Attribute** node to initiate reactions to data clearance. Once activated, it outputs the affected SceneNode forward along with the specific Category and Name of the deleted attribute.

#### Inputs

<table id="bkmrk-port-type-what-to-co-1"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What to connect</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Enable**</td><td style="white-space: nowrap;">True / false</td><td>Turns the watch on or off. It is on by default; set it to `false` to pause watching and back to `true` to resume.</td></tr><tr><td style="white-space: nowrap;">**SceneNode**</td><td style="white-space: nowrap;">Scene node</td><td>The object you want to watch.</td></tr></tbody></table>

#### Outputs

<table id="bkmrk-port-type-what-you-g-1"><thead><tr><th style="white-space: nowrap;">Port</th><th style="white-space: nowrap;">Type</th><th>What you get</th></tr></thead><tbody><tr><td style="white-space: nowrap;">**Execute**</td><td style="white-space: nowrap;">Trigger</td><td>Fires each time an attribute is removed from the object. Wire the next node here to react — this is what starts the chain.</td></tr><tr><td style="white-space: nowrap;">**SceneNode**</td><td style="white-space: nowrap;">Scene node</td><td>The object the change happened on.</td></tr><tr><td style="white-space: nowrap;">**Category**</td><td style="white-space: nowrap;">Text</td><td>The category the affected attribute belongs to.</td></tr><tr><td style="white-space: nowrap;">**Name**</td><td style="white-space: nowrap;">Text</td><td>The name of the affected attribute.</td></tr></tbody></table>

#### Example

<table id="bkmrk-scenenode-input-the--1"><tbody><tr><td style="white-space: nowrap;">**SceneNode** input</td><td>the `<Forklift>` object</td></tr><tr><td style="white-space: nowrap;">**Execute** output</td><td>fires when an attribute is removed from the forklift</td></tr><tr><td style="white-space: nowrap;">**SceneNode** output</td><td>the `<Forklift>` object</td></tr><tr><td style="white-space: nowrap;">**Category** output</td><td>`Maintenance`</td></tr><tr><td style="white-space: nowrap;">**Name** output</td><td>`tempNote`</td></tr></tbody></table>