icon

Support Forum

[Frage] Formelattribut "lichte Raumhöhe" bei mehreren "freien" Deckenflächen in einem Raum [Gelöst]


Hallo liebe Allplaner,

ich stehe grade vor einer Herausforderung die mich schon länger beschäftigt.

Ich möchte meine Räume mit einem Formelattribut bestücken, welches die lichte Raumhöhe wiedergeben soll. Hauptproblem ist, dass wir sehr oft mehrere Decken im Raum haben (wg. unterschiedlichen Materialien und/oder Deckenversprüngen).

Aktuell beschriften wir unsere Decken separat. Dieselbe Formel ist als Formelattribut an den Deckenflächen dran und sieht wie folgt aus:

@Oberkante@/1000)-(PARENT(@Unterkante@/1000))-(PARENT(Obj_Floor(@Schichtdicke@;1;2;3;4;5)/1000))-(Obj_Ceiling(@Schichtdicke@;1)/1000))

Soweit so gut.
Nun möchte ich genau die Information gerne am Raum haben. Hierzu wären zwei Lösungsansätze denkbar:
1. Über IF/ELSE-Funktion per "Triggerattribut" die "Hauptecke" priorisieren, sodass die ausschlaggebende Decke zitiert wird.
2. Alle möglichen Deckenhöhen im Raum werden in einer String geschrieben Bspw.: 2.50/2.80

Die Formel _IF_(CHILD(MT_Decke(@Bezeichnung@;0)="Innenausbau"))CHILD(MT_Decke(@Lichte_Raumhöhe_Decke@;0))_ELSE_""
addiert mir leider die Werte beider Deckenhöhen. Ich verstehe warum er das macht. Die Frage die sich mir stellt ist, wenn ich per IF EINE Decke anspreche, kann ich auch nur die Werte DIESER Decke auslesen lassen?
Ideal wäre natürlich ein Weg ohne VST

Anhänge (2)

Typ: image/jpeg
31-mal heruntergeladen
Größe: 39,67 KiB
Typ: image/jpeg
12-mal heruntergeladen
Größe: 55,63 KiB

Lösung anzeigen Lösung verbergen

Wenn Child() auf Texte trifft, so werden diese mit "/" getrennt dargestellt...
damit muss man nur dafür sorgen, dass Allplan in der Klammer einen Text vorfindet... d.h. mache aus Zahl einen formatierten Text...

_IF_(CHILD(MT_Decke(@Bezeichnung@;0)="Innenausbau"))CHILD(FORMAT("%.2f";MT_Decke(@Lichte_Raumhöhe_Decke@;0)))_ELSE_""

Die Kunst, welcher ein Ingenieur vermutlich erlernte ist weit genug lesen zu können, um Informationen quer übergreifend verwenden zu können.
Die Kunst als Ingenieur zu überlegen ist mit geänderten Rahmenbedingungen nicht zu verzweifeln.

Das funktioniert leider nicht!
Mit CHILD kann man kein einzelnes Element ansprechen! Es werden immer alle zurückgegeben, entweder als Summe (bei numerischen Werten) oder mit "/" getrennt (bei Texten).

@Allplan:
Es fehlt so etwas wie eine MIN bzw. MAX-Funktion, die den kleinsten bzw. größten Wert aus den CHILD-Einelwerten ermittelt. Dann könnte man einfach so etwas machen:

MIN(CHILD(Obj_Ceiling(@Lichte_Raumhöhe_Decke@)))

Die MIN-Funktion gibt es schon. Man müßte nur die Rückgabe der CHILD-Werte als Einzelwerte organisieren, wenn
CHILD(...) in einer MIN()-Funktion aufgerufen wird.

Ergänzend braucht man sicher die gezielte "Ansprache" eines bestimmten CHILDs:
CHILD(Formel;Index)
die nur den Werte des (nullbasierten) CHILD-Index zurückgibt.

Hab ich mir fast gedacht.

