public class ZoomDynamic
{
public static void ZoomWindow(Point3d p1, Point3d p2)
{
dynamic acad = Autodesk.AutoCAD.ApplicationServices.Application.AcadApplication;
acad.ZoomWindow(p1.ToArray(), p2.ToArray());
}
static public void ZoomObject(ObjectId id, double zoomFactor)
{
Database db = HostApplicationServices.WorkingDatabase;
Extents3d ext;
using (Transaction tr = db.TransactionManager.StartTransaction())
{
Entity en = (Entity)tr.GetObject(id, OpenMode.ForRead);
ext = en.GeometricExtents;
}
Vector3d v = new Vector3d((ext.MinPoint - ext.MaxPoint).ToArray());
ZoomWindow(ext.MinPoint - v * 100.0 / zoomFactor, ext.MaxPoint + v * 100.0 / zoomFactor);
}
}