We are troubleshooting an issue impacting community login, and it may be intermittently unavailable. Sorry for any inconvenience.
It is not fixed that it will lie on face, edge or surface but it is sure that it is on the part somewhere.
ProGeometryAtPointFind - you have already mentioned it in another topic.
If it is not laying on any surface or edge, you can parse the model and use ProSurfaceParamEval or ProEdgeParamEval - it will tell you the closest point on the given surface or edge, so you can calculate its distance.