# Library Elements

In the combo element, library elements from volume libraries can be inserted. These are libraries created with the function 'DICAM - 1-5-1 Volume'.

When inserting the library elements, the 'Reference library element' from the point symbols is used:

* A stored library element lies in a coordinate system. Its position in this coordinate system corresponds to its position in the current coordinate system at the time the library element was saved.
* When the library element is inserted, it is first placed exactly into the current insertion coordinate system (or projected insertion coordinate system) with its coordinate system.
* Then the library part is shifted with its coordinate system according to the translations in the X, Y, and Z directions.
* Finally, the library part is rotated about the origin of its shifted coordinate system; the order of the rotations must be observed:
  * first by the base angle in the XoY plane,
  * then by the inclination angle relative to the XoY plane
  * and finally by the tilt angle about the rotated X-axis.

When a library part is created, it is automatically assigned a number: 1, 2, etc.

* The number is displayed on the left in the tree element of the combo element.
* A preview of the library element is displayed on the right in the preview image.
* A description can be entered on the right below the auxiliary image. This is used for documentation. The first part of the description is also displayed on the left in the tree element of the combo element. This makes it much faster to recognize the library element in the tree element.

Library element:

* Any library elements can be selected. To ensure the combo element can be used in other installations, the libraries should be located in the same subdirectory as the combo element. See also chapter 'Combo elements: structure, file structure'.
* Starting with version 13.01, library elements can also be inserted as variables. Variables with the unit Text or Enum as well as intermediate values with the unit Text can be used. For library elements that are treated in the same way and with the same long/short modifications, one entry can therefore be used to manage them. The decision on the library element is then usually made in the intermediate values.

'insert for combo element in' and conditions:

* Here, the conditions under which the library element is to be inserted can be defined. Further information can be found in the chapter 'Conditions'.

Identification numbers can be transferred to the inserted library elements. These are applied to all components of the library element. If components are to receive different identification numbers, they must be distributed across different library elements. If the field for the identification number is empty, the original identification numbers remain unchanged.

* The shape of the library parts is retained; only the identification number is replaced. Accordingly, it is not possible to select identification numbers with profile descriptions.
* These identification numbers can be queried together with the other variables. The identification browser is opened via the browser button.
* Identification numbers can be queried via variables with the unit 'IdnroP' (identification number without profile description). Alternatively, enumerations (Enum) or text inputs (Txt) can also be used.
* The identification number can also be taken from a query body.
* This allows library parts to be assigned different identification numbers for material lists or other evaluations. It is no longer necessary to create new library parts for every desired option.
* The identification number can also be composed from text fragments. In this way, a dimension can be incorporated into the identification number, for example. Example: An identification number is to be composed from the text '**Pipe**' and the length from **VL** in mm without decimal places. The expression for the identification number is then: **Pipe#VL\[mm,0]#**. Further information in the chapter 'Variables in texts, identification numbers'.

Texture set and additional color for texture can be fixed or queried via variables. These are transferred to all components of the library element. If components are to differ, they must be distributed across different library elements. If the respective field is empty, the original entries remain unchanged.

* In variable query, the texture browser is opened via the browser button, from which textures are selected with graphical preview. Accordingly, the color browser is opened for the 'additional color for texture'.
* This allows library parts for visualization to be assigned any texture set. It is no longer necessary to create new library parts for every desired option.

Insert into group / building element:

* The inserted library elements are assigned to the specified group (MOS). If the field for the group remains empty, the original group assignments are retained.
* The inserted library elements are assigned to the specified building element.
* The group can also be defined via variables, so it can be queried. Variables with the units number, txt (texts), or Enum (enumerations) are taken into account. For an entry in the 'Group' field, the variable must be enclosed in # : **#VGruppe#**.

Insert into position (empty = outside) / orientation:

* Orientation = free: The library element is inserted directly in the insertion coordinate system. It is then assigned to the building element specified above, but translation and orientation refer to the insertion coordinate system.
* Orientation = parallel to building element: A position can now also be specified. The origin of the insertion coordinate system is projected perpendicularly to the building element into the position. Then, depending on the type of building element, a projected insertion coordinate system is generated. Further translation and orientation then take place within it. A detailed description of the process can be found in the chapter: Translation and projections of insertion coordinate systems.
* For position = empty, the origin is projected onto the surface of the building element. For walls and bar structures, this is the front or rear side, depending on the position of the insertion coordinate system. For ceilings and roof surfaces, this is always the top side.
* For insertion into a storey, roof, or free construction, the orientation is automatically set to 'free'.
* The position can also be defined via variables, so it can be queried. Variables with the units number, txt (texts), or Enum (enumerations) are taken into account. For an entry in the 'Position' field, the variable must be enclosed in # : **#VLage#**.
* The library parts can be assigned to any number of free MOS after insertion.
* The free MOS are simply specified as text; multiple entries are separated by tilde \~.

X, Y, Z translation, base, inclination, and tilt angles:

* These are the translations and rotations used according to the procedure described above.

Distributions in library elements

Repeats can be defined in the coordinates of the position points of library elements:

* Each coordinate receives an entry in the form (**start value\~increment\~count**). Count 1 means that no increment is performed, so only one object is created at the start value.
* When repeats are defined, they must be generated in X, Y, and Z.

> **X(1.0\~0.1\~5)Y(0.0\~0.0\~1)Z(0.0\~0.0\~1)** Row along X with 5 elements, starting at 1.0 with increment 0.1
>
> **X(1.0\~0.1\~5)Y(0.0\~0.2\~4)Z(0.0\~0.0\~1)** Row along X with 5 elements, starting at 1.0 with increment 0.1, this row 4 times along Y with spacing 0.2.

* With these repeats, rows, grids, or 3D grids of library elements can be created in a single step.

List with long/short information: When saving a library element, positions can be defined with long/short information at which the library part can be lengthened or shortened during insertion.

* No. and long/short are used to describe the length change, e.g. the direction in which the length change occurs.
* Actual length shows the actual length of the library element in its original state. This is measured in the direction of the length change at the maximum extent of all components of the library element.
* Target length: Here, the desired length in this direction is entered directly or via a formula. The library elements are lengthened or shortened by the difference between target and actual length at the corresponding location.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.dietrichs.com/dietrichs-intelligent-documentation/docs-de-en/combined-elements/create-edit-combined-elements/library-elements.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
