What is annotation?
Annotation in the geodatabase is stored in annotation feature classes. As with other feature classes, all features in an annotation feature class have a geographic location and attributes and can either be inside a feature dataset or a standalone feature class. Each text annotation feature has symbology including font, size, color, and any other text symbol property. Annotation is typically text, but it can also include graphic shapes—for example, boxes or arrows—that require other types of symbology.
If you have more than a few hundred pieces of text or if you want editable text that you will use in many maps, use geodatabase annotation. Working with geodatabase annotation in ArcMap will generally be faster than working with map document annotation. Geodatabase annotation is indexed spatially, meaning that it will draw and select much faster.
Standard and feature-linked annotation
Feature-linked annotation feature classes can be created and edited in ArcInfo and ArcEditor, but they are read-only in ArcView.
There are two kinds of annotation in the geodatabase—standard and feature-linked. Standard annotation is not formally associated with features in the geodatabase. An example of standard annotation is the text on a map for a mountain range. No specific feature represents the mountain range, but it is an area you want to mark.
Feature-linked annotation is associated with a specific feature in another feature class in the geodatabase. The text in feature-linked annotation reflects the value of a field or fields from the feature to which it's linked. For example, the water transmission mains in a water network can be annotated with their names, which are stored in a field in the transmission mains feature class.
Annotation links to features through a composite relationship with messaging. The feature class being annotated is the origin class in the relationship, and the annotation feature class is the destination class. As with other composite relationships, the origin feature controls the destination feature. If an attribute value for the origin feature changes, the linked annotation that is based on this attribute will automatically update to reflect the change. When the origin feature is moved or rotated, the linked annotation also moves or rotates with it. When an origin feature is deleted from the geodatabase, the linked annotation feature is also deleted.
In the water network example, a hydrant may be too close to a busy intersection and may need to be moved 50 feet. When the hydrant is moved, its linked annotation moves with it. In the same network, the name of a transmission main may change. When the value in its name field is modified, the text stored in its linked annotation feature is automatically updated with the new name.
A feature-linked annotation feature class inside a feature dataset should link to a feature class within the same dataset. Similarly, standalone feature-linked annotation feature classes should link to standalone feature classes in the same geodatabase.
An annotation feature class can be linked to only one feature class, but a feature class can have any number of linked annotation feature classes.
Standard and feature-linked geodatabase annotation feature classes contain one or more annotation classes. Each annotation class contains properties that determine how a subset of annotation in the feature class displays.
For both standard annotation and feature-linked annotation, these properties are:
- Default symbology applied when creating new annotation
- A visible scale range
For feature-linked annotation, the following properties are added:
- How the annotation text strings will be defined based on attributes in the linked feature class
- Which features in the linked feature class will be annotated by the annotation class
- How to place new annotation
For example, if you have an annotation feature class for cities, you could have annotation classes of varying text sizes and scale ranges for small, medium, and large cities—all managed within a single annotation feature class. Annotation classes save you from having to define and maintain multiple annotation feature classes.
You can create and modify annotation classes. You create annotation classes when you create an empty annotation feature class with ArcCatalog or when you convert labels to annotation. When you convert labels, each label class converts to an annotation class. Once you've created an annotation feature class, you can create and modify annotation classes with the Feature Class Properties dialog box.
To maximize ArcMap display and query performance, always define a visible scale range for each annotation class so annotation features only draw when you're zoomed in enough to read their text.
If you have more than one annotation class, the annotation classes are implemented as subtypes in the annotation feature class. To create new annotation for an annotation class, choose the class as the target on the Editing toolbar.
You can create and modify annotation classes with any license, including ArcView.
An annotation feature class contains a collection of one or more text symbols that you define. Every time you create a new annotation feature, you assign it one of these predefined symbols. The symbol contains properties that describe how the annotation feature is drawn, such as font, size, and color. For example, if you have annotation for small, medium, and large cities, create three text symbols of varying font sizes to assign to the annotation. Because each annotation feature needn't store its own symbol properties, ArcGIS is able to reduce storage requirements and maximize display and query performance. Committing to a limited list of symbols can help you promote standards for any new annotation features you create.
Whenever you create an annotation class, you create a default text symbol for it. You can also create additional text symbols for a feature class at any time with the Feature Class Properties dialog box. Once you've created the symbols, assign them to annotation features when editing in ArcMap.
When assigning symbols to annotation features in ArcMap, you may discover that the text symbols you created do not contain the properties you need for one or more annotation features. For example, you may require a smaller font size to fit annotation into a congested area. One approach is to create a new text symbol with the new properties in ArcCatalog, then assign the new text symbol to the annotation features in an ArcMap edit session.
Creating a new symbol for every unique set of properties you require could result in a long list of symbols that is difficult to work with. ArcMap allows you to modify symbol properties on a feature-by-feature basis. When editing in ArcMap, you can select annotation and change any symbol property for that annotation.
Editing certain symbol properties on a feature-by-feature basis causes annotation to lose its reference to its associated text symbol in the collection. When this happens, the annotation feature stores all its symbol properties. This increases the storage requirement and reduces display and query performance for the annotation.
The properties you are able to edit on a feature-by-feature basis while continuing to maintain reference to a text symbol in the collection are:
- X and y offset
- Horizontal and vertical alignment
- Flip angle
- Font name, size, color, character spacing, character width, and background symbol
- Font—bold, italic, and underline
- Word spacing
- Leading property
For example, if you reduce an annotation feature's font size from 12 to 8, the annotation feature still references a predefined symbol; however, it stores its own font size of 8. If you change a property not listed above, such as giving the annotation feature a halo, the annotation feature loses reference to its associated text symbol and stores all the symbol properties.
You can always use text formatting tags to modify the format of a portion of a piece of annotation. This lets you create mixed-format annotation , for example, where one word in a sentence is underlined. Formatting tags always take precedence over an annotation feature's symbol properties.
When deciding what symbols to store in your annotation feature class, choose a default symbol for each annotation class when you create it, then add any other symbols containing the properties you'll commonly need. For properties that are seldom needed, you can apply them on a feature-by-feature basis. A limited number of features storing their own symbol properties will have little impact on the storage requirements and performance of a feature class.
When editing your annotation feature class you may see a red bounding box instead of your annotation text. This indicates that the SymbolID for the annotation feature has become disconnected from its text symbol.
This can happen in two ways:
- The annotation has been copied and pasted from one annotation feature class to another feature class and the SymbolID from the first annotation feature class does not exist in the symbol collection for the second annotation feature class.
- The annotation feature class has been edited in ArcCatalog and the text symbol that the SymbolID is referencing has been deleted.
To resolve this, you can do one of the following:
- Create a new symbol in the symbol collection and calculate the SymbolIDs of your annotation features to it.
- Calculate the SymbolIDs of your annotation features to a new text symbol number.
It is possible to edit annotation in a geodatabase from a previous release. The Annotation feature class takes advantage of the same functionality as the Save A Copy command in the ArcGIS applications, to save the proper version of annotation features for the geodatabase release that is being edited. For example, ArcGIS 10 is able to edit both 9.3 and 9.2 geodatabase annotation.
Geodatabase annotation in an 8.3 or earlier geodatabase still requires updating to enable editing.