Join Table to ArcGIS Utility Network Feature Service

609
8
Jump to solution
10-20-2023 04:36 PM
shildebrand
Occasional Contributor

Hey everyone,

Does anyone know if there is a good workaround for joining a table or layer to a subtype layer from an ArcGIS Utility Network feature service?  We use this to field calculate some fields based off a field from a joined layer/table.  It says the "command is currently unavailable for subtype layers"

1 Solution

Accepted Solutions
RobertKrisher
Esri Regular Contributor

As long as you are adding the layer from your utility network feature service as a regular layer and not as a subtype group layer you can run the 'add join' tool on the layer, no problem. Join field would be problematic because it would change the schema (and you could only do it once).

All the discussions about performance implications still stand, I just wasn't clear enough about using the individual layer from the feature service instead of a subtype layer from the subtype group layer.

View solution in original post

0 Kudos
8 Replies
RobertKrisher
Esri Regular Contributor

@shildebrand Doing a calculate field against a feature service can be a slow operation if you're doing this on a lot of rows and can also bloat the size of your history tables if you don't narrow the scope of your calculation. If you're familiar with Python I can recommend a few techniques that will be more sustainable, otherwise if you're just doing this once and don't mind the pain you can try using a regular layer and just apply a definition query to it.

0 Kudos
shildebrand
Occasional Contributor

Thanks Robert,

I would welcome any techniques that you have used to calculate fields from joined tables.  The ability to join a table or feature class to any layer and populate a field based off contents from the joined data is a core fundamental GIS task that I have performed for much of my career. 

For example, we used to populate an Elevation field in our old LGM geometric network sde layers using the "Add Surface Information" tool in the 3D analyst extension.  Because the tool modifies the schema by adding a "Z" field, we would export the point features that we want to assign an elevation to and run the tool on the exported points.  Then we would join them back to sde using the AssetID field and populate the existing Elevation field in sde.  Is there a tool out there that will populate an existing Elevation field in a Utility Network feature service from a surface?  Obviously because joins are not possible anymore, we need to find a new workaround.

0 Kudos
RobertKrisher
Esri Regular Contributor

@shildebrand You should still be able to use a regular feature layer to do the join, but you will want to use a definition query to filter out any rows that aren't relevant or don't need to be updated (e.g. excluding everything but the relevant asset group or features whose z-value hasn't changed).

You can also do the same thing using Python scripts or Python Notebooks (using either ArcPy or the ArcGIS API for Python), this would give you even more control over your analysis and which features to update.

0 Kudos
shildebrand
Occasional Contributor

How do you join a regular feature layer to a UN feature service layer?  All join/relate options are greyed out.

0 Kudos
RobertKrisher
Esri Regular Contributor

As long as you are adding the layer from your utility network feature service as a regular layer and not as a subtype group layer you can run the 'add join' tool on the layer, no problem. Join field would be problematic because it would change the schema (and you could only do it once).

All the discussions about performance implications still stand, I just wasn't clear enough about using the individual layer from the feature service instead of a subtype layer from the subtype group layer.

0 Kudos
shildebrand
Occasional Contributor

Sorry for the confusion.  I didn't realize you could add a feature service layer as a regular layer and not a subtype group layer.  By doing that, I can join.  Thank you!

0 Kudos
LarryYoung
Esri Contributor

@shildebrand Just as an FYI, you can also create a selection layer from the Subtype Group Layer and then do a join to that.

0 Kudos
shildebrand
Occasional Contributor

Thank you, that's great!

0 Kudos