How, from a single pick, would you most efficiently get the Face in the Brep which you clicked on? The best I could come up with was below, knowing that there is going to be a way which is elegant using Rhinocommon. Conditions are just that I want to allow picking of a surface or polysurface, and then in the condition of polysurfaces to get the Face Index at the pick location.
#Python def DoAThing ( ): get_object_ex = rs.GetObjectEx( "Pick Surface or Polysurface" , rs.filter.polysurface | rs.filter.surface, preselect=False, select=False ) point = rs.AddPoint( get_object_ex  ) #Use the point in closest? objref =rs.coercegeometry( get_object_ex  ) pointref = rs.coerce3dpoint ( get_object_ex  ) distances =  for srf in objref.Surfaces: rc, parameter_u, parameter_v = srf.ClosestPoint( pointref ) rc, point3d_closest_point, bool = srf.Evaluate( parameter_u, parameter_v, 0 ) distance_to_pt = pointref.DistanceTo( point3d_closest_point ) distances.append( distance_to_pt ) string_distances = [ str ( distance ) for distance in distances ] #Let the faff begin maximum = max( distances ) minimum = str ( min( distances ) ) minimum_index = string_distances.index ( minimum ) print "Picked point is on BrepFace", minimum_index DoAThing ()