Formelattribute

Tekla Structures
Not version-specific
Tekla Structures
Property
Environment
Switzerland

Nutzen und Beschreibung

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 ü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. 

Syntax
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))
5.3

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:

  • == (Ist gleich)
  • != (Ist nicht gleich)
  • > (grösser als)
  • < (kleiner als)
  • >= (grösser gleich)
  • <= (kleiner gleich)

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.
Bylo to užitečné?