# Variablen in Texten, Identnummern

Texte werden insbesondere bei Bemaßungen, Texten und Beschriftungen verwendet. An all diesen Stellen kann der Text oder Teile davon direkt eingegeben oder über Variablen definiert werden.

* In Texten können beliebig viele Textteile mit Variablen gemischt werden. Z.B.\
  \&#xNAN;**'Länge: #VL\[m,3]#, Breite: #VB\[cm,1]#, Höhe: #VH\[cm,1]#'**
* Texte können über Variablen mit der Einheit '**txt**' oder Auflistungen (**Enum**) abgefragt werden.

> - Variablen mit Identnummern oder Stabarten können ebenfalls direkt eingesetzt werden.
> - Zudem können aber auch alle Zahlen aus Variablen oder Zwischenwerten mit der entsprechenden Formatierung eingesetzt werden.
> - Auch ist es möglich hier Werte von den in der Situation verfügbaren Systemvariablen auszugeben.

* Zahlenwerte, die in Texten oder Beschriftungen verwendet werden sollen, können mit einer Formatierung versehen werden.

> - Dazu wird an die Variable in eckigen Klammern die Einheit und die Anzahl der Nachkommastellen angehängt. Beispiel: **#V23\[cm, 1]#** für die Variable 'V23' in Zentimetern mit einer Nachkommastelle.
> - Für die Einheiten m (Meter), cm (Zentimeter), mm (Millimeter) und in (Inch) wird die Anzahl der Nachkommastellen angegeben. Für die Einheit ft (Feet-Inch) wird die sogenannte 'fraction' angegeben, also z.B. '16' für 16tel inch.
> - Für Winkelangaben ist als Einheit das Gradzeichen zu verwenden, z.B. **#VWinkel\[°,1]#**.
> - Bei Zahlenwerten, die keine Längen oder Winkel darstellen, kann die Einheit weggelassen werden. Das Komma vor der Anzahl der Nachkommastellen muss jedoch geschrieben werden, z.B. **#VAnzahl\[,1]#**.; Beispiel für 'ohne Nachkommastellen': **#VAnzahl\[,0]#**.
> - (V20.02) Für die Ausgabe von Variablen in Texten gibt es eine zusätzliche Formatierungsmöglichkeit. Dazu werden nach den Nachkommastellen noch ein Füllzeichen und die Gesamtzahl der Zeichen angehängt.
>
> Beispiel Variable **V\_Zahl=34.34676**. Die Formatierung **#V\_Zahl\[m,2]#** gibt in m mit Rundung auf 2 Nachkommastellen aus: **34.35**. Nun kann man die Formatierung erweitern auf **#V\_Zahl\[m,2,x,8]#**; damit wird der Text am Anfang mit x auf insgesamt 8 Stellen aufgefüllt: **xxx34.35**. Der Dezimaltrenner zählt dabei auch als eine Stelle.
>
> Benötigt man keine Füllzeichen, so kann die Formatierung nach wie vor mit Einheit und Nachkommastellen geschrieben werden: **#V\_Zahl\[m,2]#**.
>
> Wird eine Textvariable in der Länger formatiert, so benötigt man keine Einheit oder Rundung. Für die Variable **V\_Text=abcde** wird mit der Formatierung **#V\_Text\[,,-,8]#** der Text am Anfang mit - auf insgesamt 8 Stellen aufgefüllt: **---abcde**. In der Formatierung muss man die ersten beiden Kommata angeben, auch wenn dort keine Einheit und Rundung steht.
>
> Diese Formatierung setzt man z.B. für rechtsbündige Auflistungen oder zur Bildung von Dateinamen ein.

Die Variablen können in derselben Weise auch für Identnummern eingesetzt werden. Man kann also die Identnummer, die an Bauteile oder Bibliothekselemente übertragen werden soll, aus Textteilen zusammensetzen. Auf diese Weise kann in der Identnummer z.B. eine Abmessung eingebaut werden. Beispiel: Eine Identnummer soll aus dem Text '**Rohr**' und der Länge aus **VL** in mm ohne Nachkommastellen zusammengesetzt werden. Der Ausdruck bei der Identnummer lautet dann: **Rohr#VL\[mm,0]#**.

Auch in Zwischenwerten von Kombielementen können Texte zusammengestellt werden. Dabei sind die bedingten Zwischenwerte von besonderer Bedeutung, da auf diesem Weg ein Text für verschiedene Bedingungen unterschiedlich zusammengesetzt werden kann. Weiteres siehe Kapitel 'Kombielemente - Zwischenwerte'.

### Spezielle Regelungen in Formeln für Zwischenwerte vom Typ Text

Wenn ein Zwischenwert den Typ Text (Einheit **txt**) hat, so kann man direkt Klartext, alle Arten von Variablen oder beides gemischt zuweisen, also in die Formel schreiben. Dabei gibt es folgende Regelungen zu beachten:

