Thanks for your reply but i already get the answer !
For those who wondering : I get the camera orientation this way :
ViewOrientation3D direction = new ViewOrientation3D(eyePosition, upDirection, forwardDirection);
if (view is View3D)
{
direction = CameraParameter.GetOrientation(view3D);
}
else
{
ViewOrientation3D direction2D = new ViewOrientation3D(eyePosition, view.UpDirection, -view.ViewDirection);
}
And i set it this way :
XYZ AnyPointOnActiveView = new XYZ((doc.ActiveView.get_BoundingBox(doc.ActiveView).Max.X - doc.ActiveView.get_BoundingBox(doc.ActiveView).Min.X) / 1000,
(doc.ActiveView.get_BoundingBox(doc.ActiveView).Max.Y - doc.ActiveView.get_BoundingBox(doc.ActiveView).Min.Y) / 1000,
(doc.ActiveView.get_BoundingBox(doc.ActiveView).Max.Z - doc.ActiveView.get_BoundingBox(doc.ActiveView).Min.Z) / 1000);
double dirForX = Math.Abs(Math.Round(direction.ForwardDirection.X, 2));
double dirForY = Math.Abs(Math.Round(direction.ForwardDirection.Y, 2));
double dirForZ = Math.Abs(Math.Round(direction.ForwardDirection.Z, 2));
if (view is View3D)
{
view3D.SetOrientation(direction);
}
else
{
if ((dirForZ >= dirForX) && (dirForZ >= dirForY))
{
XYZ pproj = new XYZ(pp.X + ((AnyPointOnActiveView.Z - pp.Z) / direction.ForwardDirection.Z) * direction.ForwardDirection.X,
pp.Y + ((AnyPointOnActiveView.Z - pp.Z) / direction.ForwardDirection.Z) * direction.ForwardDirection.Y,
AnyPointOnActiveView.Z);
XYZ qproj = new XYZ(qq.X + ((AnyPointOnActiveView.Z - qq.Z) / direction.ForwardDirection.Z) * direction.ForwardDirection.X,
qq.Y + ((AnyPointOnActiveView.Z - qq.Z) / direction.ForwardDirection.Z) * direction.ForwardDirection.Y,
AnyPointOnActiveView.Z);
uiview.ZoomAndCenterRectangle(pproj, qproj);
}
//Same thing with (dirForY > dirForZ) && (dirForY > dirForX) and (dirForX > dirForY) && (dirForX > dirForZ)
}
Thank you Revitalizer for this answer and sanjaymann for AnyPointOnActiveView
For Detail answer please send me a private message !