Description of Allplan's formula interpreter
Allplan's formula interpreter can evaluate text, values or text and values at the same time using a statement.
In other words, in addition to the numerical result of 7.50, for example, a statement of "length*height“ can be used to obtain textual information like "3.00*2.50“.
<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> ::= ‘COLUMN‘<integer> | ‘TABLE‘<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> ) |
‘TOTAL‘ (<expression>) |
(‘RQU_STWEIGHT‘|‘RQU_STNAME‘) ( <expression> [ ; <expression>]) |
(‘MT_material‘|‘MT_window‘|‘MT_frenchdoor‘|‘MT_skylight‘|‘MT_door‘|
‘MT_niche‘|‘MT_wall‘|‘MT_room‘|‘MT_column‘) ( <statement> )
(‘MT_floor‘|‘MT_ceiling‘|‘MT_side‘|‘MT_baseboard‘)
( <statement> ; <integer> [ ; <integer> ] )
<Excel_function> ::= function_name ( <statement> [ ; <statement> ] )
<VB_Script_function> ::= VB_function_name ( <statement> [ ; <statement> ] )
(C) Allplan GmbH | Privacy policy |