Seperti yang disarankan oleh @Paul & @PolyGeo, saya pikir mencoba membuat Add-in Python ini paling masuk akal, dan saya akan mengejar ide itu nanti.
Sementara itu, saya mengumpulkan kode yang akan Tambah / Perbarui TOC Nama lapisan yang ditentukan pengguna dalam MXD dengan jumlah fitur. Untuk tujuan saya, saya baru saja membuat ini sebagai alat GP yang akan menerima lapisan individu melalui input multinilai yang menerima "Layers" di alat skrip. Itu memungkinkan saya untuk memperbarui beberapa lapisan "sesuai permintaan", hanya memperbarui jumlah fitur dari lapisan yang diminati tersebut.
Saya belum menemukan cara untuk menjalankan ini secara otomatis, namun dalam melakukan beberapa pengujian MXD lama, itu mungkin bahkan tidak diinginkan. Jika Anda memiliki banyak lapisan dengan banyak fitur, ini bisa menjadi proses yang lambat.
import arcpy
LayerInput = arcpy.GetParameterAsText(0)
mxd = arcpy.mapping.MapDocument("CURRENT")
for lyr in arcpy.mapping.ListLayers(mxd):
#Skip over group layers, as they have no values to count
if lyr.isGroupLayer:
continue
#Determine basename of the layer, without the feature count
name = str(lyr.name)
#Determine if the layer is in the user-defined list
if name not in LayerInput:
continue
#Determine if the layer name already includes a COUNT
if "[" in name and "]" in name:
lpos = name.find("[")
basename = name[:lpos-1]
else:
basename = name
print " Updating feature count in TOC name for layer: " + str(basename)
arcpy.AddMessage(" Updating feature count in TOC name for layer: " + str(basename) )
# In 10.1, you may be able to use arcpy.da.SearchCursor to increase the speed.
#http://gis.stackexchange.com/questions/30140/fastest-way-to-count-the-number-of-features-in-a-feature-class
#fcount = 0
#cursor = arcpy.SearchCursor(lyr)
#for row in cursor:
# fcount += 1
#del cursor
#Get the feature count
fcount = int(arcpy.GetCount_management(lyr).getOutput(0))
#Update the lyr.name property
lyr.name = basename + " [n=" + str(fcount) + "]"
del fcount
arcpy.RefreshTOC()
#Garbage collection
del mxd