Ability to choose drawing order of features within same layer

08-12-2021 07:02 AM
Status: Closed
Labels (1)
Occasional Contributor

Currently, when editing features in the same layer, the last feature edited is automatically on top. At our organization, we draw in pipeline fittings and many times pipelines intersect or are even right on top of each other. Any time we do an edit to one fitting, it messes up ordering of the pipelines and pulls the last edited to the top even if we want to display it on bottom. This requires frustrating work-arounds such as having to find some way to edit the fitting that should be on top to get it to display on top or copy/pasting the fitting that should be on top (which messes up any links to that original fitting as it obtains a new global id). It would be nice to have the option to choose the drawing order of objects within the same layer, much like is possible with drawing order between layers.

Tags (2)
Status changed to: Needs Clarification

Thank you for submitting this idea @AspenN 

It sounds like what you're requesting is symbol layer drawing: https://pro.arcgis.com/en/pro-app/latest/help/mapping/layer-properties/symbol-layer-drawing.htm

Here is a very quick example:



If you are already using symbol layer drawing and it doesn't meet your needs, can you provide additional details to help us understand what isn't working?

Thank you!


Thank you for your reply @KoryKramer . However, this isn't the solution I am looking for. According to that documentation, it mentions that features within a layer are drawn in the order they are in the database (see highlighted portion in the attached image). Feature Layer Ordering.PNG

The issue is that we have features from the same feature class that are the same type that get drawn on top of each other. However, when an edit is made to one, it automatically jumps to the top. Sometimes I have to draw in a feature that got added in later that should be below a feature of the same layer already there which involves complicated work-arounds to get that feature below the existing feature. I am looking for a way to control which features are on top of other features within the same layer and same type. A possible way could be to have some way to select which object id gets drawn on top, if that is possible.


Thanks for the response @AspenN The doc is describing the default drawing order.  Symbol layer drawing allows you to override that.

From your description that the features are in the same feature class and of the same type (like the same fitting, so they actually have the same symbol, correct?) it sounds like you are using Single Symbol as opposed to Unique Values which is what I was using above in my example?  

Can you share screenshots?  I'm having trouble understanding what you're describing about a feature "jumping to the top" or trying to draw something that displays beneath something else if they are all the same symbol (i.e. no matter how many features you have stacked on top of one another, it will only ever appear that there is a single feature).  If you have different symbol classes, it would be interesting to understand why symbol layer drawing doesn't work...

Are the points you're editing z-enabled where you actually give them a real world elevation?  If not, is there an attribute that is maintained to indicate a logical z-level (i.e. 0 is below 1 is below 2)? 

From your description of being able to have drawing based on objectID, it sounds like you might be interested in having a way to have symbol layer drawing based on an attribute value (like a logical z level mentioned above)?  See the last two comments on https://community.esri.com/t5/arcgis-pro-ideas/hierarchy-or-order-of-symbology-in-a-layer/idi-p/9381... 

"I would suggest that the rendering of features on map based on single or multiple fields using ascending or descending order,"

"I would really like a way to control the order that features are drawn within the same layer but I would like it based on an attribute" 



Editing Example 1.png

@KoryKramer In this first screenshot above, the pipes are drawn correctly (in the real world the bottom pipe with the arrow pointing to it crosses below that upper pipe). However, if I had to make an edit to that bottom pipe, the following occurs:

Editing Example 2.png

That pipe is now displayed on top like it crosses on top of the other pipe, giving those looking at our maps an incorrect understanding of the piping in this area. Currently, the only solution for this is to have to go in and find a way to edit the pipe that should be displayed on top so it ends up back on top or copy/paste the pipe that should be on top back up to the top. The latter option doesn't work because we keep track of assets using their global id's (copy/paste would generate a new global id, leading to a need to re-link everything to that asset with the new global id).

We don't have a z-level attribute for our features. Even if we would create one as you suggest ("attribute that is maintained to indicate a logical z-level (i.e. 0 is below 1 is below 2)"), that could get very messy since in some cases, we have thousands of pipe objects in one layer and sometimes have many pipes crossing other pipes.


Thanks for the screenshots @AspenN 

What kinds of edits are you making that cause that behavior?  For example, are you splitting lines?

I have to ask because in testing this, when I make attribute edits, geometry edits, or both, I can't reproduce a feature popping to the top and displaying on top of another feature.  A friend of mine on the editing team suggested that it could be occurring when splitting features.

Based on your last response, are you picturing that you would have to manually define drawing order for a specific subset of features that you're working with, without having to maintain a "drawing order" attribute?

Status changed to: Closed

After further internal discussion of this request, the determination is that since symbol level drawing is what ArcGIS uses to guarantee drawing order, a possible path forward would be to define drawing order using an attribute (and sorting the draw order in ascending or descending order).  There is an item in the development backlog for that request, and we have that associated with this idea: https://community.esri.com/t5/arcgis-pro-ideas/hierarchy-or-order-of-symbology-in-a-layer/idi-p/9381...

Manually defining drawing order that is not based on symbol classes or an attribute is not seen as feasible at this time.

Thank you.


Thank you for your help @KoryKramer. I will look further into adding in an attribute for drawing order.

To answer your question regarding what edits I was doing, they were geometry edits (adjusting vertices, moving the feature, etc.). That issue with the feature jumping to the top occurs with any geometry edit and has been an issue for us in both ArcMap and ArcGIS Pro. Perhaps we are doing something wrong that is causing this issue?



Have you tried assigning a z-value to your pipes?  It would make them 3D instead of 2D, and then deeper pipes would draw lower than shallower pipes.