As others have noted, if the point being selected is always going to be a point on an element, use PickObject instead of PickPoint.
But maybe you want to let the user pick anywhere and then determine if there is an object at that point. In this case, PickObject is no good because it will not let you pick in empty space. So if this is your goal, use PickPoint, create a little spherical solid at that point (see code below), and then use an ElementIntersectsSolidFilter to see if there is an element that intersects that sphere.
double radius = 0.2;
Arc arc = Arc.Create(
xyz - radius * XYZ.BasisZ,
xyz + radius * XYZ.BasisZ,
xyz + radius * XYZ.BasisX);
Line line = Line.CreateBound(
arc.GetEndPoint(1),
arc.GetEndPoint(0));
CurveLoop halfCircle = new CurveLoop();
halfCircle.Append(arc);
halfCircle.Append(line);
List<CurveLoop> loops = new List<CurveLoop>
{
halfCircle
};
Frame frame = new Frame(xyz, XYZ.BasisX, XYZ.BasisY, XYZ.BasisZ);
Solid sphere = GeometryCreationUtilities.CreateRevolvedGeometry(frame, loops, 0, 2 * Math.PI);