I have a layer of rivers, but I only want to include some of them as including all would clutter the map. So i create a new layer by selection, and add that to the layout, add the labels, but they are too small. So i go into properties, symbol, and change the size to larger.. but when i change it to larger all the rivers appear instead of just the selection.

How can I get only the selection to have large labels?

  • 1
    You have been victimized by one of the most notorious bugs in ArcGIS. It will probably never be fixed in ArcMap. See community.esri.com/thread/53023 You might be able to use the definition query on a layer workaround as answered. You might still be able to use the layer by selection if you symbolize and label the layer the way you want and then create the layer by selection. It is usually the changing of its properties that causes it to revert.
    – John
    Commented Mar 9, 2018 at 13:24

2 Answers 2


Layers created from selections are unstable. Make a copy of your layer and use a definition Query then add labels to this:

enter image description here

enter image description here


A better option for labeling would be to run a definition query on the River Shapefile.

  1. Right-click the layer and go to properties
  2. Select the "Definition Query" Tab in the window the pops up (7th Tab from the left)
  3. Click Query Builder

  4. Choose a query as you would for creating a selection.

As an example, if the Field you using for the selection is [Riv_Type] and you only want Perennial then you would have your query builder set up like this:


This will remove all Rivers which are not Perennial, and allow you to label the rivers accordingly.

You could also use the "Label Expression" to still show all rivers on the map, but only label those meeting your criteria.

  1. In the layer properties, seslect the "Labels" tab - 8th Tab from the left.
  2. Click the "Expression" button - midway in this form.
  3. Select the Advanced tick box.
  4. The Label expression will change slightly.
  5. In the Text box set up the expression.

Using the same example from above

Function FindLabel ( [Riv_Type] )
If [Riv_Type] = "Perennial" then
  FindLabel = [Riv_Type]
  FindLabel = ""
End If
End Function

This will keep all the rivers on the map, but will only label the Perennial Rivers in this case. Make sure you set the "Parser" to VBScript

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.