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.

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.

  • I wonder if the arcpy.RefreshActiveView() would work in his script. – Michael Markieta Jul 9 '12 at 16:27
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()

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.