Refreshing open attribute table in ArcMap using ArcPy rather than ArcObjects?

You appear to be hitting a limitation of ArcPy, in the absence of ArcObjects.

The limitations of ArcPy.mapping have been broadly described here as:

Arcpy.mapping is not a replacement for ArcObjects but rather an alternative for the different scenarios it supports. ArcObjects is still necessary for finer-grain development and application customization, whereas arcpy.mapping is intended for automating the contents of existing map documents and layer files.

If @blah238's other suggestion of using ArcObjects from ArcPy is not an option for you, then you may be best to submit an ArcGIS Idea to have this functionality exposed to ArcPy. If you post a link to such an ArcGIS Idea here then I will be happy to vote for it.


This may or may not be useful to your for your specific workflow. I have found that if you change the selection on your layer then the attribute table updates too.

So I often use

arcpy.SelectLayerByAttribute_management("MY-LAYER","CLEAR_SELECTION")

Of course if you actually have something selected that you don't want to loose track of then this is no good. In that case you might select from layer where OID is in list of OIDs from currently selected features (basically change selection to whatever is already currently selected). This might take to long to be practically, I have never tried it in a real life scenario.