Support Forum

[Frage] Türnummer von der "falschen" Raumseite ableiten?

Schlagworte:
  • Report
  • Tür
  • Raum
  • Türnummer
  • Auswertung

Guten Tag,

standardmäßig ordnet Allplan ja Türen dem Raum zu, in den sie aufschlagen. Beim Report "Türen (mit Qualitäten)" wird der Tür automatisch die Nummer dieses Raumes als Türnummer zugeordnet, mit dem Attribut "Tür_Nr_Zusatz" kann auch noch eine Art Index hinzugefügt werden, der im Report ebenfalls auftaucht. So weit, so gut.

Nur wie geht man vor, wenn wie in meinem Fall die Türen von Pflegezimmern alle in Richtung Flur öffnen? Kann man Allplan irgendwie dazu bringen die Türen dem "falschen" Raum zuzuordnen? Denn aktuell bekomme ich im Report dutzende Türen mit der selben Nummer (des Flures) gelistet

Vielen Dank,
Matthias

Es gibt den Standard-Report Ausbau->Fenster,Türen->Türöffnungen, der alle anliegenden Räume zu einer Türöffnung auflistet.

Die Formel dafür ist: MT_Raum(@507@) Das ist wohlgemerkt von der Türöffnung aus gesehen.

Wenn man allerdings vom Makro/SmartPart aus MT_Raum(@507@) aufruft, bekommt man nur den einen Raum, in den die Tür schlägt!

Vom Makro aus gesehen kommt man auf die Türöffnung mit PARENT() bzw. PARENT(PARENT()), wenn noch ein Leibungselement drin ist.

Also wäre die Formel für die anliegenden Räume vom Makro aus:

PARENT(MT_Raum(@507@)) bzw. PARENT(PARENT(MT_Raum(@507@)))

Anhänge (1)

Typ: image/png
222-mal heruntergeladen
Größe: 120,52 KiB

Vielen Dank! Aber kann man die Formel auch so gestalten, dass im Report "Türen (mit Qualitäten).rdlc" wirklich nur eine Raumnummer der Tür zugeordnet wird? Sprich: Türnummer = Raumnummer, Seitenwahl im besten Fall nach Bedarf? Im Report wird folgende Formel für Spalte 1 "Tür-Nr." verwendet:

(_IF_((@27502@ + @27503@+@27504@).eq."")MT_Raum(@507@)_ELSE_@27504@) + (_IF_(@27500@.eq."")""_ELSE_("-"+@27500@))

bzw. in Langform:

(_IF_((Lage_Ebene_automatisch + Lage_Raumnr_automatisch+Lage_Raumfunktion_automatisch).eq."")MT_Raum(Bezeichnung)_ELSE_Lage_Raumfunktion_automatisch) + (_IF_(Tür_Nr_Zusatz.eq."")""_ELSE_("-"+Tür_Nr_Zusatz))

Abgesehen davon, dass ich beim Rest noch nicht so durchsteige (auch wenn ich mir die Attribute im Attributmanager anzeigen lasse), wird hier über "MT_Raum(@507@)" die Raumnummer als Türnummer verwendet. Leider funktioniert der Report nicht mehr richtig, wenn ich "MT_Raum(@507@)" gegen "PARENT(MT_Raum(@507@))" austausche.

Wenn man dann allerdings einen Schritt weiter denkt und der Report angepasst wurde und funktioniert, kommt ja das nächste Problem. Dann würde für alle Türen die "falsche" Raumseite genutzt, ich bräuchte es aber nur für die Zugangstüren zu den Pflegezimmern...

Vor einiger Zeit war ich in Weimar auf einer Infoveranstaltung zu Thema Design2Cost (von Andreas Damrau). Dort wurde auch eine automatisch generierte Türliste präsentiert, explizit mit dem Hinweis auf Krankenhausbau. Die IBD Leute müssten das Problem daher kennen. Da wir IBD nicht nutzen, kann ich leider nicht sagen, wie die Türnummerierung dort umgesetzt wurde, ob automatisch, oder dann doch händisch (z.B. Türnummer in "Bezeichnung" eintragen).

Ich habe Dir nur den Weg gezeigt, gehen musst Du schon selber!

Es geht m.E. nur über ein zusätzliches Attribut "Raumzuordnung entgegen Schlagrichtung", welches Du für die betreffenden
Türen auf "1" setzen musst.

Dann muss man in der Formel für die "automatische Türnummer" nur noch dieses Attribut abfragen, und wenn es "1" ist,
mit den oben beschriebenen Formeln die Bezeichnung des entgegengestzten Raumes herausfinden.

Da ich mich erst seit kurzem mit den Reports, Attributen, etc. beschäftige, bin ich für jede Hilfe wirklich sehr dankbar. Trotzdem fehlt ehrlich gesagt noch die Routine und alleine wegen der, sagen wir mal, suboptimalen Benutzerfreundlichkeit Allplans in diesen Bereichen, ist vieles noch trial & error. Die von Dir gezeigte Abfrage eines benutzerdefinierten Attributs hört sich gut an und ich werde das im nächsten Schritt auch probieren. Aber aktuell scheitern so manche Ideen wohl vor allem an Syntaxfehlern und dann steht man in einer Sackgasse und kommt einfach nicht weiter. Da wäre weitere Hilfe wirklich super. Das hat dann auch wirklich nichts mit Faulheit zu tun und das man alles fix und fertig vorgesetzt bekommen möchte. Ich will hier ja selber voran kommen, aber aller Anfang ist schwer...

