Support Forum

Beschriftungsbild > Formel > Plannummer um Index ergänzen / _IF_ ELSE_ beim Index


Hallo zusammen,

schon wieder ich - schon wieder Beschriftungsbilder - hier Planrahmen:
Warum kann ich mit einer Formel nicht den Plannamen um den aktuellen Index ergänzen?
(1) =VERKETTEN(@445@;"_";@389@)
(2) @445@;"_";@389@

Format A60 / Sx 0

Wo ich gerade dabei bin, warum lässt Allplan folgende Formel nicht zu:
(3) _IF_(@389@="--")""_ELSE_@397@

Format A10 / Sx 0

Wer könnte mir da helfen? Die aktuellen FAQs von ALLPLAN können das zumindest nicht.

VG Peter

allplan 2021-1-10

Hilfreichste Antwort anzeigen Hilfreichste Antwort verbergen

zu Formeln -> Hilfe von Allplan
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> ] )

Arithmetische Operatoren

+
Addition
()
Klammer

-
Subtraktion
(())
geschachtelte Klammer

*
Multiplikation
e
10er Exponent der Fließkommadarstellung

/
Division
^
Potenz

Zugelassene Arithmetikfunktionen

Hinweis: Die beim Beschriftungsbild zugelassenen Arithmetikfunktionen unterscheiden sich von denen der Funktion Funktion zeichnen (Aufruf). Eine Übersicht finden Sie dort.
CloseRufen Sie Funktion zeichnen auf eine der folgenden Arten auf

Actionbar: Rolle Konstruktion Aufgabe Konstruieren Aufgabenbereich 2D-Objekte
Menüleiste: Erzeugen Erweiterte Konstruktion
Palette: Funktionen Bereich Erzeugen im Modul:
Erweiterte Konstruktion
Allplan
Math.
Erklärung

ABS(X)
|x|
Absoluter Wert

SQR(X)
SQRT(X)

Wurzel aus

PI(X)
PI
Funktion der Kreiszahl PI(2) = Kreiszahl PI * 2

LN(X)
ln x
Natürlicher Logarithmus (Basis e)

LOG(X)
log x
Logarithmus zur Basis 10

RCP(X)
1/x
Kehrwert von x

EXP(X)
ex
Exponentialfunktion mit Basis x

SGN(X)
-
Signum 0=0 <0=-1 >0=+1

SIN(X)
sin x
Sinus

COS(X)
cos x
Kosinus

TAN(X)
tan x
Tangens

ASIN(X)
arcsin x
Arcussinus

ACOS(X)
arccos x
Arcuscosinus

ATAN(X)
arctan x
Arcustangens

SINH(X)
sinh x
Sinushyperbolicus

COSH(X)
cosh x
Cosinushyperbolicus

TANH(X)
tanh x
Tangenshyperbolicus

NINT(X)
-
Rundung zur nächsten Ganzzahl

INT(X)
-
Zurückstufen zur nächst niedrigeren Ganzzahl

CEIL(X)
-
auf nächste Ganzzahl aufrunden

GRA(X)
-
Bogenmaß in GRAD

RAD(X)

Grad in Bogenmaß

GON(X)
-
Bogenmaß in GON

RAG(X)

GON in Bogenmaß

AVG(x1; x2; ..)
-
Mittelwert der max. 10 durch Strichpunkt getrennten Argumente (AVG(1;3)=2)

MIN(x1; x2; ..)
-
Minimum der max. 10 durch Strichpunkt getrennten Argumente (MIN(1;3)=1)

MAX(x1; x2; ..)
-
Maximum - der max. 10 durch Strichpunkt getrennten Argumente (MAX(1;3)=3)

FLAG(Value; bit[n];...)
-
Bietet eine Binäruntersuchung.
Beispiel:
Value = 25 --> Binär: 11001

FLAG(Value; 1) liefert 1, denn erste Flag von rechts ist gesetzt.
FLAG(Value; 2; 3) liefert 0, denn weder das zweite noch das dritte Flag von rechts sind gesetzt.
FLAG(Value; 3; 4) liefert 8, denn das vierte Flag ist gesetzt.

ROUND(X;x)
-
Runden einer beliebigen Zahl auf eine bestimmte Stellenanzahl
(ROUND(1.13333;2)=1,13)

ROUND(X;y;z)
-
Runden einer beliebigen Zahl (X) auf eine bestimmte Stellenanzahl (y) mit einer bestimmten Rundungsgenauigkeit (z) für die letzte Stelle
(ROUND(1.13333;2;5)=1,15)

