Drawing - Dissolve

Dissolve is so named because it "dissolves away" or removes the borders between areas that have identical values in data attribute fields. Given a set of areas, it can automatically create new areas that are spatial combinations of areas having the same data attributes. It is available for drawings or drawing layers in maps. Dissolve can also dissolve away the "borders" between lines that are incident to each other. It can also "dissolve" away groups of points to create a centroid for points with a common field value.




Suppose we have a drawing of the US where each state has a region field.




The value in the region field can be East, West or Central.




If we Dissolve all objects in the map using the Region field we combine all areas of like region value into one area. Thus, all the states with the value West in their Region field will be unioned into a single area.


Dissolve Dialog Controls


The Drawing - Dissolve dialog allows us to choose which areas are to be dissolved, what the guiding field should be and how the field values should be combined.





Choose [All Objects] or the name of a saved selection.


Choose the field to use to guide the dissolve process.

Ignore Case

Combine text strings treating any variation in case as the same string.

Ignore leading and trailing whitespace

Combine text strings without regard to whitespace characters before or after the string.

Ignore internal whitespace

Combine text strings without regard to whitespace characters occurring within the string.

Aggregate Options



Do not transfer values for this field.


Transfer the average value that occurs in this field.


Transfer the total number of objects in this field.


Transfer the maximum value that occurs in this field.


Transfer the minimum value that occurs in this field.


Randomly choose one of the values from the original object and place it in the combined object.


Transfer the sum of values that occur in this field.


Different aggregate options will be used with different types of information. For example, suppose each state has an Area field that gives the area of the state in square kilometers (or more likely for the US, in square miles…). We would like the Area field for the combined area created by Dissolve to be the Sum of all the areas of the states that were unioned together.


Use with Lines


The classic example of using Dissolve with lines is the case of a drawing showing highways as lines. Quite often in such cases a highway will be composed of many line objects arranged end to end with each line having a data attribute that gives the highway name or number. At times we may wish to create a drawing that has a single line created from all lines that have "5," or "80," or some other number as their highway identifier. We can accomplish this task using Dissolve.




Suppose we have several lines with a Name field that contains the value 5 together with two other lines that have the values 18 and 80 in their Name fields. The illustration above shows one of the 5 lines selected so it is clear that the longer line sequence at the left of the illustration is composed of more than one line object. The illustration shows the drawing seen in a map with labels created from the lines.




We can run Drawing - Dissolve on the drawing using the settings above.




The result is the three line objects that had the same value 5 in their Name field have been replaced by a single object that has 5 in its Name field. The illustration shows labels drawn aligned to lines so more labels appear for each line object.


Transfer Rules


When objects are dissolved into one object, the new object always inherits the value of the field used to guide the dissolve no matter the setting of Transfer Rules for that field. All other fields will be merged together using the settings of transfer rules for those fields.


Use with Points


When used with points, Dissolve will find the centroid for all point sharing the same value in the designated field and will replace those points with a single point at the centroid.




Suppose we have a drawing with points. Each point has a field named Name with the value 3 or 6. The illustration above shows the drawing in a map with a labels layer above it that shows the value of the Name field for each point. The points with a value of 6 have been selected to make it clearer how they are arranged.




As before, we run Drawing - Dissolve using the Name field.




The result is that all of the "3" points are replaced with a single "3" point at their centroid and all of the "6" points are likewise replaced with a single point.



If we had copied the original drawing we could show it in map with the new points created by Dissolve. The illustration above shows the original drawing with reduced layer opacity so it appears faint and thus the two new points are more clearly visible.


How might Dissolve be used with points in a geographic situation? Drawings imported from some formats, such as VPF (VMAP) or SDTS may at times create drawing layers with points that are intended to be anchor points for labels in the native format. So, for example, we might import a VPF data set that ends up creating a scattering of points, all of which have "Gulf of Mexico" as their value. However, we might wish to have only one point so valued for each different instance of label ("Gulf of Mexico", "Atlantic Ocean," etc.). We can easily accomplish this with Dissolve, which will replace each collection of same-valued points with a single point at their centroid.


Memory Limitations


32-bit Windows operating systems cannot allocate more than 2 GB of memory per process. This puts an upper limit on system functioning whereby algorithms that need more than 1 GB of memory (even temporarily) cannot usually operate. For example, using Dissolve to dissolve millions of polygons with very large data attributes for each record can exceed the process limit. Research continues at manifold.net to work around this limit of 32-bit Windows systems. As a solution until either 64-bit Windows systems become generally available or until Manifold research finds a way to exceed the limit imposed by 32-bit systems, try running large algorithms in parts. For example, try running a large Dissolve on portions of a drawing and then do a Dissolve on the results of these runs.