I've imported a table into ArcGIS which I'd like to split into multiple shapefiles. The splits would occur between groups of records separated by any of 3 columns. In other words, col1, col2, and col3 together create a unique identifier. I'm thinking it would require the following elements but I can't quite put it together:

  • Use ModelBuilder
  • Use SQL Statement to sort table records by 3 column identifier
  • Iterate through table records and write each group to new shapefile (possibly using 'Select by Attributes')
  • Create each shapefile name based upon combined col1, col2, col3 names

What I've tried already:

  • Used 'Split by Attribute' tool by Fox Tools to split table. Works great on smaller tables, not so well on this one with 4000+ records and multiple attribute fields to examine for splitting.

Any thoughts?

  • 1
    Do you use a database software? That appears to be the easiest option. Then concatenate col1, col2, col3 into a new field and select based on unique values of the resulting variable. Or you could perform the concatenation in ArcMap's field calculator and presumably feed that to the Fox Tools (haven't used it, but it seems your problem was having your criteria in three columns.)
    – ako
    Feb 18, 2013 at 21:28
  • The Fox Tools tool wouldn't even process my table given the # of records. That would be the most limiting criteria to this approach.
    – user15303
    Feb 18, 2013 at 21:34
  • Interesting. 4000 records doesn't sound like a lot to me. Depending on how many times you need to do this (one off? frequently?), and how many unique combinations you will have of col1, col2, col3, you may want to split the table before importing/displaying in arcmap.
    – ako
    Feb 18, 2013 at 21:41
  • I'm going to be performing this action multiple times so I'm trying to create/document a process. I suspect this tool isn't the most robust solution though it's been perfectly adequate for smaller projects.
    – user15303
    Feb 18, 2013 at 21:48
  • 2
    Have you tried this one? resources.arcgis.com/gallery/file/geoprocessing/…
    – ako
    Feb 18, 2013 at 22:56

1 Answer 1


Combining the script mentioned above by AkselO with model builder, I would go with the model below. Create a new field, use the field calculator to create a unique identifier (by combining fields 1, 2 and 3) then use the script to split that shapefile by the unique field value.

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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