Translated Points on a sloped reference

I am producing a BIM for about 4 miles of water line replacement. As I’ve learned, once owners and contractors see the value, they keep asking for more which is awesome. Dynamo has become the only way I can do BIM, so thanks. The client has now asked me to model the Impact Zone of sewer lines. If any works occurs within the zone they need to develop a different approach, so I can model it and assess if there are places they can get work outside the zone. Per the attached, there is a standard buffer around a sewer line (2ft above, 6ft either side) , and then a buffer below that expands out to an undefined limit.

So the attached script finds the pipes, gets its info, then starts building the impact zone. The standard buffer one works well, and if the pipe is flat, the expanding buffer works well. But alas sewer lines aren’t usually flat. Once there is some slope and the expanding buffer input is greater than 6, the polycurve isn’t created due to the points being on a different plane. If the pipe is slightly sloped, you can get some of the expanding buffer to be created, probably before some rounding can no longer hold things true enough.

Is there another way to offset the points to account for the slope of the pipe? Do I have to do the math to account for the slope and add that to the x translation? I guess I thought the CS respected the slope, but it makes sense that +z is straight up.

DR-SEWER-IZ.dwg (2.9 MB)
2024-04-22_13h05_40
C3D_SewerImpactZone.dyn (141.2 KB)