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?
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.
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).
CREATE TRIGGER [dbo].[UPDATE_ACREAGE_ZONING] ON [dbo].[a1338] FOR INSERT, UPDATE AS Declare @ObjectID int, @area float select @ObjectID = OBJECTID, @area = shape.STArea() from inserted UPDATE dbo.a1338 SET ACRES = @area /43560 WHERE OBJECTID = @ObjectID