Spiral staircase side surface selection problem

Hi everyone,

I’m trying to make a cluster that can generate spiral staircase now. But I got some problem with surface selection.

I’ve already generated the top and bottom faces of the staircase, now I want to use these to cut the cylinder face to get the side face of the stairs in order to join them into a closed Brep. However, in my case, now I got two conditions:

  1. When the stairs goes less than 360 degrees, I can select this side surface by area difference or edge number.

  2. When the stairs goes >= 360 degrees, the side surface divided into two parts. In this case, which kind of condition should I use to select those two part of side faces?

And I do want this cluster to take both of the two conditions into consideration, what should I do to achieve this? I would be really appriciate if I could get some suggestions or examples, thanks a lot.spiral stairs.gh (29.2 KB) !

This could be one way.

spiral stairs_re.gh (28.8 KB)


Oh clever solution, I never thought collision could solve that. Thanks a lot!
And I just learned from another post that stream gate may solve my two-condition problem. I’ve never used stream gate before but I’ll have a try and combine your answer together. Thanks again for your help.