ELE()
-
Filtert mehrere Zahlenwerte eines Attributs und liefert 0 oder 1 zurück
Beispiel:
ELE(Dicke;0,115;0,24;0,365)
erkennt alle Wände mit den angegebenen Dicken

VALUE(string;index)
-
Analog Excel:
Ermittelt beliebige Werte aus Texten
Beispiel:
STR_TEST = "Mein Haus hat 6 Zimmer und 2 Bäder"
VALUE(STR_TEST;1) + VALUE(STR_TEST;2) = 8

MID(Text;
Erstes_Zeichen;
Anzahl_Zeichen)
-
Analog Excel:
Gibt eine bestimmte Anzahl Zeichen einer Zeichenfolge ab einer bestimmten Stelle zurück

FORMAT(Formatstring; value1; [value<n>]; ....)
-
Dient zur formatierten Ausgabe von Werten
Beispiel:
FORMAT("B/H=%.2f / %.2f"; @220@; @222@)
liefert einen String
"B/H=1,55 / 2,03"

%.2f ist ein Platzhalter, der den Wert auf 2 Nachkommastellen rundet und an dieser Textstelle einfügt. Im Beispiel wird die Länge (@220@) in den ersten Platzhalter und die Höhe (@222@) in den zweiten Platzhalter mit je 2 Nachkommastellen eingefügt.

----------------------------------

Excel sollten alle Funktionen möglich sein, wenn Excel installiert ist.

----------------------------------

Gewünschtes verhalten mit der Indexuntersuchung sollte in einer Planlegende - kurz angetestet - ohne Probleme funktionieren. Dort kann auf schönere/intelligentere Weise die Anzeige der Indexzeilen geregelt werden.

11 - 14 (14)

Zitiert von: jvelletti

das Zerstückeln der infos ist hilfreich, wenn man in einem FAQ auf eine spezielle Frage eingeht. (FAQ => HGF = Häufig gestellte Fragen) aber die HILFE von Allplan hat das was du suchst .. https://help.allplan.com/Allplan/2020-0/1031/Allplan/index.htm#10058.htm

Danke!
Ein Dokument mit einer Übersicht und Beispielen der gängisten Formeln hätte ich trotzdem schön gefunden.
Gehen eigentlich alle Excel Formeln? Kann ja fast nicht. Sowas wäre dann ja auch ganz hilfreich gewesen.

Davon abgesehen, scheint das was ich machen will, ja nicht zu funktionieren.

VG P

allplan 2021-1-10

zu Formeln -> Hilfe von Allplan
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> ] )

Arithmetische Operatoren

+
Addition
()
Klammer

-
Subtraktion
(())
geschachtelte Klammer

*
Multiplikation
e
10er Exponent der Fließkommadarstellung

/
Division
^
Potenz

Zugelassene Arithmetikfunktionen

Hinweis: Die beim Beschriftungsbild zugelassenen Arithmetikfunktionen unterscheiden sich von denen der Funktion Funktion zeichnen (Aufruf). Eine Übersicht finden Sie dort.
CloseRufen Sie Funktion zeichnen auf eine der folgenden Arten auf

Actionbar: Rolle Konstruktion Aufgabe Konstruieren Aufgabenbereich 2D-Objekte
Menüleiste: Erzeugen Erweiterte Konstruktion
Palette: Funktionen Bereich Erzeugen im Modul:
Erweiterte Konstruktion
Allplan
Math.
Erklärung

ABS(X)
|x|
Absoluter Wert

SQR(X)
SQRT(X)

Wurzel aus

PI(X)
PI
Funktion der Kreiszahl PI(2) = Kreiszahl PI * 2

LN(X)
ln x
Natürlicher Logarithmus (Basis e)

LOG(X)
log x
Logarithmus zur Basis 10

RCP(X)
1/x
Kehrwert von x

EXP(X)
ex
Exponentialfunktion mit Basis x

SGN(X)
-
Signum 0=0 <0=-1 >0=+1

SIN(X)
sin x
Sinus

COS(X)
cos x
Kosinus

TAN(X)
tan x
Tangens

ASIN(X)
arcsin x
Arcussinus

ACOS(X)
arccos x
Arcuscosinus

ATAN(X)
arctan x
Arcustangens

SINH(X)
sinh x
Sinushyperbolicus

COSH(X)
cosh x
Cosinushyperbolicus

TANH(X)
tanh x
Tangenshyperbolicus

NINT(X)
-
Rundung zur nächsten Ganzzahl

INT(X)
-
Zurückstufen zur nächst niedrigeren Ganzzahl

CEIL(X)
-
auf nächste Ganzzahl aufrunden

GRA(X)
-
Bogenmaß in GRAD

RAD(X)

Grad in Bogenmaß

GON(X)
-
Bogenmaß in GON

