abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

Wir schätzen Ihren Input!
Bitte nehmen Sie an der Umfrage zu Archicad 28 Startbildschirm und Lerninhalte/Schnell-Tutorials teil

Programmierung
Alles über Programmierung in GDL und Python

GDL Call Befehl

Anonymous
Nicht anwendbar
Hallo

Ich habe einen Tisch erstellt und diesen im Objekt 1 bis 3 Monitore (mit if-funktion) plus Zubehör hinzugefügt.
Ich habe nun mehrere verschieden Tischformen vor mir auf welchen ich die exakt gleichen Gestaltungsmöglichkeiten haben möchte. Je Tisch die Auswahl zwischen 1, 2 oder drei Monitoren und deren Positionen, etc...

Erst dachte ich mir ich kopiere einfach die Quelltexte und Parameter in das neue Objekt.
Das hat allerdings Nachteile.
Ich muß alle Parameter wieder neu erstellen und 2d, 3d, parameterscript kopieren. Und vor allem: ändert sich irgendwann etwas muß ich es in jeder Datei ebenfalls ändern.
Das ist doch viel Aufwant.

Ich dachte nun diese PC-Landschaft als eigenes GDl in die jeweiligen Tische mittels Call einzufühgen. Das funktioniert auch gut, nur leider tauchen die Parameter des eingefügten GDL nicht in der Hauptdatei auf. Und sind so nicht veränderbar.

Ich habe nach brauchbaren tutorials gesucht nur leider nichts gefunden. kennt jemand eines, oder kann mir erklären wie das geht? Vielleciht gibt es ein GDL anhand man leicht nachvollziehen kann wie man das macht. - oder geht es garnicht und man muß auch mit call alle Parameter einzeln erstellen will man sie in der Objekteinstellungen verändern können?

THX
3 ANTWORTEN 3
Anonymous
Nicht anwendbar
Anonymous
Nicht anwendbar
Danke, nach einigem studieren und mehreren Versuchen habe ich jetzt ein wirklich brauchbares Objekt, bzw Objekte. Allerdings stehe ich wieder etwas an.
Ich habe mir ein Objekt erstellt in welchen ich meine Informationen mittels "TEXT2" einfüge welche ich sehen möchte. sozusagen als Ticket. ( Ich arbeite in AC 17 und die Tickets welche es dort gibt passen nicht zu meinen Wünschen. Die Regelung wann, bzw wie es einen Strich mit oder ohne Pfeil gibt ist mir nicht sympatisch bzw kann ich meine Wunschansicht nicht herstellen. Das Ticket kann eigens generierte Parameter nicht aus dem Objekt auslesen...)
Also habe ich nun dieses Objekt welches ich wie die PC-Landschaft ins Objekt mittels call einfüge. Auch kann ich es mit Hotspots verschieben und drehen.

Was ich nicht schaffe:
Den Text auf der obersten Ebene anzeigen lassen das Objekt selbst allerdings weiter unten. z.B: ich habe unter dem Tisch einen kleinen schrank. diesen möchte ich vom Tisch zum teil verdeckt haben. Das Text-Objekt welches ich in das Schrankobjekt eingefügt habe möchte ich aber nicht verdeckt haben.

Die Ankerposition wie beim Raustempel in verschiedenen Maßstäben unterschiedlich versetzten.

ich habe im Feld Inventarnummer die Inv-Nr nach dem bestehenden System "ttt/nnn/jjjj" in alle meine Objekte geschrieben. ich brauche die nummer ebenso um sie später in Excel weiterzuverwenden. allerdings möchte mein Boss nun die Jahreszahl "jjjj" nicht mehr im Plan sehen. Kann ich dem TEXT2 irgendwie sagen da? er die letzten vier stellen der In.-Nr. nicht anzeigen soll?

Wenn ich in einem Objekt mit Tisch und Sessel das bewegliche Ticket einmal für den Tisch einfüge und ein zweites für den Sessel kann ich nur eines tatsächlich über Hotspots steuern. verwende ich die Hotspots des 2. Objekts steuern diese nur das erste objekt, nicht jenes zu dem sie tatsächlich gehören.

