In ArcMap 10, I realize I can manually do this after the polygon feature is calculated by right-clicking the column in the attribute tables to calculate geometry or create a python script to do this but neither of these seem to allow me to automate this for new features without having to take those manual steps after the polygon is created and added to the table. I want this to happen automatically once the feature is created and shows up in the attribute table, much like the auto-generated shape_area column works. Maybe I can use those values to convert them to acres in a new column?

  • Why not just use the Feature Class Shape_Area? Mar 23 '12 at 19:03
  • What type of environment are you trying to create the feature class in? shp, personal gdb, file gdb, SDE? Mar 23 '12 at 20:23
  • @Jakub - I would use that but it's not using the correct units, I would like the area to be in acres. If you have an answer how I could convert that to acres, please add below. Thanks,
    – wilbev
    Mar 24 '12 at 20:18
  • @RyanDalton In this case a file gdb.
    – wilbev
    Mar 24 '12 at 20:19
  • 2
    It sounds like you want to be able to set a trigger on your attribute table to say that your Acres field needs to be updated each time the Shape_Area changes. There's an ArcGIS Idea for this at ideas.arcgis.com/ideaView?id=0873000000088rYAAQ#comments
    – PolyGeo
    Mar 25 '12 at 8:27

I might be overkill to use class extensions, but it would most likely be able to convert whatever coordinate system unit you have to acres as area unit. It requires a bit of arcobjects coding and some administration to register the extension.

Implement the interface IObjectClassEvents in your extension and in onChange and onCreate you calculate the area in acres and stores that in another column. Then you have to register your extension on the feature class.

Documentation and an example is available in ESRI's help (assuming .NET, java is also available):


Before you go down this road, you should check the possibility of converting the shape_area field when you present i to the user, but that's another question and depends on how you present the data.

  • thanks for the answer. I was definitely hoping to do this without any ArcObjects. Was hoping I could use Python but that doesn't seem to be possible at this point.
    – wilbev
    Mar 26 '12 at 18:46

Below is a trigger that I set up on the a-tables in SQL when editing data. It automatically updates the Acreage field when a feature is inserted during editing. ESRI does not support modifications on the backend in SQL, but I find that there are times when it is a necessity. This SQL script is based on SQLServer 2008R2, ArcSDE 10.0/10.1, and uses the GEOMETRY storage type. If you're using SDEBinary, the syntax is different. I'm sure that some SQL gurus can shore it up a bit, but it is simple and straight forward. You just need to find the registration_id of the feature class you are editing in the sde_table_registry table in the database (in my case that was 1338).

ON [dbo].[a1338] 
    @ObjectID int,
    @area float 

    @ObjectID = OBJECTID, @area = shape.STArea()
    from inserted

UPDATE dbo.a1338
SET ACRES = @area /43560

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.