RAG(X)

GON in Bogenmaß

AVG(x1; x2; ..)
-
Mittelwert der max. 10 durch Strichpunkt getrennten Argumente (AVG(1;3)=2)

MIN(x1; x2; ..)
-
Minimum der max. 10 durch Strichpunkt getrennten Argumente (MIN(1;3)=1)

MAX(x1; x2; ..)
-
Maximum - der max. 10 durch Strichpunkt getrennten Argumente (MAX(1;3)=3)

FLAG(Value; bit[n];...)
-
Bietet eine Binäruntersuchung.
Beispiel:
Value = 25 --> Binär: 11001

FLAG(Value; 1) liefert 1, denn erste Flag von rechts ist gesetzt.
FLAG(Value; 2; 3) liefert 0, denn weder das zweite noch das dritte Flag von rechts sind gesetzt.
FLAG(Value; 3; 4) liefert 8, denn das vierte Flag ist gesetzt.

ROUND(X;x)
-
Runden einer beliebigen Zahl auf eine bestimmte Stellenanzahl
(ROUND(1.13333;2)=1,13)

ROUND(X;y;z)
-
Runden einer beliebigen Zahl (X) auf eine bestimmte Stellenanzahl (y) mit einer bestimmten Rundungsgenauigkeit (z) für die letzte Stelle
(ROUND(1.13333;2;5)=1,15)

ELE()
-
Filtert mehrere Zahlenwerte eines Attributs und liefert 0 oder 1 zurück
Beispiel:
ELE(Dicke;0,115;0,24;0,365)
erkennt alle Wände mit den angegebenen Dicken

VALUE(string;index)
-
Analog Excel:
Ermittelt beliebige Werte aus Texten
Beispiel:
STR_TEST = "Mein Haus hat 6 Zimmer und 2 Bäder"
VALUE(STR_TEST;1) + VALUE(STR_TEST;2) = 8

MID(Text;
Erstes_Zeichen;
Anzahl_Zeichen)
-
Analog Excel:
Gibt eine bestimmte Anzahl Zeichen einer Zeichenfolge ab einer bestimmten Stelle zurück

FORMAT(Formatstring; value1; [value<n>]; ....)
-
Dient zur formatierten Ausgabe von Werten
Beispiel:
FORMAT("B/H=%.2f / %.2f"; @220@; @222@)
liefert einen String
"B/H=1,55 / 2,03"

%.2f ist ein Platzhalter, der den Wert auf 2 Nachkommastellen rundet und an dieser Textstelle einfügt. Im Beispiel wird die Länge (@220@) in den ersten Platzhalter und die Höhe (@222@) in den zweiten Platzhalter mit je 2 Nachkommastellen eingefügt.

----------------------------------

Excel sollten alle Funktionen möglich sein, wenn Excel installiert ist.

----------------------------------

Gewünschtes verhalten mit der Indexuntersuchung sollte in einer Planlegende - kurz angetestet - ohne Probleme funktionieren. Dort kann auf schönere/intelligentere Weise die Anzeige der Indexzeilen geregelt werden.

Wow, danke!

Jetzt habe ich ja erst einmal etwas zu tun!
Die Planlegende ist also den Beschriftungsbildern vorzuziehen?!
Fand das letztere nur wesentlich einfacher; OK, einfach hat halt scheinbar seine Grenzen.

Vielen Dank noch einmal.
VG Peter

PS
blöd nur, dass Allplan zw Beschriftungsbilder 1:1 und Legende 1:100 unterscheidet.
Die Vorlage, die es zu übernehmen gilt, kommt aus ACAD und ist natürlich auch 1:1, weshalb die Beschriftungsbilder recht naheliegend waren. Da scheiterts allein schon an den "festen Texten" im 1:100. Schöne Aufgabe für einen Montag morgen

allplan 2021-1-10

jup.
Beschriftungsbild -> Erstellung im Maßstab in welchen es benötigt wird
-> Einfach, Attribute Formeln usw. einfach ablegen und speichern
-> vor Allplan 2013 einzige Möglichkeit gewesen

Legende -> Erstellung immer im Maßstab 1:100
-> aufwendiger beim erstellen, unterliste für index notwendig, zellennummern müssen beachtet werden.
-> "erst" ab Allplan 2013 möglich

ABER:
Legende ist flexibler und intelligenter beim Index-block

11 - 14 (14)

Verwendung von Cookies:
Um die Webseite optimal gestalten und fortlaufend verbessern zu können, verwendet Allplan Cookies.
Durch die weitere Nutzung der Webseite erklären Sie sich mit der Verwendung von Cookies einverstanden.  -  Mehr Informationen

Schließen