public static IPoint XYToPoint3(ISceneGraph isceneGraph_0, int int_0, int int_1, ILayer ilayer_0) { IPoint result = null; ISceneViewer activeViewer = isceneGraph_0.ActiveViewer; IHit3DSet hit3DSet; isceneGraph_0.LocateMultiple(activeViewer, int_0, int_1, esriScenePickMode.esriScenePickGeography, true, out hit3DSet); if (hit3DSet != null) { hit3DSet.OnePerLayer(); hit3DSet.Topmost(1.0); IArray hits = hit3DSet.Hits; for (int i = 0; i <= hits.Count - 1; i++) { IHit3D hit3D = hits.get_Element(i) as IHit3D; if (hit3D.Owner == ilayer_0) { result = hit3D.Point; } } } return(result); }