I am thinking that I have to build a surface and divide the surface and project out polylines from the vectors, but I was wondering if anyone had any idea how to detect a surface? so when it collides with another surface it will create a new point (vector).
You can use the Intersection of BRep component to trigger an event. The output of the Brep/Brep is null if there is no intersection and a line if there is. Therefore if the line has any length then there must be a collision. This true or false value can be plugged into a cull pattern component to either allow the next event or not.