Saya menulis skrip menggunakan MoveLayer dan Layer Grup sementara untuk membuatnya berfungsi. Pertama buat layer grup baru di mana saja di TOC Anda (tidak peduli apa namanya, itu akan dihapus di akhir). Ini hanya berfungsi berdasarkan asumsi bahwa layer grup sementara ini adalah satu-satunya di mxd. Tentu saja, ini dapat dilewati dengan memberi layer sementara nama konstan (seperti "TempGroup"), dan mengubah skrip untuk menggunakan layer grup itu secara khusus untuk pengurutan.
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)
Intinya ada di sini . Saya menggunakan ArcGIS 10.3.1 untuk Desktop.
mxd.save()del mxd