> For the complete documentation index, see [llms.txt](https://technical.geometrygym.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://technical.geometrygym.com/rhino-grasshopper/structuralanalysis/geometry-gym-model/common-attributes/nodes.md).

# Nodes

## Structural Node

**`gg###CreateOrFindNode`**

Structural nodes can be created parametrically through providing a set of 3d points and assigning structural node attributes.

### Node Attributes

**`gg###NodeAtts`**

Node attributes allow you to set specific structural attributes to the node such as boundary conditions incl restraints and supports (spring supports).

#### Low Node ID

By setting a low node ID you can set what the lowest ID number that the node can obtain.

You may want to use this when defining Nodes at different levels of a building.

#### Support

**`gg###Support`**

#### Restraint

**`gg###Restraint`**

### Working with Structural Nodes

Structural nodes defining the ends of curve elements will be automatically detected and generated in the structural model when exported.

{% hint style="warning" %}
You only need to explicitly create a structural node when defining a restraint or load to a structural model.
{% endhint %}

#### Applying Node Constraints

#### Node coincident tolerance

When building a structural model a list of structural nodes are assembled. If structural nodes are set explicitly or beam end nodes are coincident a tolerance can be set to collapse these nodes into a single structural node. The plug-in will automatically set nodes which are explicitly set first and then test for coincident beam nodes.

You can force the creation of a coincident node (i.e one node on top of another by setting the node tolerance input to **zero**. If no input for tolerance is provided than the plug-in will automatically select the tolerance of the rhino document.
