Well, a camera is a location plus some information about where it's looking. Maybe I misunderstood your question, but my thinking is this…
If you can work out where you want to place the camera relative to the geometry, you might get fairly close to what you're after. You can probably do some cartesian calculations to place the camera location relative to the geometry envelope's centroid (relative x/y units for heading, and relative elevation for pitch). Use that to create the camera with a location and set the heading/pitch/roll all set to 0. Pass that camera in as I suggested to create the viewpoint with a camera and geometry, and then read the camera property back once the scene view has updated.
Bear in mind there are SetViewpoint methods that animate and that don't. Make sure you read the camera once the animation is finished, or use a SetViewpoint method that doesn't animate.
Does that help?
If you need the geometry to fill the view, that might be a bit trickier.