I have a query regarding the dissolving of polygon features in ArcGIS 9.3. I only have the bare-bones license and an extremely basic knowledge of VB.

I have a large shapefile with around 4500 polygons and I want to know if there is anyway of dissolving the ones that overlap. I basically want to turn this layer into a shapefile that contains separate areas, so where one polygon is on its own it will remain, but where multiple polygons overlap, they dissolve into 1, with each separate area having its own set of attributes. The shapefile changes quite frequently, and up until now, I have been going through them all and manually dissolving overlapping areas using the editor tool; but I'm sure there's a much quicker way of doing it!

Any insight into how this might be achieved?

I've had a go using the dissolve tool and joining the exported attribute table, and this works perfectly! I thought the dissolve tool only worked on attributes and not spatial location, so that's extremely useful to know. Also the ModelBuilder code is

  • Great answers. Brad Nesom, how do you get the orginal attribute table value to the dissolved shapefile?
    – Gunnar
    Commented Feb 5, 2014 at 20:38
  • I need what you did but when i run the dissolve tool it just merge all he features in my shape so is not working. How did you make it run? Commented Oct 24, 2018 at 20:00

3 Answers 3


I might be missing something, but won't the basic Dissolve tool (somewhere in the data management toolbox) do this for you? No need to mess with any code as in artwork21's answer. Just open the dissolve tool, select your feature class, do not select any field to dissolve on, and then uncheck 'Create Multi-part poygons' otherwise all your poly's will be become one large multi-part poly.

I don't have Arc in front of me right now, but if I'm reading your question correctly, I've done this before using this method. The only concern here is attributes in the table. You know the data, so you'll have to choose how to combine each field in the Statistic Fields part of the tool.

If this process is done extremely frequently or you'd like it done automatically, then do this with model builder and export it to a script, but this tool should take 10 seconds to fill out.


@Tom Parker - MWrenn is correct.
You have the option of selecting an attribute to dissolve on (this will do an attribute dissolve) or no attribute (this will do a spatial dissolve).

Choose the statistics and any attributes you want to carry over. (This is not going to quite work like you want).


Prior to doing the dissolve, create a new field and calculate the FID into it.
Then export a dbf of your attributes and you can (somewhat join them back up with the polygons afterward).

If you need help with this let me know and I will post more screen shots or find some help on arcgis.com resource center.

Notice in the following screen shot, the name is the same in all of the polygons (9.3.1 doesn't seem to dissolve correctly from arcmap). Try it from arccatalog.

after dissolve

Maybe someone else will have a better method.

The only other way I can think of is to select by location (polygons that intersect each other).
Export those to a separate file and then dissolve them.
Then after you get each file dissolve you could use the free merge layers (in et-geo-wizards).


You can create a model within Model Builder and export out the script, then copy and paste that script to a UIButtonControl within ArcMap vba. See script example below.

Private Sub Dissolve_Click()

' Create the Geoprocessor object
set gp = CreateObject("esriGeoprocessing.GPDispatch.1")

' Load required toolboxes...
gp.AddToolbox "C:/Progra~1/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx"

' Local variables...

Dim test_shp as string

test_shp = "C:\Temp\test.shp"
Output_Feature_Class = "C:\Temp\test_Dissolve.shp"

' Process: Dissolve...
gp.Dissolve_management test_shp, Output_Feature_Class, "", "", 

End Sub

Your Answer

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