Befehle

Über Application.Commands kann man auf die Befehle zugreifen.

Handling von Return-Werten

Für die Auswertung der Rückgabewerte siehe auch: Tipps

result

Die Struktur der Return-Werte, die von den Scripting-Befehlen zurückgeliefert werden ist bei allen Befehlsaufrufen gleich und beinhaltet folgende Attribute:

AttributBeschreibung
OkBeinhaltet den Status des Aufrufes, mögliche Werte sind:True.....erfolgreichFalse...Fehler oder nicht ausgeführt
ObjectOptional - beinhaltet ein Objekt aus dem aktuellen Projekt

Folgendes Beispiel fügt ein Punktobjekt ein und wertet den Aufrufstatus aus:

result = Application.Commands.PointNew('Laubbaum', (20780, 285795))

if result.Ok:
    print ('Aufruf war erfolgreich')
else:
    print ('Fehler oder Aufruf abgebrochen')

result.Object

Wie bereits in der obigen Auflistung beschrieben kann optional auf dem Return-Werte eine Struktur Object vorhanden sein, diese ist wie folgt aufgebaut:

AttributBeschreibung
IdOptional - beinhaltet eine eineutige Id um ein Objekt im aktuellen Projekt eindeutig zu identifizieren
GeometryOptional - beinhaltet die Koordinaten eines Objektes im aktuell geladenen Projekt

Folgendes Beispiel generiert einen Linienzug und produziert auf Punkten des generierten Linienzuges zusätzlich noch punkthafte Objekte:


pointList = [(10,15), (20, 20), (30, 20)]

ls1 = Application.Commands.LinestringNew("Mauer",pointList)

punkttyp = "Triangulierungspunkt"
punkttyp2 = "Messpunkt"

if ls1.Ok:
    print ("Erzeuge Startpunkt '" + punkttyp + "'")
    if Application.Commands.PointNew(punkttyp, ls1.Geometry[0]).Ok:
        print ("Erfolgreich!")
    print "Erzeuge Endpunkt '" + punkttyp + "'"
        if Application.Commands.PointNew(punkttyp, ls1.Geometry[-1]).Ok:
        print ("Erfolgreich!")
            count = len(ls1.Geometry)
        print "Erzeuge Zwischenpunkte '" + punkttyp2 + "'"
        for i in range(1, count-1):
            Application.Commands.PointNew(punkttyp2, ls1.Geometry[i])
    else:
            print ("Abbruch bei Endpunkt.")
    else:
        print ("Abbruch bei Startpunkt.")
else:
    print ("Abbruch bei Linienzug")

Folgendes Beispiel generiert einen Linienzug und führt im Anschluss sofort ohne Userinteraktion " Linienzug schließen " auf dem angelegten Objekt aus:

pointList = [(10,15), (20, 20), (30, 20)]
result = Application.Commands.LinestringNew("Mauer",pointList)
closed = Application.Commands.LinestringClose(result.Object)