# 3.3: Cross Section

Karamba3D offers cross section definitions for beams, shells and springs. They can be generated with the “Cross Sections” multi-component. Use the drop-down list on the bottom to chose the cross section type.

The dimensions of each cross section may be defined manually or by reference to a list of cross sections (see section [3.3.10](https://manual.karamba3d.com/3-in-depth-component-reference/3.3-cross-section/3.3.10-cross-section-selector)).

<figure><img src="https://2671626451-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6rkhS8IteqWJRfUuJlL5%2Fuploads%2FEc82uwbB83w7cungIqei%2FCrossSection_FourKinds.png?alt=media&#x26;token=462f3266-530c-4b53-9bf2-d9824a748f5e" alt=""><figcaption><p>Fig. 3.3.1: Cantilever with four different kinds of cross sections</p></figcaption></figure>

Cross sections can be plugged directly into the components for creating elements (**“LineToBeam”**, **“MeshToShell”**, …). Alternatively when fed into an **“Assemble”**-component (see fig. 3.3.1) they act on the elements whose identifiers match the string given via **“Elem|Id”**. In case an element is provided at the **“Elem|Id”**-input, its identifier is used for attaching the cross section to elements. A cross section added via the **“Assemble”**-component overrides a cross section provided directly at an element-creation-component.

The indirect cross section specification through the **“Assemble”**-component has the advantage that elements can be specified using regular expressions. Upon assembly all element identifiers are compared to the **“Elem|Id”** entry of a cross section. In case of a match the cross section is attached to the element. An empty string – which is the default value – signifies that the cross section shall be applied to all elements. If two cross sections refer to the same element then that which gets processed later by the assemble-component wins. It makes no sense to attribute beam cross sections to shells and vice versa – Karamba3D ignores any such attempts.

{% file src="<https://2671626451-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6rkhS8IteqWJRfUuJlL5%2Fuploads%2Ff2dQZOzb9XTXbhDde8nT%2FCross_Sections.gh?alt=media&token=ed510e0a-be7b-41a6-aa97-778ec7f4d47e>" %}

{% file src="<https://2671626451-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F6rkhS8IteqWJRfUuJlL5%2Fuploads%2FnWkQUlO1umbt4USp6D47%2FArbitraryCrossSectionProperties.gh?alt=media&token=3644a2c1-413e-40c1-bd70-b0b5d52c2134>" %}
