| Повече ▼

Получавате идентификатори на слоеве с помощта на ArcPy?

Получавате идентификатори на слоеве с помощта на ArcPy?


Работя в сесия ArcMap, проверих опцията за получаване на идентификатор за всеки от слоевете в моя документ, така че всеки да го има.

Сега това, от което се нуждая, е начин да получа тези стойности в рамките на скрипт на python (за да го копирам автоматично в таблица): няма такава информация в свойствата на слоя, достигнати от описание, нито от модула .mapping.


В ArcGIS Pro можете да направите това:

cim_version = 'V2' aprx = arcpy.mp.ArcGISProject (aprx_file) map0 = aprx.listMaps () [0] lyr0 = map0.listLayers () [0] def0 = lyr0.getDefinition (cim_version) # serviceLayerID ще бъде -1, ако "разрешаване на присвояване. уникални идентификатори на слоеве" # не беше проверена в свойствата на рамката за данни # в този случай serviceLayerID са в ред от 0 -> len (слоеве) - 1 # и включва GroupLayers (може да проверява lyr0.isGroupLayer и т.н.) serviceLayerID = def0.serviceLayerID

След тестването на това в ArcGIS 10.3 и съгласно наличната документация за Layer and Describe в arcpy, както и тази нишка: https://geonet.esri.com/thread/178341, тази функционалност все още не съществува. Не можете да получите достъп до идентификатора на слоя от arcpy. Може да имате достъп до него чрез ArcObjects, ако имате познания.

Като заобиколно решение можете ли да въведете идентификатора в полетата Кредити или Описание? Можете да получите достъп до двете полета чрез arcpy.