Як запропонували @Paul & @PolyGeo, я думаю, що намагатися зробити це надбудовою Python має найбільш сенс, і я буду продовжувати цю ідею пізніше.
Тим часом я склав код, який додасть / оновить Ім'я TOC визначених користувачем шарів у MXD із кількістю функцій. Для своїх цілей я просто створив це як інструмент GP, який би приймав окремі шари через багатозначне введення, яке приймає "Шари" в інструменті сценарію. Це дозволяє мені оновлювати декілька шарів "на вимогу", лише оновлюючи кількість функцій цих шарів, що цікавлять.
Я не придумав способу автоматично запустити цей запуск, проте, роблячи тестування старих MXD, це може бути навіть не бажано. Якщо у вас багато шарів з великою кількістю функцій, це може бути повільним процесом.
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