Escribí un script usando MoveLayer y una capa de grupo temporal para que esto funcione. Primero cree una nueva capa de grupo en cualquier lugar de su TOC (no importa cómo se llame, se eliminará al final). Esto solo funciona en base al supuesto de que esta capa de grupo temporal es la única en el mxd. Por supuesto, esto puede pasarse por alto dando a su capa temporal un nombre constante (como "TempGroup") y cambiando el script para usar esa capa de grupo específicamente para la clasificación.
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd)[0] # Assuming one data frame
group_lyr = [lyr for lyr in arcpy.mapping.ListLayers(mxd) if lyr.isGroupLayer][0] # The temp group layer should be the only one
lyr_names = sorted(lyr.name for lyr in arcpy.mapping.ListLayers(mxd) if lyr.isFeatureLayer)
for name in lyr_names:
arcpy.mapping.MoveLayer(df, group_lyr, arcpy.mapping.ListLayers(mxd, name)[0], "BEFORE")
arcpy.mapping.RemoveLayer(df, group_lyr)
Gist está aquí . Estoy usando ArcGIS 10.3.1 para escritorio.
mxd.save()
del mxd
No hay forma de ordenar la lista por orden de dibujo TOC (sin programación).
Pero es posible ordenar el TOC de Lista por visibilidad y el Listado por TOC de selección : Vaya al botón de opción en el TOC. En la pestaña Preferencias, elija si ordenar las capas por el orden en que se dibujan o alfabéticamente por nombre de capa ( Ordenar capas por ).
fuente
Sí, tú puedes hacerlo
Ordenando la tabla de contenido en orden alfabético, encuentre detalles en: http://resources.arcgis.com/en/help/main/10.1/index.html#//0106000001qt000000
fuente