> * Wenn der Zwischenwert direkt den Wert einer Variablen vom Typ Text übernehmen soll, so kann diese Variable direkt ohne Sonderzeichen in die Formel geschrieben werden. Soll also der Zwischenwert **V\_ZW\_Text1** den Wert der Variable **V\_Var\_Text** bekommen, so lautet die Formel einfach: **V\_Var\_Text**
>
> Achtung: Das Programm untersucht zuerst, ob der ganze Text der Formel mit dem Namen einer Variable (Systemvariablen, Anwendervariablen, Zwischenwerte) übereinstimmt. Ist dies der Fall, so wird der Text bevorzugt als Variable interpretiert und ihr Wert übernommen.
>
> Man kann also in unserem Fall den Text **V\_Var\_Text** nicht direkt zuweisen; er würde durch den Inhalt der Variable ersetzt werden. Ebenso verhält es sich mit Systemvariablen: Besteht eine Formel nur aus dem Wort **SWAKT**, so wird dieses Wort immer durch den Inhalt der Systemvariable **SWAKT** (aktuelles Stockwerk) ersetzt werden.
>
> Benötigt man den Text, der nur aus dem Namen einer Variablen (Systemvariablen, Anwendervariablen, Zwischenwerte) besteht, so muss man ein Zeichen voranstellen oder anhängen. Dabei kann das Leerzeichen auch vorangestellt werden. Operatoren (-+\*/\~<>= etc.) sind hier nicht erlaubt. Für unsere Beispiele wären z.B. möglich: **\_SWAKT** oder **SWAKT\_**.
>
> * Werden Variablen (Systemvariablen, Anwendervariablen, Zwischenwerte) mit Klartext kombiniert, so müssen die Variablennamen in # eingeschlossen werden: **Klartext #SWAKT#**
> * (17.01) Diese Regelungen gelten auch für Formeln, die Teil einer bedingten Formel sind.\
>   (18.01) Hier ist zu beachten, dass Klartext in bedingten Formeln immer mit Hochkomma geschrieben werden muss.\
>   Beispiel: Der Wert von **SWAKT** sei **GF**.
>
> Die bedingte Formel **(*****Bedingung*****);(#SWAKT#);(SWAKT)** ergibt als Ergebnis:
>
> Bedingung erfüllt: **GF** (#SWAKT# wird durch Wert ersetzt)
>
> Bedingung nicht erfüllt: **GF** (SWAKT wird als Variable erkannt, da sie alleine steht, wird also auch durch Wert ersetzt)
>
> Die bedingte Formel **(*****Bedingung*****);("Klartext" #SWAKT#);("Klartext" SWAKT)** ergibt als Ergebnis:
>
> Bedingung erfüllt: **Klartext GF** (#SWAKT# wird durch Wert ersetzt)
>
> Bedingung nicht erfüllt: **Klartext SWAKT** (SWAKT wird nicht als Variable erkannt, da sie nicht alleine steht)

#### Bedingte Formeln für Zwischenwerte vom Typ Text (Einheit txt)

(21.01) Für Zwischenwerte vom Typ Dezimalzahl (Einheit m) dürfen Bedingungen sowohl mathematische Formeln als auch Textvergleiche enthalten. Die Formeln von Zwischenwerten vom Typ Text (Einheit **txt**) werden jedoch vollständig nur als Texte behandelt; Bedingungen werden also mit Textvergleich durchgeführt. Bedingungen für Zwischenwerte vom Typ Text dürfen keine mathematischen Formeln enthalten.

> Beispiel für einen Zwischenwert vom Typ Text:
>
> Folgende bedingte Formel ist möglich, da die Bedingung Texte vergleicht: Der Name der Ausführung muss **AW** enthalten, dann wird **C24** genommen, sonst **KVH-Si**:
>
> Mögliche Formel: **(AUSF={AW\*});(C24);(KVH-Si)**
>
> Folgende bedingte Formel ist nicht möglich, da die Bedingung mathematische Formeln enthält. Das Programm würde die Variable **V\_Breite** erkennen und ihren Wert mit dem Text "**2.0**" nach alphabetischer Sortierung vergleichen: Und dies hat verwirrende Ergebnisse:
>
> Fehlerhafte Formel: **(V\_Breite>2.0));(C24);(KVH-Si)**
>
> Achtung! Wenn **V\_Breite** den Wert **3.00** hat, dann würden die Texte "**3.00**" und "**2.00**" verglichen werden und das Ergebnis **C24** sieht richtig aus. Denn die 3 kommt alphabetischer nach der 2 und ist somit größer. Hat **V\_Breite** jedoch den Wert **10.00**, so kommt als Ergebnis **KVH-Si**. Die "**10.00**" ist also nicht größer als "**2.00**", da die 1 im Alphabet vor der 2 kommt und somit kleiner ist.

**\[Hinweis:]** Da der Inhalt für einen Zwischenwert auch eine bedingte Formel sein kann, wird das zuerst untersucht. Wenn dabei ein Vergleichs-Zeichen (=, <, >, !=) gefunden wird, so geht das System von einer bedingten Formel aus und versucht von dem Zeichen aus entsprechend zu zerlegen. Das heißt umgekehrt, dass ein einfacher Text dort kein solches Zeichen enthalten darf. Der Text-Eintrag **Länge=1.00** (mit oder ohne Hochkomma) würde also nicht akzeptiert werden, da das System ihn als bedingte Formel interpretieren und in einen Fehler laufen würde.

**\[Empfehlung für Bedingungen für Zwischenwerte vom Typ Text (Einheit txt):]**

Wenn man Zwischenwerten vom Typ Text (Einheit txt) mit mathematischen Formeln bedingen will, so muss man diese ins Feld Variablenbedingung eintragen. Dann sind die Bedingungen nicht in einer bedingten Formel, sondern eigenständige Bedingungen und werden entsprechend analysiert. Hier sind dann sowohl mathematische Formeln, als auch Textvergleiche möglich.


---

# 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/das-variablensystem/formeln-und-texte/variablen-in-texten-identnummern.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.
