Zum Inhalt springen

Datenstempel zum Träger Format auslesen


Empfohlene Beiträge

Hallo,

ich verzweifele gerade ein wenig daran, mir einen Datenstempel zu basteln, der mir das Profil meines Holz-Trägers auswirft. Da ich hier nichts zu dem Thema finden konnte, dachte ich, ich stelle mal eine Frage an die Community.

 

Die Idee ist eigtl. ganz einfach, ich möchte die statischen Angaben meiner Träger in einem Datenstempel auslesen. Ungefähr so: Pos. 001 - Holz 12/32. So weit, so einfach -  denkst du...

Die Positionsnummer und das Material ist noch einfach anzulegen (#StructuralMember#.#MemberID# und #StructuralMember#.#MemberType#), aber beim Format gerät der Vorgang ins Stocken. Für Stahlträger kann man "Trägerprofil" auswählen, das funktioniert gut, aber beim Holzträger klappt das nicht. Dann gibt es noch "Große Breite" und "Große Höhe". Da wirft er dann die richtigen Zahlen aus, allerdings in mm und mit 6!!! Nachkommastellen. Die Einheit und Dezimalstellen hier zu verändern ist ausgegraut und unter Sondereinheiten konnte ich das auch nicht finden. Mit den Zahlen eine Rechenoperationausführen (geteilt durch 10 zB) klappt auch nicht.

Bisher konnte ich mir an dieser Stelle noch anders helfen, indem ich Bounding Box ∆X und Bounding Box ∆Z gewählt habe. Dieser Trick klappt aber nur bei orthogonaler Anordnung und nun ist mein Grundriss leider zueinander verdreht und somit kommen beim X-Wert immer komische Zahlen heraus.

 

Hat jemand das gleiche Problem oder kennt eine Lösung? 🙏

Bearbeitet von Hans-Peter Hansen Petersen

 iMac 24" 2023, Apple M3, 16 GB, macOS Sonoma 14.5 

Vectorworks 2023, SP 8 R1 // Vectorworks 2024, Update 5

Link zu diesem Kommentar

Hallo @Hans-Peter Hansen Petersen

 

vor 55 Minuten schrieb Hans-Peter Hansen Petersen:

da wirft er dann die richtigen Zahlen aus, allerdings in mm und mit 6!!! Nachkommastellen.

Dass man die EInheiten für die Träger nicht formatieren kann ist unglücklich und wird hoffentlich in Zukunft geändert, wie es für andere Objekte auch der Fall ist.


 

 

vor 55 Minuten schrieb Hans-Peter Hansen Petersen:

Mit den Zahlen eine Rechenoperationausführen (geteilt durch 10 zB) klappt auch nicht.

Das stelle ich so auch fest.... was merkwürdig ist... handelt es sich dabei evtl nicht um eine Zahl sondern um einen Text? Das würde zumindest erklären warum die Rechnung nicht funktioniert...
In einer Tabelle lassen sich diese Werte übrigens auch nicht "verrechnen"...


Ich habe als Vorschlag nun nur einen Umweg, der aber auch nicht super "edel" ist:


1.Im Datenstempel gibt es die Tabellenfunktion " #WS_Wert('')# " diese wandelt Text in Zahlen, nach Wunsch mit Rundung.
2. Mit dieser Funktion die Breiten und Höhen Werte in Zahlen wandeln und wenn gewünscht runden
3. Mit diesen Zahlenwerten funktioniert dann deine händische Rechnung " /10 " für die gewünschte Einheit

die Formel im Datenstempel lautet dann bspw:
#WS_WERT('StructuralMember'.'B')##prec_1#/10

Ich habe die einzelteile Farbig markiert.
Die "händsiche" Berechnung und die Einheite dann "händisch" dahinterzuschreiben ('cm') finde ich eher unglücklich. Wird in Zukunft das Trägerobjekt programmtechnisch umgestellt, wird der Datenstempel vielleicht in kommenden Versionen "falsch" sein.

Ich schätze ehrlich gesagt, dass hier noch seitens VW / CW nachgebessert wird.
allein die Bennenung mit bspw. 'StructuralMember'.'B' für die Breite oder 'StructuralMember'.'D' für die Höhe ist dann doch eher kryptisch.


Liebe grüße

Bearbeitet von GSP_nowhere
  • Like 2

...alles Liebe aus Stuttgart.....
MacBook Pro 2,3 8-core (9.te Generation i9) 32 GB / 1 TB SSD / Radeon Pro 5500M mit 8 GB / 16“

MacOS Big Sur 11.6.5

VW 21/22/23 Architektur

Wissen heißt wissen, wo es geschrieben steht.


2115531318_Bildschirmfoto2022-12-01um13_27.thumb.png.c7542b36e9fcb502b400421a69a6b4bd.png

Link zu diesem Kommentar

Vielen Dank @GSP_nowhere...der Weg mag nicht superedel sein, aber das ist ja nun eher Vectorworks geschuldet. Er funktioniert und das ist vorerst die Hauptsache!

Um auf den Weg zu kommen, muss man aber schon echt tief drin sein in der Materie. Chapeau!

Liebe Grüße aus Lübeck

  • Like 1

 iMac 24" 2023, Apple M3, 16 GB, macOS Sonoma 14.5 

Vectorworks 2023, SP 8 R1 // Vectorworks 2024, Update 5

Link zu diesem Kommentar
  • 2 Monate später...

Guten Morgen @Viktor Frank

 

ich klinke mich hier auch mal rein 😉

 

Ich bin über die Suche auf eure tolle Formel gestoßen und möchte sie etwas erweitern:

Je nach Trägertyp soll etwas anderes angezeigt werden. Bei Stahl das entsprechende Profil, bei Holz und Beton der entsprechende Balkenquerschnitt. Prinzipiell bekomme ich das auch hin, jedoch macht er wenn ich einen Schrägstrich / zwischen die Breite und Höhe setze (z.B: 20/40) dann werden die Zahlen geteilt. Setze ich ein x (z.B. 20x40) dann steht das auch nach bei den anderen Trägertypen (z.B: IPE200x). Das ist natürlich doof. Wie kann ich denn beim Träger Formelteile zusammenfassen? Klammern (wie bei den Tabellen und dem Datenamanger) gehen nicht. Warum ist das nicht gleich codiert, das ist doch weng uncool...

 

Meine Formel schaut so aus:

#StructuralMember#.#ProfileSize#@#StructuralMember#.#MemberType#='Stahl':''#WS_WERT('StructuralMember'.'B')##prec_1#/10@#StructuralMember#.#MemberType#='Holz':''x#WS_WERT('StructuralMember'.'D')##prec_1#/10@#StructuralMember#.#MemberType#='Holz':''

 

Dieser Teil erscheint nur, wenn der Trägertyp Stahl ist.

Dies schreibt die Breite in den Stempel, wenn der Typ Holz ist.

Dies schreibt die Höhe in den Stempel, wenn der Typ Holz ist.

 

Dazwischen ist das "x" bzw. der Schrägstrich, der mir Probleme macht. Prinzipiell wäre mir der Schrägstrich lieber, da das die "klassische" Beschriftung ist.

Was ich auc noch möchte: Wenn es ein Betonträger ist sollte "UZ" vor die Maße geschrieben werden, geht das?

 

Der Datenstempel soll also folgendes machen:

Bei Stahlträgern z.B.: IPE200

Bei Betonträgern/Unterzügen z.B.: UZ 20/40

Bei Holzträgern z.B.: Holz 20/40

 

Wenn notwendig füge ich noch eine Brandschutzdefinition an, das klappt aber über unsere eigene Datenbank gut.

 

Viele Grüße,

Burkard

 - - -

Link zu diesem Kommentar

Hallo @b.illig


Deine Anforderung ist komplex, aber theoretisch realisierbar.

Ich möchte noch anstoßen:
Es könnte auch eine Gute Idee sein verschiedene Stempel für die verschiedenen Trägerarten (Holz Beton Stahl) zu erstellen.
Das mindert die Komplexität sowie die zukunftige fehleranfälligkeit bei Änderungen des Träger-tools, an Formelteilen oder im Programm.
Des weiteren wird der Stempel so viel leichter nachzuvollziehen, wenn mal etwas Zeit vergangen ist oder er geändert werden soll.

 

vor 1 Stunde schrieb b.illig:

Warum ist das nicht gleich codiert, das ist doch weng uncool...

Der Datenstempel hat in gewisser Weise eine eigene Syntax, stimmt, man kann aber, sobald man eine Tabellenfunktion aufruft, auch mit der reinen Tabellensyntax arbeiten.
hast du denn eine Tabellenformel die bereits so funktioniert wie du es dir wünscht?


Liebe Grüße

Viktor
 

Bearbeitet von Viktor Frank
Link zu diesem Kommentar
vor 3 Stunden schrieb b.illig:

Warum ist das nicht gleich codiert, das ist doch weng uncool...

Mit Vectorworks 2022 hat Vectorworks Inc. begonnen die datenbasierten Funktionalitäten zu vereinheitlichen, indem der Datenmanager die Syntax der Tabellenformeln übernahm. Das ist als erster Schritt zu sehen. Dass im Datenstempel seit Vectorworks 2023 alle Tabellenfunktionen zur Verfügung stehen ist ein Zwischenschritt.

Wann der Datenstempel die Tabellenformelsyntax übernimmt weiß ich zu diesem Zeitpunkt nicht.

  • Like 1

Gruß


Antonio Landsberger

ComputerWorks GmbH

http://www.computerworks.de

Link zu diesem Kommentar

Hi Viktor,

 

ja, einzelne Stempel klappen, schön wäre jedoch schon ein Einzelner.

Ich probiers mal mit der Tabellen-Syntax. Momentan schaut's so aus, ich scheitere daran, "B/H" richtig einzustellen:

=IF('StructuralMember'.'MemberType'='0'; 'StructuralMember'.'ProfileSize'; IF('StructuralMember'.'MemberType'='1'; ('StructuralMember'.'B'); 'XX'))

 

ich würde jetzt gerne folgendes einstellen:

...IF('StructuralMember'.'MemberType'='1'; (UZ 'StructuralMember'.'B'/'StructuralMember'.'D')...

Rauskommen soll hier UZ 20/40. Klar, der "/" ist ja auch für "geteilt durch", jedoch hat stattdessen auch ein "x" nicht funktioniert. Immer wenn ich vor / nach 'StructuralMember'.'B' etwas ergänze klappt die Formel nicht. Man müsste die Bedingungen doch mit Klammen entsprechend tiefer verschachteln können, oder?

 

Viele Grüße,

Burkard

Bearbeitet von b.illig
  • Like 1

 - - -

Link zu diesem Kommentar

Hi Burkhard

 

in der Tabelle und im Datenstempel bekomme ich mit folgender Formel einen Inhalt angezeigt:

 

=IF(('StructuralMember'.'MemberType'='0'); 'StructuralMember'.'ProfileSize'; IF(('StructuralMember'.'MemberType'='1'); VERKETTEN('StructuralMember'.'B'; '/'; 'StructuralMember'.'D'); 'XX'))

 

Du musst jetzt nur noch tiefer verschachteln.

 

LG

Tobi

Bearbeitet von tobiaskern
  • Like 3

/  /  /  /  /

 

VW 2024 Update 6 (Build 765860)


MacBook Pro 16"  |  2023  |  M3 Max  |  128 GB Ram
macOS Sonoma 14.6

Link zu diesem Kommentar

Hier die oben genannte Formel-Syntax umgebaut als IFS-Formel:

 

=IFS(('StructuralMember'.'MemberType'='0'); 'StructuralMember'.'ProfileSize'; ('StructuralMember'.'MemberType'='1'); VERKETTEN('StructuralMember'.'B'; '/'; 'StructuralMember'.'D'))

 

LG

Tobi

  • Like 1
  • Lieben 1

/  /  /  /  /

 

VW 2024 Update 6 (Build 765860)


MacBook Pro 16"  |  2023  |  M3 Max  |  128 GB Ram
macOS Sonoma 14.6

Link zu diesem Kommentar

Ihr seid spitze!

 

so sieht meine Formel jetzt aus:

=IFS(('StructuralMember'.'MemberType'='0'); 'StructuralMember'.'ProfileSize'; ('StructuralMember'.'MemberType'='1'); VERKETTEN('UZ '; 'StructuralMember'.'B'; ' / '; 'StructuralMember'.'D'); ('StructuralMember'.'MemberType'='2'); VERKETTEN('Holz '; 'StructuralMember'.'B'; ' / '; 'StructuralMember'.'D'))

 

So hab ich meine drei Trägerarten schön sortiert. Kleines Manko: B/D wird in mm mit den vielen Nachkommstellen angegeben. nur cm wäre besser.

 

@Viktor Frank kann man das in die Syntax für den Datenstempel übersetzen?

 

Vielen vielen vielen Dank,

Burkard

  • Like 1

 - - -

Link zu diesem Kommentar
vor 7 Minuten schrieb b.illig:

kann man das in die Syntax für den Datenstempel übersetzen?

Das sollte so aussehen:
#WS_IFS('StructuralMember'.'MemberType'='0'; 'StructuralMember'.'ProfileSize'; 'StructuralMember'.'MemberType'='1'; VERKETTEN('UZ '; 'StructuralMember'.'B'; ' / '; 'StructuralMember'.'D'); 'StructuralMember'.'MemberType'='2'; VERKETTEN('Holz '; 'StructuralMember'.'B'; ' / '; 'StructuralMember'.'D'))#

  • Like 2

Gruß


Antonio Landsberger

ComputerWorks GmbH

http://www.computerworks.de

Link zu diesem Kommentar

Hi Burkhard

 

verfeinern könnte man wie folgt (in der Tabelle  + Datenstempel)

 

TXT(WERT('StructuralMember'.'B'); 'Dim';  '0.'; 'NoUnits')

 

Der Block muss anstatt:

 

'StructuralMember'.'B'

 

eingesetzt werden.

… und auch für 'StructuralMember'.'D'

 

… irgendwie doof, dass man den Inhalt aus 'B' und 'D' erst in einen Wert

umwandeln muss.

 

Obacht:

'B' und 'D'  wird dann zu Text und es kann nicht mehr damit gerechnet werden!

 

LG

Tobi

Bearbeitet von tobiaskern
  • Like 2

/  /  /  /  /

 

VW 2024 Update 6 (Build 765860)


MacBook Pro 16"  |  2023  |  M3 Max  |  128 GB Ram
macOS Sonoma 14.6

Link zu diesem Kommentar

Hallo @b.illig

Ich bin leider ausser Haus auf dem Weg zu einem Kundentermin ... daher nur reduziert Internetzugang.
Entschuldige, dass ich nicht richtig antworte, aber die sehr kompetenten Kollegene leisten ja ganze Arbeit ! 🙂


Allgemein noch zur Syntax des Datenstempels:

Sobald eine Tabellenfunktion im Datenstempel aufgerufen wurde, lässt sich innerhalb dieser mit der Tabellensyntax arbeiten!
Tabellenfunktionen haben den selben Namen wie sonst, nur mit dem Präfix und Suffix #WS_ .... #
WS=Worksheet
Bspw.:
#WS_IF( reine tabellensyntax )#

Daher kann man seine Formel auch in einer Tabelle aufbauen, sofern die äußerste Funktion eine Tabellenfunktion bedeutet.
Diese äußerste Funktion hat dann noch die Schreibweise/Syntax des Datenstempels.

@tobiaskern und @Antonio Landsberger


haben nun ja alle entscheidenden Tips gegeben! 🙂

 

Liebe grüße

Bearbeitet von Viktor Frank
  • Like 2
Link zu diesem Kommentar

Hi,

 

Ich teste immer erst in der Tabelle, funktioniert die Formel dort,

dann übernehme ich sie in den Datenstempel.

 

Dieser Workflow hat sich bewährt und ist schneller, als der "mühsamere" Weg

über die Datenstempeleinstellungen.

 

LG

Tobi

  • Like 2

/  /  /  /  /

 

VW 2024 Update 6 (Build 765860)


MacBook Pro 16"  |  2023  |  M3 Max  |  128 GB Ram
macOS Sonoma 14.6

Link zu diesem Kommentar

@tobiaskern

Das mache ich genau so.
lediglich für einfache / einzelne Feldabfragen nutze ich direkt die Oberfläche und Syntax des Datenstempels.
Wenn es um komplexere Themen geht gehe ich immer den Weg über die Tabellenfunktionen / die Tabelle selbst.
Dann folgt die Übernahme in den Datenstempel.
Vor allem ist hier schön, dass man direkt in der Tabelle die Ergebnisse für die verschiedenen Fälle der Formel prüfen kann, wie in diesem wunderbaren Beispiel.

@b.illig kamst du nun mit deiner vollständigen Formelzusammenstellung zurecht ? oder benötigst du noch Hilfe ?

Aufgrund der nun doch höhern Komplexität der Formel nochmal der Gedankenanstoß evtl einen Stempel je Trägerart zu benutzen.... ( Ich persönlich bin natürlich auch Fan der/deiner komplexen Zusammenstellung und des "All in One" Stempels🙂 )

Liebe grüße

Bearbeitet von Viktor Frank
  • Like 2
Link zu diesem Kommentar

Sehr sehr cool. Mit der Tabellensyntax komme ich schon etwas besser klar.

 

Ich möchte jetzt noch aus den Zahlen für die Träger (die ja in mm ankommen, also z.B. 200/400) gerne cm (also 20/40) machen.

 

Wenn ich jetzt in meine Formel:

=IFS(('StructuralMember'.'MemberType'='0'); 'StructuralMember'.'ProfileSize'; ('StructuralMember'.'MemberType'='1'); VERKETTEN('UZ '; TXT(WERT('StructuralMember'.'B'); 'Dim'; '0.'; 'NoUnits'); ' / '; TXT(WERT('StructuralMember'.'D'); 'Dim'; '0.'; 'NoUnits')); ('StructuralMember'.'MemberType'='2'); VERKETTEN('Holz '; (TXT(WERT('StructuralMember'.'B'); 'Dim'; '0.'; 'NoUnits')); ' / '; (TXT(WERT('StructuralMember'.'D'); 'Dim'; '0.'; 'NoUnits'))))

 

den Block ... (TXT(WERT('StructuralMember'.'D'); 'Dim'; '0.'; 'NoUnits') noch durch zehn teilen möchte also mit "/10", dann bekomme ich als Meldung "#Value".

 

Wenn ich statt 'Dim' eine der Einheiten verwende passt's auch nicht, wenn ich 'Centimeters' einstelle. Hier passt dann die 'Meters'-Einstellung für die mm Zahl die der Träger auch sonst auswirft.

 - - -

Link zu diesem Kommentar

Hi Burkard;

 

So:

TXT(WERT('StructuralMember'.'B')/10; 'Dim'; 'General'; '0.'; 'NoUnits')

 

… Einheiten scheinen hier nicht gemäß Syntax-Beschreibung zu funktionieren.

 

Ich vermute, es liegt daran, dass man TXT und WERT kombinieren muss.

 

LG

Tobi

  • Like 1
  • Lieben 1

/  /  /  /  /

 

VW 2024 Update 6 (Build 765860)


MacBook Pro 16"  |  2023  |  M3 Max  |  128 GB Ram
macOS Sonoma 14.6

Link zu diesem Kommentar
  • 3 Monate später...

Klinke ich mich seitlich hier...
Ich möchte ein Stempel mit der Sölenhöhe erstellen... ich würde schon die Formel in ähnlichen Sinn anwenden, aber habe ich die folgende Fehler bekommen...
image.png.bd6b337d8691c1346641382aff2751eb.png
Breite und Höhe in Tabelle stimmen nicht mit die "echte" Maße des Profilstyp... habe ich etwas falsch hier gemacht?
 

Vectorworks 2022.SP 6R1. Windows 10.

11th Gen Intel i7-11800H @ 2.30GHz - 32GB RAM- NVIDIA GeForce RTX 3070 Laptop GPU

Link zu diesem Kommentar

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden
  • Forenstatistik

    • Themen insgesamt
      24,1Tsd
    • Beiträge insgesamt
      124,3Tsd
×
×
  • Neu erstellen...