# 3.3.5: Beam-Joint Agent 🔷

![Fig. 3.3.5.1: Defining a hinge based on geometric relations using a “Beam-Joint Agent”-component](https://1646753513-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M9XteyGDAU3Odla53cC%2Fsync%2Fea68a4e05f770cc70a629df30e37b0d0a50e5c6e.png?generation=1591871185629129\&alt=media)

The **“Beam-Joint Agent”** creates hinges on beams based on geometric relations. Fig. 3.3.5.1 shows three different but equivalent possibilities for defining a joint. The element or the group of elements where the joint(s) shall be placed is set by providing a list of element identifiers at the **“AtElemsIds”** input-plug. Upon assembly, the beam-joint agent crawls around in the model and places hinges when one of the following conditions apply:

* The node on the at-element connects to an element whose identifier is listed in the **“ToElemIds”** input.
* The node on the at-element connects to a node which has a number listed in the **“ToNodeInd”** input.
* The node on the at-element lies on one of the geometric items supplied in **“ToGeom”**. This can be points, curves, planes, breps or meshes. The tolerance for two geometric items touching in space is **“LDist”** as defined on model assembly (see section [3.1.1](https://manual-1-3.karamba3d.com/3-in-depth-component-reference/3.1-model/3.1.1-assemble-model)).

The meaning of **“Ct”**, **“Cr”** and **“Dofs”** is analogous to that of the Beam-Joints-component featured in section [3.3.6](https://manual-1-3.karamba3d.com/3-in-depth-component-reference/3.3-cross-section/3.3.6-beam-joints).
