Problem: CLEAN and BUILD scramble PAT or AAT attributes

Solution or Workaround

The CLEAN and BUILD commands seem to scramble the attributes of the PAT or AAT. Why does this occur and how can it be prevented?


Improper use of coverage user-IDs and PC ARC/INFO's data model.


PC ARC/INFO requires that all user-IDs for polygons, points, or arcs have unique values. There should never be any duplicate user-IDs. When CLEAN or BUILD encounter duplicate user-IDs, they will recognize the first feature having a duplicate ID to be the "legitimate" owner of that ID. The remaining features with that same ID will get lost and end up with the wrong attribute information. Once this "scrambling" takes place, there is no way to undo it.

You can only prevent this from happening by always maintaining unique user-IDs.

You can use TABLES to make the IDs unique by calculating the COVER_ID (user ID) field of the attribute table to equal some unique field such as the COVER_ (internal ID) or the $RECNO. For the Polygon Attribute Table only, subtract 1 from the unique field in this calculation:


The reason for this is Polygon Attribute Tables contain a special addition record (record 1) for the universe polygon. This field must always have a COVER_ID value of 0. Once this calculation is made, the IDEDIT command must be run outside of TABLES to change the IDs in the coverages internal spatial files. Be sure to choose the appropriate feature type parameter in the IDEDIT command (POLY, LINE, or POINT).

To avoid the scrambling problem, you must also follow these rules:

1. Be sure to correct all spatial errors in the coverage. Use the commands LABELERRORS and NODEERRORS to find these errors.

2. Every polygon should contain only one label with a unique user-ID.

3. If you add new arcs and labels to a coverage, be sure to set the starting ID for new features to be a unique number. If using the ADD command in ARCEDIT, use the add menu to specify a new user-ID before adding the feature.

4. You must do a BUILD or CLEAN after making any changes in ARCEDIT, even if you just added or changed attributes.

5. A coverage must have current topology (established by BUILD or CLEAN) before you change user-IDs in TABLES.

6. You must perform an IDEDIT after changing user-IDs in TABLES. It is not necessary to run IDEDIT if you alter user-IDs in ARCEDIT.

7. You must run BUILD or CLEAN after running IDEDIT.

8. Be sure to specify "ALL" for an offset type if using the APPEND command to create a new coverage. This will maintain unique feature user-IDs.