Contents

Index

Syntax of Allplan's formula interpreter (Bachus Naur Form)

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> ] )



Allplan 2016
(C) Allplan GmbH Privacy policy