I have an address point shapefile for buildings in a city. The point shapefile shows only a single point for each building; apartments are listed in a table called additional addresses. I need to create a many-to-one relate from the additional addresses table to the address point shapefile using the unique street address. I then need to make a copy of the address point for each instance in additional addresses table.

I need to end up with a stack of points, one for each apartment at the address. Has anyone seen a Python script that does something similar?

  • One way to do it would be to create a dictionary of your point shapefile containing the street name and XY. Then you can loop over your table of additional addresses and write the XY information to each street. Finally, Add XY Data on your table and export to shapefile.
    – Paul
    Jul 23, 2013 at 20:03

1 Answer 1


The MakeQueryTable tool will do what you need. I've used MakeQueryTable in a one-to-many join from Polygon data, producing stacked polygons. All your data must reside in the same Geodatabase. You must specify a Geometry field in the in_fields parameter. It takes some trial and error to get the results you want. The output is a Layer, so you must run CopyFeatures to write the data to disk.

  • 1
    Good answer! So a simple model/script should follow a process something like Input Layer-> MakeQueryTable-> Query Table Output-> CopyFeatures-> Output Layer Jul 23, 2013 at 21:59

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.