die syntax wird (fast komplett) schon bei der funktion beschritungsbild im formeleditor beschrieben
darüber hinaus ist dies in der hilfe enthalten
Syntax des Allplan Formelinterpreters (Backus-Naur-Form)
BNF-Beschreibung des Allplan Formelinterpreters
Der Allplan Formelinterpreter kann aus einem <Statement> Texte, Werte oder auch beides gleichzeitig evaluieren.
D.h. bei einem Statement „Länge*Höhe“ kann neben dem numerischen Ergebnis z.B. 7.50 auch ein textueller Ansatz „3.00*2,50“ ermittelt werden.
<statement> ::= <selection> | <expression>
<selection> ::= _IF_ ( <condition> ) <statement> { _ELSE_ <statement> }
<condition> ::= boolean_expression
<boolean_expresson > ::= <relation> { <OR> < relation > } |
<relation> { <AND> <relation > }
< relation > ::= { NOT } <expression> { <relation_operator> <expression> }
<NOT> ::= ‘! ‘
<OR> ::= ‘|‘ oder ‘||‘
<AND> ::= ‘&‘ | ‘&&‘
<relation_operator> ::= ‘>‘ | ‘<‘ | ‘><‘ | ‘<=‘ | ‘>=‘ | ‘=‘
<expression> ::= <term> { <add_operator> <term> }
<term> ::= <factor> { <mult_operator> <factor> }
<factor> ::= <primary> [ ^ <primary> ]
<add_operator> ::= ‘+‘ | ‘-‘
<mult_operator> ::= ‘*‘ | ‘/‘ | ‘%‘
<primary> ::= <value> | <report_value> | <attribute> | <function_call> | ( <expression> )
<value> := numeric_value | string_value
<numeric_value> ::= <integer> [ . <integer> ] [ E <integer> ]
<string_value> ::= „digit [ *|? ]“ (incl. Wildcards)
<attribute> ::= @<integer>@ (reference to all Allplan Attributes)
<report_value> ::= ‘SPALTE‘<integer> | ‘TABELLE‘<integer>
<function_call> ::= <math_function> | <dyn_function> | <CAD_function> |
<Excel_function> | <VB_Script_function>
<math_function> ::=
(‘ABS‘|‘SQRT‘|‘SQR‘|‘PI‘|LN‘|‘LOG‘|‘RCP‘|‘EXP‘|‘SGN‘|
‘SIN‘|‘COS‘|‘TAN‘|‘ASIN‘|‘ACOS‘|‘ATAN‘|‘SINH‘|‘COSH‘|‘TANH‘|
‘RAD‘|‘GRA‘|‘GON‘|‘RAG‘|‘NINT‘|‘INT‘|‘CEIL‘) ( <expression> )
<dyn_function> ::=
(‘AVG‘|‘MIN‘|‘MAX‘|‘FLAG‘) ( <expression> { ; <expression } |
‘ROUND‘ ( <expression> ; <integer> [ ; <integer>] ) |
‘VALUE‘ ( <string_value> [ ; <integer> ] ) |
‘MID‘ ( <expression> ; <integer> [ ; <integer>] )
<CAD_function> ::=
‘PARENT‘ ( <expression> ) |
‘CHILD‘ ( <statement> ) |
‘SUMME‘ (<expression>) |
(‘RQU_STWEIGHT‘|‘RQU_STNAME‘) ( <expression> [ ; <expression>]) |
(‘MT_Material‘|‘MT_Fenster‘|‘MT_Fenstertuer‘|‘MT_Dachfenster‘|‘MT_Tuer‘|
‘MT_Nische‘|‘MT_Wand‘|‘MT_Raum‘|‘MT_Stuetze‘) ( <statement> )
(‘MT_Boden‘|‘MT_Decke‘|‘MT_Seite ‘|‘MT_Leiste‘)
( <statement> ; <integer> [ ; <integer> ] )
<Excel_function> ::= function_name ( <statement> [ ; <statement> ] )
<VB_Script_function> ::= VB_function_name ( <statement> [ ; <statement> ] )
alles weitere ist die hirarchie der bauteile untereinander.
Namenlos gezeichnet in vollem Bewusstsein - ignorant, in eigen Augen vermutlich höflich, dennoch unhöflichst, unfreundlichst wer einen/viele vermutete - sich von alters erschließende Namen nennt.
[b]