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.

1 - 10 (14)

1/2 längeres Format verwenden - z. b. A80 müsste funktionieren.
Planname wird immer mit der gesamten maximalen länge gespeichert/ausgegeben.

3 das doppelte minus macht das Problem.

1/2 längeres Format verwenden - z. b. A80 müsste funktionieren.
Planname wird immer mit der gesamten maximalen länge gespeichert/ausgegeben.
3 das doppelte minus macht das Problem.

1/2 sieht dann so aus ;)

3 schade! Die umgekehrte Formel bekomme ich auch nicht hin.
Wenn der Index "--" leer ist, möchte ich das Datum nicht angezeigt bekommen
_IF_(@389@="-a")@397@_ELSE_""
funktioniert; nur leider verschwindet das Datum dann beim nächsten Index "-b" usw.
_IF_(@389@="-a"|"-b"|"-c"|"-d"|"-e"|"-f"|"-g"|"-h"|"-i"|"-j"|"-k"|"-l"|"-m"|"-n"|"-o"|"-p"|"-q"|"-r"|"-s"|"-t"|"-u"|"-v"|"-w"|"-x"|"-y"|"-z")@397@_ELSE_""
geht auch nicht

Leider muss das "--" auf dem Plan abgesetzt werden
Ginge eine Formel "Wenn es einen Index gibt - dann Index" ansonsten "--"

Immer wieder schwierig (für mich).

Vielen Dank übrigens!

allplan 2021-1-10

Anhänge (1)

Typ: image/jpeg
95-mal heruntergeladen
Größe: 22,07 KiB

warum der Bindestrich vor dem index mit dem Attribut index angegeben?
kann doch auch als text überall mit reingenommen werden.

alternativ kann evtl. auch das Datum als Kriterium verwendet werden. das könnte auch leer sein, wenn kein index da ist.

die lange formel ist im kritierum unlogisch, da einmal ein verlgeich gemacht wird und der rest dann nur noch eine auflistung von oder ist. ist mathematisch nicht wirklich definiert so.

warum der Bindestrich vor dem index mit dem Attribut index angegeben?
kann doch auch als text überall mit reingenommen werden.
alternativ kann evtl. auch das Datum als Kriterium verwendet werden. das könnte auch leer sein, wenn kein index da ist.
die lange formel ist im kritierum unlogisch, da einmal ein verlgeich gemacht wird und der rest dann nur noch eine auflistung von oder ist. ist mathematisch nicht wirklich definiert so.

Gute Idee! Habe ich jetzt auch mal probiert;
leider kann man scheinbar den entsprechenden Index mit dem Sx nur über ein "Attribut" anzeigen lassen und nicht, wenn sich dieses in einer Formel befindet; dann wird immer die aktuelle Indizierung genommen (Sx0 - egal was man einträgt).

Problem ist ja, dass auf dem Plan "--" angezeigt werden soll, wenn kein Index vergeben worden ist.
Bei den Planeigenschaften schreibe ich das "--" dann rein, somit ist das IndexDatum dann gleich mit der Planerstellung!
Im Plannamen steht hinten auch immer der Index, damit dieser über Plannamen korrekt angezeigt wird.
Funktioniert (fast) alles.
Nun ist leider beim Index "--" auch ein Datum in der oberen Indizierungstabelle vergeben.
Das wollte ich nur rausbekommen und alles mit etwas weniger Gebastel.

allplan 2021-1-10

Anhänge (1)

Typ: image/jpeg
185-mal heruntergeladen
Größe: 76,27 KiB

um Euer "Konzept" hier zusammenzufassen:

Plan wird erstellt und der erste Index mit minus-minus "--" gefüllt.
die weiteren Indexe werden dann mit minus-Buchstabe gefüllt.

1. Frage:
Warum muss beim erstellen ein index der leer ist eingetragen werden?
2. Frage:
warum reicht als index nicht der Buchstabe (und dann für das leer ein minus)?

Bei der Datebenennen und auch auf dem plan kann das zusätzliche minus direkt geschrieben werden.
mit nur einem minus funktioniert die formel ohne Probleme.

um Euer "Konzept" hier zusammenzufassen:
Plan wird erstellt und der erste Index mit minus-minus "--" gefüllt.
die weiteren Indexe werden dann mit minus-Buchstabe gefüllt.
1. Frage: Warum muss beim erstellen ein index der leer ist eingetragen werden?
2. Frage:
warum reicht als index nicht der Buchstabe (und dann für das leer ein minus)?
Bei der Datebenennen und auch auf dem plan kann das zusätzliche minus direkt geschrieben werden.
mit nur einem minus funktioniert die formel ohne Probleme.

tja, das hat jemand mal vor langer langer Zeit festgelegt. Nach "-z" kommt nämlich "aa" und leer ist somit "--"

Außerdem wäre es ja auch blöd, wenn die Allplanmöglichkeiten den Plankopf bestimmen.
Dann werden wir mit meinem "Gebastel" erst einmal leben müssen.
Früher hat das übrigens alles die alltool Planverwaltung übernehmen müssen! Hat wunderbar funktioniert - wurde dann irgendwann nicht mehr gepflegt und alle Funktionen sowieso nicht genutzt.
Schade nur, dass die einfachsten Sachen immer kompliziert sein müssen.
Auf der anderen Seite, nur so überleben die Plugin Schmieden.

allplan 2021-1-10

in dem Fall bleibt noch, dass man eben nur einen Teilstring untersucht, welcher aus dem 2.Zeichen des Indexes besteht.
_IF_(MID(@389@;2;1)="-")""_ELSE_@397@

in dem Fall bleibt noch, dass man eben nur einen Teilstring untersucht, welcher aus dem 2.Zeichen des Indexes besteht.
_IF_(MID(@389@;2;1)="-")""_ELSE_@397@

Guten Morgen,

ja - die Formel geht, super danke! Das Problem ist halt nur, das eine Formel nicht mit dem Index Sx verknüpft werden kann, so wie das beim Attribut funktioniert.
Für das untere Index-Datum Feld klappt das; für die Indexliste leider nicht - siehe Beispiel Index -b.

Aber das MID werde ich bestimmt noch brauchen. Gibt es eigentlich irgendwo mal eine Liste mit allen Formel Befehlen?
Allplan zerstückelt das Thema ja leider nur fragmentarisch in einzelne FAQs.

VG Peter

allplan 2021-1-10

Anhänge (1)

Typ: image/jpeg
70-mal heruntergeladen
Größe: 49,32 KiB

Zitiert von: schipe

Aber das MID werde ich bestimmt noch brauchen. Gibt es eigentlich irgendwo mal eine Liste mit allen Formel Befehlen?

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

Allplan Webentwicklung

Private messages must be private. No support request via Private message.

1 - 10 (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