Bitte wähle einen REQUEST-Befehl aus.

Syntax
REQUEST ("ANCESTRY_INFO", abfrage, objektname [, objekt_guid, name1, guid1, ..., name[

Aufklappen Wertebereiche
abfrage, Typ binär
objektname, Typ Text
objekt_guid, Typ real
namei, Typ Text
guidi, Typ real

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 abfrage=0 gilt:
Gibt den Namen des Objektes in objektname und die global eindeutige Identifikationsnummer in objekt_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 abfrage=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
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 (ab 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 Beispiel Erläuterung
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 ArchiCAD
ab 8.0