What is the alternative for Geometric Network in ArcGIS Pro? I’d like to deal with water courses (river kilometers, segments and events based on measurement values on polyline, some topology for connectivity, upstream & downstream selection). I’d like to work on a local machine, in File Geodatabase. I have 3D, Spatial and Geostatistical lic. on Advenced level.
How can I query the measurement value along a polyline by clicking (like in ArcMap)?
If I have an M-aware polyline feature class, how can I define the start & end M value during the (always existing) edit session? (In ArcMap there was a right click --> Measurement --> From/To option).
Solved! Go to Solution.
There are a few different things going on in the question. The title is asking about geometric networks, but the description really seems to be focused on linear referencing.
As you've already mentioned, the Utility Network is the next generation of the geometric network for ArcGIS Pro. But based on your description of working with M values and clicking to identify M, that isn't currently available in Pro. There are a few different ideas around linear referencing functionality in Pro.
Find - Linear Referencing Tool for ArcGIS Pro
Display Route Measure Anomalies in ArcGIS Pro
That last one has a link to help explaining how to set up hatching with the measure value. It doesn't give you the click to identify M functionality, but might be a workaround until the functionality is built in Pro.
I hope this helps.
Tools that are not available in ArcGIS Pro—Appendices | ArcGIS Desktop
which states
Note:
Geometric networks are a read-only dataset in ArcGIS Pro. The capability to manage, model, and analyze network systems for water, gas, electric, telecom, sewer, storm water, and other utilities has been replaced by the Utility Network.
Utility Network is designed for Enterprise environments only. ArcGIS Pipeline Referencing looks more promising -- if there is no better option.
There are a few different things going on in the question. The title is asking about geometric networks, but the description really seems to be focused on linear referencing.
As you've already mentioned, the Utility Network is the next generation of the geometric network for ArcGIS Pro. But based on your description of working with M values and clicking to identify M, that isn't currently available in Pro. There are a few different ideas around linear referencing functionality in Pro.
Find - Linear Referencing Tool for ArcGIS Pro
Display Route Measure Anomalies in ArcGIS Pro
That last one has a link to help explaining how to set up hatching with the measure value. It doesn't give you the click to identify M functionality, but might be a workaround until the functionality is built in Pro.
I hope this helps.
Dear Kory,
I can't miss the route identify function, so I tried to write my own. Is this code OK, or there is a better/shorter option?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ArcGIS.Core.CIM;
using ArcGIS.Core.Data;
using ArcGIS.Core.Geometry;
using ArcGIS.Desktop.Catalog;
using ArcGIS.Desktop.Core;
using ArcGIS.Desktop.Editing;
using ArcGIS.Desktop.Extensions;
using ArcGIS.Desktop.Framework;
using ArcGIS.Desktop.Framework.Contracts;
using ArcGIS.Desktop.Framework.Dialogs;
using ArcGIS.Desktop.Framework.Threading.Tasks;
using ArcGIS.Desktop.Mapping;
namespace T2
{
internal class MT2 : MapTool
{
public MT2()
{
IsSketchTool = true;
SketchType = SketchGeometryType.Point;
SketchOutputMode = SketchOutputMode.Map;
}
protected override Task OnToolActivateAsync(bool active) => base.OnToolActivateAsync(active);
protected override async Task<bool> OnSketchCompleteAsync(Geometry geometry)
{
if (geometry != null && !geometry.IsEmpty && ActiveMapView != null)
{
string RetString = await QueuedTask.Run(() =>
{
IReadOnlyList<Layer> LayerList =
ActiveMapView.Map.GetLayersAsFlattenedList();
int LayerCount = LayerList.Count;
if (LayerCount <= 0)
return "There is no layer on this map/scene!";
List<FeatureLayer> M_Layers = new List<FeatureLayer>(LayerCount);
for (int i = 0; i < LayerCount; i++)
{
FeatureLayer featureLayer = (FeatureLayer)LayerList;
if (featureLayer != null)
using (FeatureClassDefinition featureClassDefinition = featureLayer.GetFeatureClass().GetDefinition())
if (featureClassDefinition.HasM())
M_Layers.Add(featureLayer);
}
if (M_Layers.Count <= 0)
return "There is no M-aware layer on this map/scene!";
IGeometryEngine engine = GeometryEngine.Instance;
MapPoint mapPoint = (MapPoint)geometry;
StringBuilder stringBuilder = new StringBuilder();
var LayerDictionary = ActiveMapView.GetFeatures(geometry);
foreach (var item in M_Layers)
if (LayerDictionary.ContainsKey(item))
{
stringBuilder.AppendLine(item.Name + ":");
using (RowCursor cursor = item.Search(new QueryFilter()
{ ObjectIDs = LayerDictionary[item].AsReadOnly() }))
while (cursor.MoveNext())
using (Feature feature = (Feature)cursor.Current)
stringBuilder.AppendLine("\t" + engine.NearestPoint(feature.GetShape(), mapPoint).Point.M.ToString("0.####"));
}
return stringBuilder.ToString();
});
MessageBox.Show(RetString,"Hit results");
}
return true;
}
}
}
Hi Ákos Halmai I applaud the effort, but I'm not the right person to ask. Maybe open a discussion in ArcGIS Pro SDK
Hi,
Geometric Networks or Utility Network are sported in ArcGIS Online?