Skip to main content
Question

Select every other point in a connected network

  • March 20, 2026
  • 5 replies
  • 172 views

bcarpenter1
Contributor

I have a network of connected points and lines, and I’m looking for a way to create a selection set of points along the network, the key being I want to only select every other point. I tried modular selection counts (odd vs even numbering), network topology build for start and end node, but I can’t seem to get the results I’m looking for. 

Below is a screen capture - I want to eliminate the grey colored points in between. At intersections these points would be retained if necessary according to the ordering. 

 

Select all points in Orange, skip points in Grey

 

5 replies

redgeographics
VIP
Forum|alt.badge.img+62

By your reasoning point #27 should be skipped, right? Because I see it included in the result set.

And how do you want to deal with an intersection point which should be retained according to the ordering of one line, but not on the other?


bcarpenter1
Contributor
  • Author
  • Contributor
  • March 24, 2026

By your reasoning point #27 should be skipped, right? Because I see it included in the result set.

And how do you want to deal with an intersection point which should be retained according to the ordering of one line, but not on the other?

I included another screen cap, that hopefully clarifies; basically every other point, and somehow at an intersection I would have to calculate if a neighboring points were included as it branches out moving forward with the selection. 


jamatsafe
Safer
Forum|alt.badge.img+19
  • Safer
  • March 30, 2026

Hi ​@bcarpenter1,
Thank you for the interesting question. I've done some testing and you might be able to achieve this via a TopologyBuilder and NetworkCostCalculator, but with one important caveat though. Perfect alternation isn't possible on networks that contain any odd-length loops (eg. triangle loop) as you'll always end up with two adjacent nodes sharing the same selection.

For branching/tree networks with clean topology, you can use a NetworkCostCalculator to calculate the shortest path cost from a starting node to every other node in the network with a defined edge cost of 1 for forward & reverse directions. The cost at any node equals the number of edges/steps away from the start so with each step incrementing cost by 1, this alternates between even and odd naturally so that adjacent nodes will always differ. A simple even/odd expression check (step count % 2) on the node gives you the alternating key flag of 0 or 1, which you can filter downstream for selection.

I've attached a sample workspace to demonstrate the approach. There's probably a simpler way to do this, but hopefully this gives you some inspiration and points you in the right direction! 
 

 


arenscott
Supporter
Forum|alt.badge.img+11
  • Supporter
  • March 30, 2026

You can use the NeighbourFinder with Candidates Only as the input. Set the numbers to find to a massive number. Enable list. This will create a list of features with all candidates - then explode the list


bcarpenter1
Contributor
  • Author
  • Contributor
  • March 31, 2026

Hi ​@bcarpenter1,
Thank you for the interesting question. I've done some testing and you might be able to achieve this via a TopologyBuilder and NetworkCostCalculator, but with one important caveat though. Perfect alternation isn't possible on networks that contain any odd-length loops (eg. triangle loop) as you'll always end up with two adjacent nodes sharing the same selection.

For branching/tree networks with clean topology, you can use a NetworkCostCalculator to calculate the shortest path cost from a starting node to every other node in the network with a defined edge cost of 1 for forward & reverse directions. The cost at any node equals the number of edges/steps away from the start so with each step incrementing cost by 1, this alternates between even and odd naturally so that adjacent nodes will always differ. A simple even/odd expression check (step count % 2) on the node gives you the alternating key flag of 0 or 1, which you can filter downstream for selection.

I've attached a sample workspace to demonstrate the approach. There's probably a simpler way to do this, but hopefully this gives you some inspiration and points you in the right direction! 
 

 

Thanks for the response and the sample solution. I managed to get part of the way there using a combination of Topology Builder, PointOnLineOverlayer (for Upstream/Downstream Nodes) and Neighbor Finder to confirm selection but as you indicate it fails once you hit branched loops. I will try and incorporate NetworkCostCalculator into that workspace as well.