# 3.4.2: Beam-Joint Agent

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

{% file src="<https://2671626451-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6rkhS8IteqWJRfUuJlL5%2Fuploads%2FPoLhErVDupFAOrCTWAAm%2FBeamJointAgent.gh?alt=media&token=6bd6f958-95d5-45d1-8427-8aaa95cd10ab>" %}

The **“Beam-Joint Agent”**-component creates hinges on beams based on geometric relations. Fig. 3.3.2.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 tests the model-elements and places hinges when **all** of the following conditions - in case specified by the user - 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.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.4.1](https://manual.karamba3d.com/3-in-depth-component-reference/3.4-joint/3.3.6-beam-joints).

{% file src="<https://2671626451-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6rkhS8IteqWJRfUuJlL5%2Fuploads%2FrYpgffA0k3zr6C2VzQrX%2FBeam_JointAgent.gh?alt=media&token=05d6c972-582d-4e2d-b7c7-f484c19d7c19>" %}

{% file src="<https://2671626451-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6rkhS8IteqWJRfUuJlL5%2Fuploads%2FgkqJannfnvlcOch0kt5B%2FBeam_JointAgent_II.gh?alt=media&token=44f8c2b5-da01-4336-b9fb-3e81ff452736>" %}

{% file src="<https://2671626451-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6rkhS8IteqWJRfUuJlL5%2Fuploads%2FIcw3eDbOE9kJiWqsUE5U%2FBeam_JointAgent_Via_Point.gh?alt=media&token=e13c9bc2-66d3-4c07-846e-9658a47cb572>" %}
