Mehr

Abrufen von Layer-IDs mit ArcPy?


Ich arbeite in einer ArcMap-Sitzung und habe die Option zum Abrufen einer ID für jeden Layer in meinem Dokument aktiviert, damit jeder sie hat.

Jetzt brauche ich eine Möglichkeit, diese Werte in einem Python-Skript abzurufen (um das automatisch in eine Tabelle zu kopieren): Es gibt keine solchen Informationen in den Eigenschaften des Layers, die von einem describe erreicht werden, noch aus dem .mapping-Modul.


In ArcGIS Pro können Sie dies tun:

cim_version = 'V2' aprx = arcpy.mp.ArcGISProject(aprx_file) map0 = aprx.listMaps()[0] lyr0 = map0.listLayers()[0] def0 = lyr0.getDefinition(cim_version) # serviceLayerID wird -1 sein, wenn "allow Assign. Unique IDs to Layers" # wurde nicht auf die Datenrahmeneigenschaften überprüft # in diesem Fall sind serviceLayerID in der Reihenfolge 0 -> len(layers) - 1 # & schließt GroupLayers ein (kann lyr0.isGroupLayer usw. überprüfen) serviceLayerID = def0.serviceLayerID

Nach dem Testen in ArcGIS 10.3 und gemäß der Dokumentation für Layer und Describe in arcpy sowie diesem Thread: https://geonet.esri.com/thread/178341 existiert diese Funktionalität noch nicht. Sie können von arcpy nicht auf die Layer-ID zugreifen. Sie können möglicherweise über ArcObjects darauf zugreifen, wenn Sie die entsprechenden Kenntnisse haben.

Können Sie als Workaround die ID in die Felder Credits oder Description eingeben? Sie können auf beide Felder über arcpy zugreifen.