Das mit der MIN- bzw. MAX-Funktion habe ich gedanklich mal durchgespielt und muss sagen, dass uns das in dem Fall nicht weiterbringt.
MIN würde die geringste Deckenhöhe zitieren = Bei Abkofferungen nicht so gut.
MAX würde die höchste Deckenhöhe zitieren = Bei höhenliegenden Randfriesen nicht so gut.

Mit CHILD kann ich schon einzelne Elemente unter bestimmten Umständen ansprechen, den Wert jedoch nicht ohne weiteres zitieren.
Bsp.: Formelattribut am FensterSmartPart:

_IF_(MT_Fensterelement(CHILD(@Bezeichnung@))="*Raffstore*")"R"_ELSE__IF_(MT_Fensterelement(CHILD(@Bezeichnung@))="*Jalousie*")"J"_ELSE_"NEIN"
IF sucht hier alle CHILDs die in dem PARENT "Fensteröffnung" platziert sind im String nach der Bezeichnung. Wenn im String "Raffstore" vorkommt wird "R" wiedergegeben, wenn Jalousie vorkommt gibt wird "J" wiedergegeben, ansonsten "NEIN".

@Allplan.
Wünschenswert wäre, dass wenn ich im String nach einem bestimmten Wert suche, einen anderen Wert des gefundenen Bauteils wiedergeben kann.
Dann könnten wir zumindest ein Triggerattribut "Hauptdecke" = JA/NEIN erstellen und die IF-Bedingung an dieses Attribut verknüpfen. Quasi wenn Attribut Hauptdecke = "JA" dann @Lichte_Raumhöhe_Decke@ ansonsten ""

@Nemo
Im F-Format werden die Werte addiert, im A-Formt der komplette Rechenweg wiedergegeben (Block1 + Block2). Ich habe gehofft, dass es eine FORMAT-Funktion gibt, bei dem ich den kompletten Rechenweg so formatieren kann, dass Block 1 und Block 2 separat als Ergebnis ausgerechnet werden und ich dazwischen ein "/" als Text setzen kann, also "Ergebnis1 / Ergebnis2"

Hi Hakan,

ENG: The formula you used shows the total as a numerical result. Can you define the formula you used as a new text attribute and try it?
DEU: Die von Ihnen verwendete Formel ergibt ein numerisches Ergebnis und zeigt es daher als Gesamtsumme an. Können Sie die von Ihnen verwendete Formel als neues Textattribut definieren und ausprobieren?

Hatem OZDEMIR
Architect | Allplan Trainer | BIM Manager
Website: http://www.bimakademi.com
e-mail: hatemozdemir[at]gmail.com
Ankara / Turkiye
LinkedIn - Profil
Udemy - Profil
YouTube - Channel

Wenn Child() auf Texte trifft, so werden diese mit "/" getrennt dargestellt...
damit muss man nur dafür sorgen, dass Allplan in der Klammer einen Text vorfindet... d.h. mache aus Zahl einen formatierten Text...

_IF_(CHILD(MT_Decke(@Bezeichnung@;0)="Innenausbau"))CHILD(FORMAT("%.2f";MT_Decke(@Lichte_Raumhöhe_Decke@;0)))_ELSE_""

Die Kunst, welcher ein Ingenieur vermutlich erlernte ist weit genug lesen zu können, um Informationen quer übergreifend verwenden zu können.
Die Kunst als Ingenieur zu überlegen ist mit geänderten Rahmenbedingungen nicht zu verzweifeln.

Zitiert von: _QAF____
Wenn Child() auf Texte trifft, so werden diese mit "/" getrennt dargestellt...

damit muss man nur dafür sorgen, dass Allplan in der Klammer einen Text vorfindet... d.h. mache aus Zahl einen formatierten Text...
_IF_(CHILD(MT_Decke(@Bezeichnung@;0)="Innenausbau"))CHILD(FORMAT("%.2f";MT_Decke(@Lichte_Raumhöhe_Decke@;0)))_ELSE_""

Wow, 1000 Dank! Das ist genau das was ich gesucht habe. Manchmal sieht man den Wald vor lauter Bäumen nicht oder die Lösung vor lauter "("%@" nicht.

Anhänge (1)

Typ: image/jpeg
49-mal heruntergeladen
Größe: 19,13 KiB