Như @Paul & @PolyGeo đã đề xuất, tôi nghĩ việc cố gắng biến điều này thành một Bổ trợ Python có ý nghĩa nhất và tôi sẽ theo đuổi ý tưởng đó sau.
Trong thời gian chờ đợi, tôi kết hợp mã sẽ Thêm / Cập nhật Tên TOC của các lớp do người dùng xác định trong MXD với số lượng tính năng. Với mục đích của mình, tôi chỉ tạo công cụ này như một công cụ GP chấp nhận các lớp riêng lẻ thông qua đầu vào đa trị liệu chấp nhận "Lớp" trong công cụ tập lệnh. Điều đó cho phép tôi cập nhật nhiều lớp "theo yêu cầu", chỉ cần cập nhật số lượng tính năng của các lớp quan tâm đó.
Tôi chưa nghĩ ra cách nào để chạy tự động, tuy nhiên khi thực hiện một số thử nghiệm của MXD cũ, điều đó thậm chí có thể không được mong muốn. Nếu bạn có nhiều lớp với nhiều tính năng, đó có thể là một quá trình chậm.
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