Matteo Geschrieben 30. April 2020 Teilen Geschrieben 30. April 2020 Moin zusammen, Wir sind gerade dabei, uns weiter mit dem Datenmanager von Vectorworks zu befassen. Eine Idee ist es, Objekt-PSets direkt über Objekt-Stilnamen zu kontrollieren. u.a. sind folgende Bestandteile geplant: 1) (WA=Wall, ST=Stütze=Column,...) 2) A=Aussen(outside); I=Innen(inside) 3) TR=Tragend(load bearing - yes); NTR=nichttragend(load bearing - no) Der Name lautet dann in etwa folgendermaßen: WA-A-TR für eine Wand - Außen - tragend WA-I-NTR wäre dann zum Beispiel eine nichttragende Innenwand... .... Im Datenmanager wollen wir entsprechend diverse Kriterien abfragen: 2) - Prüfung ob Außen- oder Innenwand if([Style.Name]='WA*','TRUE','FALSE') - doesn't work if([Style.Name]<'WA-I','TRUE','FALSE') does work 3) - Prüfung ob tragend oder nichttragend if([Style.Name]='*TR*','TRUE','FALSE') doesn't work if([Style.Name]<'WA-A-TR','FALSE',if([Style.Name]<'WA-I-TR')&([Style.Name]>'WA-A-TR-Z-999'),'FALSE','TRUE') does work Wieso funktionieren die Platzhalter nicht? Gibt es da vielleicht eine Alternative zu den Platzhaltern? Eine andere Abfrage als IF? Ich habe das schonmal auf Englisch im internationalen Vectorworks-Board gepostet: https://forum.vectorworks.net/index.php?/topic/71400-data-manager-if-clause-with-wildcard-like-ifstylenametr-doesnt-work/&tab=comments#comment-349597 MacBook Pro 16" - macOS 13 - Ventura - 2,3 GHz 8-Core Intel Core i9, 16GB RAM, AMD Radeon Pro 5500M 8 GB VRAM Vectorworks 2022 - SP6 Vectorworks 2023 - SP6 Link zu diesem Kommentar
pappadam1984 Geschrieben 30. April 2020 Teilen Geschrieben 30. April 2020 Hi Matteo, mit der IF-Abfrage allein kommst du dort nicht weit. Du brauchst die FIND-Abfrage, die nach einem bestimmten String in der Bezeichnung sucht. Versuch es mal damit: IF((FIND('WA-A', [STYLE.NAME]) = 0), 'True', 'False'). Funktionieren könnte auch SELECT2. Da müsstest du aber auch etwas experimentieren. Gruß! iMac (Retina 5K, 27", 2020) macOS Big Sur Prozessor: 3,8 GHz 8-Core Intel Core i7 Speicher: 40 GB 2133 MHz DDR4 Grafikkarte: AMD Radeon Pro 5700 8 GB Link zu diesem Kommentar
Matteo Geschrieben 30. April 2020 Autor Teilen Geschrieben 30. April 2020 IF((FIND('WA-A', [STYLE.NAME]) = 0), 'True', 'False') funktioniert. IF((FIND('TR', [STYLE.NAME]) = 0), 'True', 'False') funktioniert leider nicht. Ich nehme mal an, dass das daran liegt, dass sich die Information "TR" mitten im String/Text des Stilnamens befindet.... SELECT2 kann das glaube ich auch nicht (mal abgesehen davon, dass die Beschreibung nicht so einfach nachvollziehbar ist: Zitat SELECT1(Anzahl_Ausdruck,Wert_Ausdruck1, Wert_Ausdruck2, …, Wert_AusdruckN) - Berechnet Anzahl_Ausdruck und berechnet Wert_Ausdruck1, wenn das Ergebnis 0 ist, Wert_Ausdruck2, wenn das Ergbnis 1 ist, Wert_AusdruckN, wenn das Ergbnis N-1 ist. Die Anzahl der Parameter muss mindestens 3 sein. MacBook Pro 16" - macOS 13 - Ventura - 2,3 GHz 8-Core Intel Core i9, 16GB RAM, AMD Radeon Pro 5500M 8 GB VRAM Vectorworks 2022 - SP6 Vectorworks 2023 - SP6 Link zu diesem Kommentar
pappadam1984 Geschrieben 4. Mai 2020 Teilen Geschrieben 4. Mai 2020 Am 30.4.2020 um 15:35 schrieb Matteo: IF((FIND('TR', [STYLE.NAME]) = 0), 'True', 'False') funktioniert leider nicht. Ich nehme mal an, dass das daran liegt, dass sich die Information "TR" mitten im String/Text des Stilnamens befindet.... Das ist der Grund! Ich glaube aber du könntest die 0 durch die Zahl ersetzen an der dein TR steht, wenn es immer an der gleichen Stelle steht. Am 30.4.2020 um 15:35 schrieb Matteo: IF((FIND('TR', [STYLE.NAME]) = 0), 'True', 'False') funktioniert leider nicht. Ich nehme mal an, dass das daran liegt, dass sich die Information "TR" mitten im String/Text des Stilnamens befindet.... Ich hatte mal angefangen, damit zu spielen, aber bin auch nicht all zu weit gekommen. Könnte aber trotzdem einen Blick wert sein. iMac (Retina 5K, 27", 2020) macOS Big Sur Prozessor: 3,8 GHz 8-Core Intel Core i7 Speicher: 40 GB 2133 MHz DDR4 Grafikkarte: AMD Radeon Pro 5700 8 GB Link zu diesem Kommentar
Matteo Geschrieben 4. Mai 2020 Autor Teilen Geschrieben 4. Mai 2020 (bearbeitet) funktioniert. "FIND(Text, Teiltext) - Die nullbasierte Position des Teiltextes im Text. Das Ergebnis ist -1, falls der Teiltext nicht gefunden wird." ist die Beschreibung ich habe es folgendermaßen geschrieben: IF((FIND('TR', [STYLE.NAME]) = 5), 'True', 'False') Finde die Zeichenfolge "TR" im Wandstilnamen, anfangend am sechsten Buchstaben (=5, wenn man mit 0 zu zählen beginnt). Wenn es zutrifft, wird für den Wert "True" eingetragen, ansonsten "False". Die Beschreibung in der Hilfe ist auf jeden Fall mies... Bearbeitet 4. Mai 2020 von Matteo 1 MacBook Pro 16" - macOS 13 - Ventura - 2,3 GHz 8-Core Intel Core i9, 16GB RAM, AMD Radeon Pro 5500M 8 GB VRAM Vectorworks 2022 - SP6 Vectorworks 2023 - SP6 Link zu diesem Kommentar
Empfohlene Beiträge
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 erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden