We have several users that are using ArcMap, and have asked me to create a fairly complicated label scheme. I have created several classes, each with different Expressions describing the labels.

I would like to automate the steps of creating all of the classes, and setting all of the Expressions.

Is there a way to do this with ArcMap 9.3.1.


Right now, to deploy, I am going to send each user a bunch of files, with some instructions. The instructions will look like:

Instructions to change labeling for Layer1

  1. From ArcMap TOC, click "Display" tab
  2. Open Layer Properties for Layer1
  3. Go to the "Labels" tab
  4. Change the "Method" dropdown to "Define classes of features and label each class differently"
  5. Click "Add..." to add a new class
  6. Enter "ClassA" as a name, and press OK
  7. Click "Sql Query..." to define the class
  8. Click "Load..." file and select the "ClassA.exp" file
  9. Press OK, to close the SQL Query dialog
  10. Click "Expression..." to define what is displayed as a label
  11. Click "Load..." and select the "ClassA.lxp" file
  12. Click OK to close the Label Expression dialog

Repeat these steps for ClassB, ClassC, etc...

Is there anyway to make this easier for the users?

3 Answers 3


You can create annotation feature classes in geodatabases.

They are just like regular feature classes, but store text. You can define rotation, style, just like a regular annotation and create these classes only once. In them you can establish expressions and queries too. You can even create scale dependent annotations.

If you are looking for an automated solution, it's a bit harder.

Give us more details of what you need and we might be able to help more.

Given your details, a programatic solution would be the best. You could, in fact, generate all those labels only once (as a annotation feature class) and all users would be able to access it.

You can:

A) generate a solution that will build that labelling scheme everytime it's needed; B) generate the annotations with all thoses rules in your geodatabase;

My guess is that A is really cumbersome (programming with annotations in mind is tricky and takes a little time, as there is no extensive documentation) but does provides you with an updatable solution (if the rules change, you just program them again and all users will see the new rules). With B you don't need to program, but you might need to update annotation feature classes if the rules/symbology needs changing inside ArcCatalog (in 9.x that task is just plain boring, as it requires a exclusive schema lock, i.e. only you can be using the feature class);

This will all depend on your setup. I hope this helped.

  • I've updated the question, with (hopefully) more useful details. :)
    – mlsteeves
    Aug 6, 2010 at 17:09

Have you sent a Layer file with the data, when you deploy? If not, it might be the answer to your question. When you set up label definitions on a layer in ArcMap, you can Save as Layer when you right click the Layer in the Table of Contents. The Layer file contains everything about the presentation of the Layer - and the Data Source information too, so your users might have to set the Data Source correctly, when they add the Layer file to their map.


Another option to consider is a Layer Package.

As noted in the online help: "A layer package includes both the layer properties and the dataset referenced by the layer. With a layer package, you can save and share everything about the layer—its symbolization, labeling, table properties, and the data ... While a layer package will be larger in size than a layer file (because it includes the data), your users will not need to worry about access to your same data sources."

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.