Skip to main content

I am trying to automate the conversation of a large series of CAD drawings to save the data to be used in ArcGIS Floor Aware apps.

One of the criteria is to have levels / floors in a building sorted in vertical order, with the ground floor as 0 and increasing by one for each floor above the ground and decrease by one for each floor below the ground.

Unfortunately my data has inconsistent naming for floors. With some having a Lower Ground (LG) and or basement (B). There are also some that have a messanine (M) between Ground (G) and Level 1 (L1). To top it off there is a Roof (R) in some.

So my problem is that I need to sort the list of floors in such a way that I can get the vertical order, both positive and negative,  centred around Ground as 0 where it exists. 

Does anyone have suggestions on how to tackle this?

Here are a couple of examples and the vertical order needed.  

 

B, G, M, L1, L2, R => -1, 0, 1, 2, 3, 4

B, LG, G, L1, L2, L3 => -2, -1, 0, 1, 2, 3

LG, L1, L2, R => -1, 0, 1, 2

Hi ​@deanhowell 

At first glance I would suggest the AttributeValueMapper. I have used this many times to ‘clean’ and ‘normalize’ data. Especially where we have multiple entries that represent the same value.
Hope this helps!

 


Thanks all for your assistance.

 

For completeness here is my solution

  1. I added an attribute creator with a number of conditional statements to set a temp vertical order.

 

  1. I turned the levels into a list and sorted them and then defined ground zero with a couple of List searchers

 

  1. Finally, I did a bunche or tests, and sorting positive and negative to get the final vertical order
  2.