# 3.1.15: Select Element

All structural elements can be given identifiers, i.e. names. Names are case sensitive and need to start with a letter or underscore. After the first initial letter numbers and letters may follow. Names need not be unique: Two elements can have the same name without Karamba3D complaining. Each element has a default identifier: its index. This is the reason why it is not allowed to have an integer number as an element identifier. Fig. 3.1.15.1 shows how a list of elements can be split into two data trees using their identifiers. The **“Select Beam”**-component expects a list of elements in **“Elems”** as well as a list of identifiers or regular expressions in **“Id”**. Regular expressions need to be prefixed by a “&”. They represent a very mighty selection tool. In fig. 3.1.15.1 one can see three use-cases:

* “&.\[1-2]”: a “.” matches any character; “\[1-2]” matches one character in the range of “1” to “2”. This is equivalent to “\[12]”.
* “\&b.”: matches any identifier that starts with “b” followed by an arbitrary character.
* “&.\[13]”: matches any identifier that starts with an arbitrary character followed either by “1” or “3”.

![ Fig. 3.1.15.1: Elements can be selected by using their identifiers](https://1646753513-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M9XteyGDAU3Odla53cC%2Fsync%2F5cc8bbf261fb74cd2fb1f44a81927de75a258313.png?generation=1591871200048988\&alt=media)

There are two output-plugs on the **“Select Beam”**-component: **“SElem”** renders the selected elements which match the selection criteria, **“RElem”** returns the rest. The entries of the **“SElem”** and **“RElem”** output data remember their spot in the original list of elements. Joining them results in the original order of elements.