Ich muss mich korrigieren: Vom Makro zur Öffnung kommt man mit MT_Türöffnung() , nicht mit PARENT().

Für das Beschriftungsbild lautet die Formel:

_IF_(@1441@="")MT_Raum(@507@)_ELSE_MID(MT_Türöffnung(MT_Raum(@507@));WENN(FINDEN(MT_Raum(@507@);MT_Türöffnung(MT_Raum(@507@)))=1;FINDEN("/";MT_Türöffnung(MT_Raum(@507@)))+1;1);LÄNGE(MT_Türöffnung(MT_Raum(@507@)))/2)

Das "Kennzeichnungsattribut" ist "Öffnungszweck"(@1441@). Wenn dort irgendetwas drin steht, wird der
dem Türschlag entgegengesetzte Raum geliefert. Leider funktioniert das nur wenn die Raumnummern gleich lang sind,
und auch wirklich genau 2 Räume anliegen.
Diese Bedingung könnte man nur aufheben, wenn man weitere WENN()-Abfragen einführt.
Leider ist die Länge der Formel auf 256-Zeichen beschränkt...
Abhilfe für das VTB könnte man schaffen, indem man die Auswertung in der functions.vbs macht.

Die Formel wird im Report ggf. nicht funktionieren, weil dort die deutschen Excel-Funktionen benutzt werden.

Im Report ist die Ableitung einer Türnummer aus der Raumnummer auch nicht zielführend!
Das kann/sollte man vorher in einem xac.Export machen, und in ein Attribut "Türnummer" speichern!

Am besten wäre es, wenn es "berechnete Attribute" geben würde, wo solche Formeln direkt ausgewertet und in das Attribut geschrieben würden!

Die Formel muss ich jetzt erstmal sacken lassen

Als auf die Schnelle abgesetztes VTB funktioniert es, aber wie Du schon angemerkt hast nur wenn genau 2 Räume anliegen.

Trotzdem ernüchternd, das der an sich gute Report "Türen (mit Qualitäten)" so etwas nicht bedenkt und auch Nemetschek das nicht auf dem Schirm hat. Klar, in meinem Fall sind das dutzende Türen, aber schon bei einem kleineren Projekt, wo vielleicht eine Handvoll Türen (z.B. Technikräume) in einen gemeinsamen Flur aufschlagen, fällt das doch auf und stellt den Nutzen des Reports in Frage.

Wobei... schon wieder ein Denkfehler. Wie Du ja schreibst, ist die Ableitung im Report auch keine Lösung, da man dann zwar eine Türnummer im Report hat, diese aber nicht in der Tür verankert ist. Da ist die Variante über ein Attribut "Türnummer" wohl die einzige Lösung. Andererseits könnte man, solange es keine "berechnete Attribute" gibt, über einen Report die Türnummernvergabe anhand der Raumnummer automatisch durchführen lassen und anschließend in die Tür zurückschreiben. So ist halt wieder Handarbeit angesagt...

Muss jetzt probieren, was in der Praxis schneller ist:
-Türnummern händisch in Allplan vergeben oder
-Türen zunächst "falsch" aufschlagen lassen und Türnummern über xac in Excel eintragen, am Ende Aufschlag korrigieren. Denn ohne den "falschen" Aufschlag kann man die einzelnen Türen in Excel zunächst gar nicht identifizieren/zuordnen.

...oder fragst bei Alltool den AttributEditor an!

Gruß, Martin

Tell me and I forget.
Teach me and I remember.
Involve me and I learn.
Benjamin Franklin

Ergänzung:

Auf der Seite https://www.allplan.net/blog/nummerierung-von-tueren-bei-beschriftung-und-tuerliste wird auf die IBD Türliste eingegangen:

"Entscheidend ist, dass die Beschriftung der Türen über die Objektattribute bei Pos Nr. gesteuert und eingegeben werden, damit ist gewährleistet dass der Beschriftungstext als auch Liste übereinstimmen:

Diese erfolgt nicht automatisch als laufende Nummer, ist jedoch einfach einzugeben bei der Beschreibung der Qualitäten der Türen, die ohnehin eingegeben werden müssen wenn man ordentliche Türlisten ausgeben möchte."

Also wird auch bei IBD die Positionsnummer manuell vergeben. Das beruhigt ein wenig...

EDIT:
Alltool AttributEditor werde ich mir anschauen!

Der Ansatz den "falschen" Raum über die Türöffnung zu ermitteln funktioniert bei mehrschichtigen Wänden und den darin enthaltenen Türen nicht. Damit dürfte der Ansatz ausfallen.

Die im Report Türen (mit Qualitäten) verwendenden drei Attribute (Lage_Ebene_automatisch, Lage_Raumnr_automatisch, Lage_Raumfunktion_automatisch) funktionieren so, dass dort bei ABWEICHUNG vom Standardfall eine Eingabe erfolgt und damit dann die explizit vergebenen Werte ausgeworfen werden.