Ich habe in meinen Textobjekt bis dato 5 Zeilen mit unterschiedlichen Informationen. geht es irgendwie global für die Datei zu steuern welche Information eingeschalten oder ausgeschalten ist? im Moment regel ich es mit IF glob_scale. und kann im Objekt einstellen welche Zeile ich in welchen Maßstab sehen möchte. so sehe ich nun bei 1:47 alle Informationen. Bei 1:50 nur eine und >50 keine.
Geht das eleganter?

und nun eine scheinbar einfache Sache:
Ich habe mehrere Sessel ( in etwa 600. jeder mit seiner eigenen Invetarnummer und denen im Objekt eigens definierten Informationen. Wie kann ich alle Sessel auf einmal durch ein anderes Objekt ersetzten welches jedes für sich die eigenen Informationen behält.


Vielen Dank in Vorraus
Frank Beister
Moderator
Den Text auf der obersten Ebene anzeigen lassen das Objekt selbst allerdings weiter unten.

Das geht so nicht. Ein Objekt hat nur eine Ebene in der Darstellungsreihenfolge.
Das geht nur so: Objekt unten in der Darstellungsreihenfolge, Beschriftung als eigenständiges Etikett, assoziativ, darüber. DAS ist der Workflow, wie er seit AC19 gedacht ist.

Die Ankerposition wie beim Raustempel in verschiedenen Maßstäben unterschiedlich versetzten.


Für jeden Maßstab eigene Koordinatenparameter anlegen und maßstabsabhängig verwenden.

Allerdings möchte mein Boss nun die Jahreszahl "jjjj" nicht mehr im Plan sehen. Kann ich dem TEXT2 irgendwie sagen da? er die letzten vier stellen der In.-Nr. nicht anzeigen soll?


lang = STRLEN(datumtext)
TEXT2 x,y, STRSUB(datumtext,1,lang-4)

Wenn ich in einem Objekt mit Tisch und Sessel das bewegliche Ticket einmal für den Tisch einfüge und ein zweites für den Sessel kann ich nur eines tatsächlich über Hotspots steuern.


Die Position des Textblockes richtet sich nach den Positionsparametern. Willst Du zwei unabhängige Textblöcke, musst Du zwei unabhängige Positionsparameter einbinden. Verlagere die Codezeilen für die beweglichen Fangpunkte aus dem Makroobjekt in das Hauptobjekt für jeweils zwei unabhängige Parametertupel.

Geht es irgendwie global für die Datei zu steuern welche Information eingeschalten oder ausgeschalten ist? [...] Geht das eleganter?


Über die Modelldarstellung. Wenn Du mir sagst, worum es geht, und ich das für sinnvoll erachte, kann ich einen Parameter in OpenLibraryGlobals einbinden, den Du dann bei geladenem MVO-Objekt abfragen kannst. So wie den Maßstab-Parameter.
Ich vermute aber, wenn Du die Beschriftung in ein Etikett auslagerst, erübrigt sich das Problem (-> verschiedene Layer/Ebenen möglich)

Und nun eine scheinbar einfache Sache:
Ich habe mehrere Sessel ( in etwa 600. jeder mit seiner eigenen Invetarnummer und denen im Objekt eigens definierten Informationen. Wie kann ich alle Sessel auf einmal durch ein anderes Objekt ersetzten welches jedes für sich die eigenen Informationen behält.


Das ist NICHT so einfach. Wechselst Du das Objekt im Einstellungsdialog, gehen alle individuellen Einstellungen verloren und bekommen die Standardwerte des neuen Objektes. Das kannst Du umgehen, indem Du die Übergabe innerhalb des Objektdialoges mit Pipette und Spritze machst. Allerdings bekommen dann (AFAIK) alle Parameter die Werte des Objektes, das Du zueltzt aktiviert hast.
Ausnahme: In der Parameterliste des Objektes kannst Du am Anfang jeder Zeile jeden Parameter so einstellen, dass genau das NICHT passiert. Dann steht davor ein U. Das heißt, dass Deine Objkete dafür vorgerüstet sein müssen. Brauchst Du das nur einmal, kannst Du ja auch kurzzeitig die Objekte so modifizieren.
Voraussetzung ist natürlich, dass altes und neues Objekt die gleichen Parameternamen verwenden. Sonst überträgt sich da nix.
bim author since 1994 | bim manager since 2018 | author of selfGDL.de | openGDL | skewed archicad user hall of fame | author of bim-all-doors.gsm