var intersector = new ReferenceIntersector(new[] {toposurface.Id}, FindReferenceTarget.All, view);
var intersection = intersector.FindNearest(point, XYZ.BasisZ) ?? intersector.FindNearest(point, -1*XYZ.BasisZ);
return intersection?.GetReference().GlobalPoint;