I want to auto-populate a field based on the spatial location of another feature's attribute.

Add a point on top of a building. The point automatically adds the name of the building.

This seems like a standard work flow.

Does anyone know how to do this? Is it an event trigger?

The goal is to assist field workers using what seems like simple GIS logic.

  • 2
    Which software are you working with? Or do you want to develop from scratch? – underdark Apr 19 '11 at 7:04
  • 1
    Not sure about python but this can be done programatically with ArcObjects. (iSpatialFilter, iHitTest, etc.) – Jakub Sisak GeoGraphics Apr 20 '11 at 0:32

If you are using building polygons with points that lie somewhere within the polygon use a spatial join to join each building with the point residing in it. Then calculate your field in the point feature class based on the joined building polygon feature class field of choice.

  • 1
    I appreciate both of your responses. Spatial Join is the work flow I'd follow if doing this manually. I want to trigger an event that updates the field at the moment a new point feature is added. Is there a way to use Calculated Field, python or something? – RGIA Apr 20 '11 at 4:31

The Attribute Assistant allows you to take field values from intersecting or nearby features and put them in specified fields of the created feature. It can be configured to populate fields when a feature is created, or on a selected set of features, and when you update a feature's attributes or position.

There is a tutorial here, and a blog post on how I implemented it here.

It is a powerful tool that has saved me a great deal of typing and data entry error. I have it configured to create sequential ids, grab ids of nearby features, get house numbers from the intersecting parcels.

It can do a great deal more.


I would have thought a simple spatial query based on the point would select the building from the building layer, and from there, a simple update on the point object based on the details from the selection.

It's not a large body of work; search at point, select and update.


If you have your two data layers in a relational database (as opposed to 2 shapefiles or similar), what if you just had a field on the point layer that you could populate with the unique ID of the building feature? That way you could join/relate any of the information from the building layer back to your point.

If you are manually placing the point on top of the building, it doesn't seem like this would have to be a spatial operation...

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.