Tôi đã viết một tập lệnh bằng MoveLayer và Lớp nhóm tạm thời để làm việc này. Trước tiên, tạo một lớp nhóm mới ở bất cứ đâu trong TOC của bạn (không quan trọng nó được gọi là gì, nó sẽ bị xóa ở cuối). Điều này chỉ hoạt động dựa trên giả định rằng lớp nhóm tạm thời này là lớp duy nhất trong mxd. Tất nhiên, điều này có thể được bỏ qua bằng cách đặt tên lớp tạm thời của bạn (chẳng hạn như "Tempgroup") và thay đổi tập lệnh để sử dụng lớp nhóm đó đặc biệt cho việc sắp xếp.
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 là ở đây . Tôi đang sử dụng ArcGIS 10.3.1 cho Máy tính để bàn.
mxd.save()del mxd