Inhalt

Index

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>) |
‘PARENTPRECAST‘ ( <expression> ) |
‘FORMAT‘ ( <expression> ) |
‘IMPPRE‘ ( <expression> ) |
‘FIXTURECOUNT‘ ( <expression> ) |
‘GROUP‘ ( <expression> ) |

(‘RQU_STWEIGHT‘|‘RQU_STNAME‘) ( <expression> [ ; <expression>]) |
(‘Obj_Material‘|‘Obj_WindowOpening‘|‘Obj_FrenchWindowOpening‘|‘Obj_RoofOpening`|‘Obj_DoorOpening‘|
‘Obj_Niche‘|‘Obj_Wall‘|‘Obj_Room‘|‘Obj_Column‘) ( <statement> )

(‘Obj_Floor‘|‘Obj_Ceiling‘|‘Obj_VSurface‘|‘Obj_Baseboard‘)
( <statement> ; <integer> [ ; <integer> ] )

<Excel_function> ::= function_name ( <statement> [ ; <statement> ] )

<ALLPLAN_Script> ::= a:ALLPLAN_function_name( <statement> [;<statement>])
<EXCEL_Script> ::= x:EXCEL_function_name( <statement> [;<statement>])
<VB_Script> ::= v:VB_function_name( <statement> [;<statement>])
<PYTHON_Script> ::= p:PYTHON_function_name( <statement> [;<statement>])

Mögliche arithmetische Operatoren und Funktionen




(C) ALLPLAN GmbH Datenschutzbestimmungen