Hey all, I am trying to find an alternative to feature linking a label. The issue I have is updating my attribute table when I change a label, or vice-versa. Unfortunately, my company will not fork out the money to add an extra Editor license, so I'm stuck manually updating my database when I change a label. This opens up the possibility of forgetting to do this (which it has happened) and I'd like to find a work-around to make sure it doesn't. If anyone can suggest something creative, I'm all ears (or eyes in this case) 🙂
Even if your company forks out the cash for the Editor license, annotations will only update one way --> attribute data change will update the annotation. This only works well when the newly updated value is more less the same length (characters). Say you use Maplex and you made fancy labels from a complex expression using tags and multiple lines then you export this as a feature linked annotation. Does not work as well as you might think. Instead of having your company fork out all sorts of cash on the Editor license have them buy you the Maplex extension and label features dynamically. Maplex gives you a lot more control over the dynamic labels. Better yet, rumour has it that the upcomming new version of ArcGIS will include Maplex in the Basic license (formerly ArcView).
There are ways to do what you want programatically but it would be fairly complex when you get to slitting and merging features.
When limited to an ArcView licence I've used the following trick:
-Make a point featureclass from the layer you want to annotate (e.g. Parcel Centroids) -Only keep a unique ID field in the new layer -Join the unique ID of the point layer back to the base layer -Use a join field to label the points -Set the label properties to be directly over the point and to overlap everything -Move the points to move the labels -set the symbology of the points to be clear/null/Size 0
The labels will draw and if the underlying data gets changed the labels are populated by the join field. As long as the unique identifier stays static you can reporduce a bunch of Annotations without Editor.
Sure you lose some fidelity but that's better than convincing a PM or Director into forking out another $5000. You can port the psuedo-annos from MXD to MXD by saving them in a .lyr file.
Jakob, thank you for pointing out the one way nature of the feature linked annotation. That I did not know. I'm going to look into the Maplex extension and see if it offers what I need. The other part of my equation is, my client. It's a large oil company and they like to have a lot of control over how we deliver data and maps to them which, as you can guess, can really strict my ability to try new methods to create the maps from the data I am given.
Jim, I like your work-around. Using unique identifiers in a point label for a join is something I've been thinking about attempting. The problem I have is, the maps I produce have a limited scale and I have to fit a crazy amount of labels into some maps, so sometimes I delete labels and use others with leaders to multiple polygons that have the same label. And then I have to contend with the decision makers making label changes after I create the map and the annotation. When they do this, I have to remember to change the attribute table of the parent polygon FC as well and sometimes I/we forget, which is what brings me to find an automated process that will remember for me 🙂
I still like using unique identifiers, I just need to find a creative way to make sure the annotation and database are updated at the same time when a change occurs. For now, I am stuck.