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

REQUEST ("HOMEDB_INFO",

Ma_Scht
Advocate
Howdy zusammen,
Folgende Abfrage im MASTER-SCRIPT:
n=REQUEST ("HOMEDB_INFO", "", homeDBIntId, homeDBUserId, homeDBName, homeContext)

Wie kann ich den STRING aus "homeDBUserId" in einen Parametere meines Objektes schreiben?

Es kommt immer die Fehlermedlung
"Projektabhängige Anfrage "HOMEDE_INFO verwendet bei Zeile ......"

Im 2D-SCRIPT kann ich den Wert wunderbar splitten und damit machen was ich will und es sieht im Plankopf so aus wie es soll.
Aber der Parameter des Plankopfobjektes selbst ist halt noch NICHT gefüttert.

Alles was ich möchte ist EINdirektional die BENUTZERDEFINIERTE LAYOUT-ID auslesen und in einen Parameter schreiben.

Daran scheitere ich gerade.

Geht das überhaupt?
Hat wer eine Idee?
Gruß Mario
10 ANTWORTEN 10
runxel
Legend
Ich hatte erst gedacht, dass das einer Requests ist, die in Archicad 20 in nicht-geometrischen Skripts gekillt worden ist, aber das GDL Referenzhandbuch war sich da uneins. 👿 😛
In der lustigen Aufreihung ist es zwar mit "grün" markiert, aber bei der Befehlsbeschreibung steht dann doch noch mal extra da:

Verursacht Warnung wenn im Parameter-Script verwendet.


Geht also nicht.
(Wofür brauchst das überhaupt als Parameter?)
Lucas Becker | AC 27 on Mac | Author of Runxel's Archicad Wiki | Editor at SelfGDL | Developer of the GDL plugin for Sublime Text | My List of AC shortcomings & bugs | I Will Piledrive You If You Mention AI Again |

POSIWID – The Purpose Of a System Is What It Does /// «Furthermore, I consider that Carth... yearly releases must be destroyed»
Ma_Scht
Advocate
Großschrift = Hervorhebung, mehr NICHT!
Howdy,
ich habe einen Plankopf vom AG. Das ist eine DWG.
AC hat diesen sauber in ein Objekt konvertiert.
Die Parameter sind ordentlich übernommen.
Alle prima.

ABER:
Ich habe KEINE Mauke eine 20-stellige Plannummer x-mal im Plankopf einzugeben und dann nochmal als BENUTZER-LAYOUT-ID.
Doppelte Eingaben sind fehlerabfällig.

ERGO:

Ich möchte die BENUTZER-LAYOUT-ID in das Objekt füttern das auf diesem Layout liegt.
Ich verstehe NICHT, wieso ich es im 2D-Script ausgeben kann, aber KEINEN beliebigen PARAMETER zuweisen kann.

Gruß Mario
runxel
Legend
Weil Parameter auswertbar wären. Da das aber im Teamwork zum Chaos und unvorhersehbaren und meist auch falschen Output führt ist das damals mit AC 20 gekillt worden.
Bei manchen Sachen wirklich ärgerlich, aber insgesamt nachvollziehbar.

Ich versteh immer noch nicht warum du das einem Parameter zuweisen willst.
Eine normale Variable im Skript reicht doch vollkommen zu.
Lucas Becker | AC 27 on Mac | Author of Runxel's Archicad Wiki | Editor at SelfGDL | Developer of the GDL plugin for Sublime Text | My List of AC shortcomings & bugs | I Will Piledrive You If You Mention AI Again |

POSIWID – The Purpose Of a System Is What It Does /// «Furthermore, I consider that Carth... yearly releases must be destroyed»
Ma_Scht
Advocate
Mist!
Warum ich das machen will?
Weil meine exportierte DWG wieder beim AG eingelesen wird und dort wird der Plankopf als BLOCK mit ATTRIBUTEN ausgelesen.
was bei AC ein OBJEKT mit PARAMETER ist, ist vereinfacht gesprochen in ACAC ein BLOCK mit ATTRIBUTEN.

Ich werde mal versuchen ob das auslesen und sofortige schreiben in eine temporäre Textdatei in einem temporären Verzeichnis geht.
Dann sorfort wieder reinholen und einer anderen Variable zuweisen.

Na mal sehen
Gruß und Dank
runxel
Legend

Weil meine exportierte DWG wieder beim AG eingelesen wird und dort wird der Plankopf als BLOCK mit ATTRIBUTEN ausgelesen.
was bei AC ein OBJEKT mit PARAMETER ist, ist vereinfacht gesprochen in ACAC ein BLOCK mit ATTRIBUTEN.


Oh, okay, verstehe. Jetzt ist der Groschen gefallen.
Gib bescheid, ob Dein Workaround so funktioniert wie gedacht.
Lucas Becker | AC 27 on Mac | Author of Runxel's Archicad Wiki | Editor at SelfGDL | Developer of the GDL plugin for Sublime Text | My List of AC shortcomings & bugs | I Will Piledrive You If You Mention AI Again |

POSIWID – The Purpose Of a System Is What It Does /// «Furthermore, I consider that Carth... yearly releases must be destroyed»
Ma_Scht
Advocate
So gehts. Gruß

!!! PARAMETER-LISTE
!Parameter "test" anlegen, TYP string

!!!MASTER-SCRIPT
dateiname = "C:\_aVerzeichnis\TEST.TXT"
!!! Unter Windows kann direkt unter "C:\" keine Datei abgelegt werden
!!! War mir neu


!!!2D-SCRIPT
n = REQUEST ("HomeDB_info", "", homeDBIntId, homeDBUserId, homeDBName, homeContext)
ch = OPEN ("TEXT", dateiname, "FULLPATH, MODE = WO")
OUTPUT ch, 1, 0, homeDBUserId
CLOSE ch

!!!PARAMETER-SCRIPT
ch = OPEN ("TEXT", dateiname, "FULLPATH, MODE = RO")
nr = INPUT (ch, 1, 1, test)
CLOSE ch
PARAMETERS test = test
Ma_Scht
Advocate
auch spannend:
https://archicad-talk.graphisoft.com/vi ... 28#p202274
n = request ("HomeDB_info", "", n, LayoutNumber, LayoutName, n)
Ma_Scht
Advocate
Kann ich den Scriptdurchlauf von Objekten erzwingen, durch Maßnahmen die von "außen" kommen?

Zum Beispiel bei jedem Neustart von Archicad.

Hintergrund:
In o.g. Beiträgen habe ich ja die Layoutnummer in einen TXT-Datei geschrieben und reimportiert.
Vergleibares machte ich mit der LAYOUT_REVISION_HISTORY[array1][1].
Die ändert sich häufiger.

Das aktualisiert sich aber erst im Objekt wenn ich einen beliebigen anderen Prameter ändere, z.B. die Breite.

Gruß Mario
Anonymous
Nicht anwendbar
Hallo Mario,

ist zwar etwas spät, aber vielleicht hilfts noch - oder anderen.... 😉

Bei Objekten, welche Parameterwerte aus DB (Textdatei) abrufen MÜSSEN meine User kurz vor DWG-Export den Menue-Befehl "Parameterscript bei plazierten Objekten ausführen" anwenden. (ist Teil des vom User durchzuführenden "Export-Prozesses").
Der Befehl findet sich im "Bibliotheken-Entwickler-Menue", das eventuell zuerst in der "Arbeitsumgebung" hinzugefügt werden muss.
ACHTUNG: Ausführung kann WIRKLICH lange dauern, da ALLE platzierten Objekte aktualisiert werden! - hatte schon 15min und längere Laufzeit bei Projekten.

Einen anderen "automatisierbaren" Trigger hab ich leider noch nicht gefunden. Ein "Projekt-Neustart" hilft meiner Erfahrung nach nicht.

Noch zur Info für alle: der DWG-Exporter kann bei GDL-zu-BLOCK und BLOCK-zu-GDL Konvertierung NUR auf die GDL-Parameter eines Objekts und nicht auf Variable oder Eigenschaften zugreifen. 😢

mit besten Grüßen,
Klaus