Formelattribute
Mit den Formelattributen stehen Ihnen die Attribute "CUSTOM.FORMULA_1" bis "CUSTOM.FORMULA_9" zur Verfügung. Diese Attribute können Sie anpassen, sodass der Output Ihren Bedürfnissen entspricht.
Die Eingabe erfolgt über die Dateien "formula1.CustomProp" bis "formula9.CustomProp" und muss gemäss dem nachfolgend definierten Schema erfolgen. Diese Datei kann irgendwo in den Tekla-Verzeichnissen abgelegt werden - Vom Modellordner (Unterordner "attributes", über den Firmenordner bis hin zur Umgebung. Standardmässig liegen die Dateien mit Beispielen in der Schweizer Umgebung im Ordner "General/System".
Den Download finden Sie hier: Tekla Warehouse
Syntax
Es wird Zeile für Zeile gelesen. Das heisst, pro Zeile darf maximal 1 "Statement" verwendet werden - d.h. jede der folgenden Begriffe muss auf einer neuen Zeile stehen.
Schema | Verwendung | Beispiel/Resultat |
---|---|---|
"" | Zeigt den in Klammern stehenden Text an | "Mat_" Mat_ |
string(Attribut) |
Zeigt den Wert des Textattributs an |
string(MATERIAL) Beton NPK C |
string(Attribut,Zahl) | Zeigt die ersten X-Zeichen des Textattributs an | string(NAME,3) Wan |
number(Attribut) | Zeigt den Wert des Zahlenattributs an | number(LENGTH) 1520 |
number(Attribut, Zahl) | Zeigt den Wert des Zahlenattributs mit X-Dezimalstellen an | number(VOLUME,2) 5.31 |
number(Attribut, Operation, Zahl) |
Zeigt den Wert des Zahlenattributs mit X-Dezimalstellen an. Die Operation dient dazu, bspw. Längen von mm in m umzurechnen. | number(LENGTH/1000,1) 1.5 |
calc((number())* (number()) |
Rechnet mit zwei Zahlenattributen, welche in Klammer stehen müssen (restliche Bedingungen siehe "number()"). Der Operand dazwischen kann gewählt werden (+ - * /). |
calc((WIDTH,/1000,1)* (HEIGHT,/100,1)) |
if(Bedingung) then Then- Block else Else-Block |
Typisches If-Else Statement. In der Bedingung steht links ein Attribut, rechts die zu prüfende Bedingung. Der Operand kann aus folgender Liste gewählt werden:
Im Then bzw. Else-Block kann wiederum obenstehende Syntax verwendet werden. |
if(NAME=="Wand") then "YES" else "NO" YES |
Bekannte Einschränkungen
- mit string(Attribut, Zahl) können nur die ersten Zeichen eines Textes verwendet werden - Es ist aktuell nicht möglich, diese ab einer bestimmten Stelle zu verwenden.
- mit calc((Zahlenattribut) Operator (Zahlenattribut)) werden aktuell immer nur 2 Attribute berechnet, mehr sind nicht möglich.
- Selbst verschachtelte Bedingungen müssen auf einer Zeile stehen.