Automate placing Pipe Accessory (Valves)

You might want to flatten the list after “List.Clean” and then Chop it to have one point in each list.

Please read the solution of this thread. It explains how MEPFitting.Bypoint works.

On the side note, are you still interested in find the the intersection point by sphere? But I’m worried that what if it finds more than one intersection point or cross contamination(nearby mechanical equipment also has intersection with a pipe,which is not associated with that)? so that’s why I suggested using Bounding Box and then find the unique elements.
Yes, you may change the size of BoundingBox.