Combine multiple layers by attribute

87
3
08-28-2019 08:35 PM
Highlighted
New Contributor

Hi All,

I am trying to solve a problem I am having with merging multiple layers then splitting them by attribute.

I keep receiving an error when I try to merge layers. "Objects in this class cannot be updated outside an edit session" [NewMergedLayer] 

Is there any easier way to merge or select layers and filter by an attribute to create a new layer?

I am currently working with 88 layers that I would like to merge into 4 or 5 layers and then split them by their "status" attribute. The statuses are to show if they work has been completed on an asset. "Completed" or "Not started"

I have also tried to using the selection tool on the map to create a new layer but it will not allow me to do this with multiple layers. 

Am I doing something wrong? Any advice or suggestions are appreciated.

Thanks in advance!

Tags (2)
Reply
0 Kudos
3 Replies
Highlighted
Esri Notable Contributor

Have you tried Append using SQL to specify only certain attributes?

Append—Data Management toolbox | ArcGIS Desktop 

Reply
0 Kudos
Highlighted
New Contributor

Hi Kory,

I have used append and it does what I was asking in my question above, it just seems very inefficient. I was hoping there was a solution where as I could select all of the points on a map and then filter the data in a table from which I could create a new layer.

Unfortunately I am quite new to ArcGIS and have not yet learnt much SQL. So this option probably isn't viable for me. 

Do you know what would be a good resource for me to learn some for SQL?

Thanks for you assistance,

Kurtis.

Reply
0 Kudos
Highlighted
Esri Notable Contributor

Hi Kurtis - I'm assuming you've already read through the SQL reference for query expressions used in ArcGIS—ArcGIS Pro | ArcGIS Desktop help linked to from the Append tool help?

From the description you provided above, it sounds like you would want to append features where status = "completed"

 and maybe append to a different feature class where status = "not started" ?

I don't think you need to learn SQL - just use the query builder:

STATUS is equal to "completed"

STATUS is equal to "not started"

Does that get you going in the right direction?

Reply
0 Kudos