Das Wissen aller Anwender nutzen

Im Allplan Connect Forum tauschen sich Anwender aus, geben wertvolle Tipps oder beraten sich bei ganz konkreten Aufgabenstellungen − auch international.
Und damit wirklich keine Frage unbeantwortet bleibt, unterstützen die Mitarbeiter des Technischen Supports ebenfalls aktiv das Forum.

Es erwarten Sie:

  • Foren-Vielfalt aus CAD Architektur, CAD Ingenieurbau uvm.
  • Tipps von User für User
  • international: Deutsch, Englisch, Italienisch, Französisch und Tschechisch

Melden Sie sich jetzt an und diskutieren Sie mit!

Zur Registrierung

[Frage] Von Fensterbank(SmP) auf Fenster(SmP) verweisen

Schlagworte:
  • Report
  • Variables Beschriftungsbild
  • Formel
  • Nevaris
  • SmartPart
  • Fenster
  • Fensterbank

Hallo Zusammen,

heute mal wieder eine knifflige Frage.

Ich Versuche per Formel (z.B. als Beschriftungsbild) über das Fensterbank-SmartPart Attribute von dem Fenster-SmartPart in der gleichen Fensteröffnung auszuwerten.

Konkret: Ich möchte eine Bestimmte Position in Nevaris ansprechen, wenn die Fensterbank neben einem Fenster liegt mit bestimmten Gewerk und bestimmten U-Wert-Bereich.
eine passende MT-Funktion konnte ich nicht finden, auch eine Verschachtelung aus PARENT und MT führte zu keinem Erfolg.#
hat zufällig jemand eine Idee?

Vielen Dank
Flo

Viele Grüße
Florian

LinkedIn-Profil

www.vollack.de

evtl könnte man mit hoch und runterkucken etwas erreichen....

d.h. mit MT_Fenster() nach oben
und CHILD() da drinn dann nach unten

in der art evtl. MT_Fenster(CHILD(_IF_(@OBJ@=Fenstersmartnummer_raussuchen)@wunschattribut@_ELSE_"nix"))

Namenlos gezeichnet in vollem Bewusstsein - ignorant, in eigen Augen vermutlich höflich, dennoch unhöflichst, unfreundlichst wer einen/viele vermutete - sich von alters erschließende Namen nennt.
[b]

Vom Fenster-SmartPart aus:
PARENT -> bekommt man die Öffnung
CHILD-> bekommt man das/die eingebauten SmartParts

Wenn die Reihenfolge stimmt, d.h. die Fensterbank ist das erste SmartPart in der Öffnung, dann:
PARENT(CHILD(@attr@))

Man kann leider in der Formel nicht das 2.CHILD anwählen, falls die Reihenfolge nicht stimmt
(Fenster ist 1. SmartPart, Fensterbank ist 2. SmartPart)

Bei 3 oder mehr SmartParts in der Öffnung, kommen dann die Werte mit "/" getrennt an!

1. mit Parent erhält man nur dann die Öffnung, wenn kein raum da ist -> für diesen zweck damit unbrauchbar
2. beim runterschauen benötigt man zwei mal CHILD... da ist noch das Fensterelement dazwischen.
3. mit einer IF/ELSE abfrage kann man schön nach dem Objekt filtern. (Fenstersmartpart 991, fensterbanksmartpart 1012)

damit ergibt sich folgende einfache formel, welche die bezeichnung des fenstersmartparts ausgibt, wenn eine fensterbank beschriftet wird

MT_Fenster(CHILD(CHILD(_IF_(@OBJ@=991)@507@_ELSE_"")))

Reihenfolge der Objekte UND anzahl der objekte in der öffnung sind vollkommen egal.

Namenlos gezeichnet in vollem Bewusstsein - ignorant, in eigen Augen vermutlich höflich, dennoch unhöflichst, unfreundlichst wer einen/viele vermutete - sich von alters erschließende Namen nennt.
[b]

wow, super! danke für die Antworten.

die Formel von Markus funktioniert bei mir nur, wenn ich kein Brüstungselement in der Öffnung habe, also scheint doch eine reihenfolge wichtig zu sein? ich werde das mal als Grundlage für weitere "Forschungen" nehmen.

Viele Grüße
Florian

LinkedIn-Profil

www.vollack.de

richtig. ich hatte kein brüstungselement.. das lass ich links liegen, weil ich zumeist fensterbänke verwende..

probier mal..

MT_Fenster(MT_Fenstermakro(@507@))

Namenlos gezeichnet in vollem Bewusstsein - ignorant, in eigen Augen vermutlich höflich, dennoch unhöflichst, unfreundlichst wer einen/viele vermutete - sich von alters erschließende Namen nennt.
[b]

Also diese Formel funktioniert immer:
mit/ohne Raum, mit/ohne Leibungselement, mit/ohne Brüstung
@507@ ist das Attribut der Fensterbank, welches man haben möchte

MT_Fensteröffnung(CHILD(_IF_(@OBJ@=43)CHILD(_IF_(@OBJ@=1012)@507@_ELSE_"")_ELSE_(_IF_(@OBJ@=1012)@507@_ELSE_"")))

Pseudo-Code:

IF CHILD.Objekttyp == Leibungselement THEN
   IF CHILD.CHILD.Objekttyp == Fensterbankmakro THEN
      CHILD.CHILD.ATTRIBUT 507
   ELSE
      ""
   ENDIF
ELSE
   IF CHILD.Objekttyp == Fensterbankmakro THEN
      CHILD.ATTRIBUT 507
   ELSE
      ""
   ENDIF
ENDIF