coord-transf.2d elements3d elementsnon geo scriptsfunctionscontrol statem.attributesvariousaddons
placeholdersexpressionsoperatorsstatus codesbuffer storageglobal param.environ. values
REQUEST REQUEST{2} REQ
Name
REQUEST

   
Syntax:
REQUEST ("ANCESTRY_INFO", question, object_name [, object_guid, name1, guid1, ..., name[
Aufklappen Wertebereich
question, Typ binär
object_name, Typ Text
object_guid, Typ real
namei, Typ Text
guidi, Typ real
Aufklappen ArchiCAD
since 8.0
Aufklappen Erläuterung
Gibt Informationen zur Abstammung des Objektes zurück.
Ab ArchiCAD 8 kann man Objekttypen definieren, die hierarchisch verwaltet werden. Bibliothekenabhängig können verschiedene Typen zur Verfügung stehen. Eigene werden durch "Vorlage" hinzugefügt.
Mit dieser Funktion lassen sich nun die eindeutigen ID-Nummern (GUID=global unic identifier) sowie die Subtyp-Namen auslesen.

Für question=0 gilt:
Gibt den Namen des Objektes in object_name und die global eindeutige Identifikationsnummer in object_guid zurück.
Optional können die übergeordneten Suptyp-Namen und GUID an namei und guidi übertragen werden. Es bietet sich an als Variable ein eindimensionales, dynamisches Array zu verwenden. Dann werden nacheinander Name und GUID aller Subtypen in das Array übertragen. Sind die Vorlagen nicht geladen, wird ein leerer Text zurückgegeben.

Für question=1 gilt:
Gibt analog die Informationen für das Objekt zurück, das durch dieses Objekt, das diesen REQUEST enthält, ersetzt wurde. Ersetzt die Vorlage kein Objekt, wird auch kein Wert übergegeben. Das Funktionsergebnis ist dann 0.

Der Rückgabewert ist die Anzahl der erfolgreich ermittelten Werte.

Aufklappen Beispiel:
s=-1 ! Zeilenabstand

DIM parents[]
n = REQUEST ("ANCESTRY_INFO", 0, name, guid, parents)

IF n THEN
  TEXT2 0,0, "Ersetzt: " + name + " / " + guid
  ELSE
  TEXT2 0,0, "Kein Ergebnis."
  ENDIF
TEXT2 0,s, "Parents:"
ADD2 0,s*2

IF n > 2 THEN
  FOR i = 1 to n - 2 STEP 2
    TEXT2 t,0, parents[i] + " / " + parents[i+1]
    ADD2 0,s
    NEXT i
  ELSE
  ADD2 0,s
  ENDIF

ADD2 0,s


DIM childs[]
n = REQUEST ("ANCESTRY_INFO", 1, name, guid, childs)
IF n THEN
  TEXT2 0,0, "Ersetzt: " + name + " / " + guid
  ELSE
  TEXT2 0,0, "Kein Ergebnis."
  ENDIF
TEXT2 0,s, "Childs:"
ADD2 0,s*2

IF n > 2 THEN
  FOR i = 1 to n - 2 STEP 2
    TEXT2 t,0, childs[i] + " / " + childs[i+1]
    ADD2 0,s
    NEXT i
  ELSE
  ADD2 0,s
  ENDIF

Aufklappen Beispiel Erläuterung:
Die Identifikationsnummern (ID) eines Objektes:

GLOB_ID:
Die ID, die im Einstellungsfenster des Objektes von Zeichner geändert werden kann.

GLOB_INTID (bis ArchiCAD® 10),
GLOB_INTGUID (since ArchiCAD® 11):
Die (unveränderbare) ID, die das Objekt als Bestandteil innerhalb eines Planes/Projektes eindeutig macht. Sichtbar in der Infopalette. Jede Instanz eines Objektes innerhalb einer Projektdatei hat eine eigene GLOB_INTID bzw. GLOB_INTGUID. Die Umstellung von ArchiCAD® 10 zu 11 läuft nicht ganz bruchlos: "Alte" Objekte aus "alten" Plänen erhalten zwar noch eine fortlaufende GLOB_INTID, neu in ArchiCAD® 11 eingesetzt oder in mit ArchiCAD® 11 erstellten Objekten ist GLOB_INTID allerdings immer 0.

GUID (Global unique identifier):
Diese unzugängliche ID wird in der Objektdatei selbst gespeichert (GSM) und macht das Objekt im "Bauteiluniversum" aller Objekte eindeutig. Sie ist zwar aufgebaut wie die GLOB_INTGUID, jedoch tatsächlich unveränderlich für ein Objekt, egal wie oft und in welchem Objekt sie eingesetzt wird.
Aufklappen Referenzen:
GDL-Handbuch 8.0 (DE) p. 153
GDL-Handbuch 8.1 (DE) p. 155
GDL-Handbuch 9.0 (DE) p. 251
GDL-Handbuch 10.0 (DE) p. 253
GDL-Handbuch 11.0 (DE) p. 259
GDL Reference Guide 9.0 (INT) p. 241
GDL Reference Guide 10.0 (INT) p. 249
GDL Reference Guide 11.0 (INT) p. 250

Technical Standards 2.0: Zusammensetzung der GUID (EN)
ArchiCADwiki: Zusammensetzung der GUID (EN)
 





Abb.1: Ausschnitt aus dem Subtyp-Einstellungsdialog.