Eu escrevi um script usando o MoveLayer e uma camada de grupo temporária para fazer com que isso funcionasse. Primeiro, crie uma nova camada de grupo em qualquer lugar do seu sumário (não importa como é chamada, ela será excluída no final). Isso funciona apenas com base no pressuposto de que essa camada de grupo temporário é a única no mxd. Obviamente, isso pode ser ignorado, dando um nome constante à camada temporária (como "TempGroup") e alterando o script para usar essa camada de grupo especificamente para a classificação.
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)
A essência está aqui . Estou usando o ArcGIS 10.3.1 for Desktop.
mxd.save()
del mxd
Não há como classificar o sumário da lista por ordem de desenho (sem programação).
Mas é possível classificar o sumário da lista por visibilidade e a listagem pela seleção do sumário: Vá para o botão de opção no sumário. Na guia Preferências, escolha se deseja classificar as camadas pela ordem em que são desenhadas ou em ordem alfabética pelo nome da camada ( Classificar camadas por ).
fonte
sim você consegue
Classificando o índice em ordem alfabética, encontre detalhes em: http://resources.arcgis.com/en/help/main/10.1/index.html#//0106000001qt000000
fonte