7

I used python to update a shapeFile through cursors. The Shapefile is updated, but there could be an open Attribute Table.

Manually you can hit "reload cache" to update the Attribute Table and see the changes. I would like the python script to reload the cache, so the user does not have to remember to do this.

PolyGeo
  • 65,136
  • 29
  • 109
  • 338
crynoid
  • 71
  • 2

2 Answers2

2

Try the easy things first, like clearing and resetting the Layer's definition query or resetting its data source with the arcpy.mapping module. Failing that you could use ArcObjects in Python to refresh the table view via ITableWindow.Refresh.

blah238
  • 35,793
  • 7
  • 94
  • 195
1

This works:

    import arcpy

    definition_query = layer.definitionQuery
    # Change the Definition Query into something different
    if definition_query == '':
        oid = arcpy.ListFields(dataset = layer, field_type = 'OID')[0]
        layer.definitionQuery = '{} > 0'.format(oid.name)
    else:
        layer.definitionQuery = ''
    arcpy.RefreshActiveView()

    # Restore the Definition Query
    layer.definitionQuery = definition_query
    arcpy.RefreshActiveView()
PolyGeo
  • 65,136
  • 29
  • 109
  • 338