<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Zoom to Objects in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/zoom-to-objects/m-p/2788358#M63648</link>
    <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I try to write some code to zooom to objects but nothing happen.&lt;/P&gt;&lt;P&gt;Here is my Code&lt;/P&gt;&lt;PRE&gt;'--Pass array of Object ID    
Public Function AutoCADZoomByObjectIDs(ByRef objObjectIDs() As ObjectId, _
                                     Optional ByVal dSizeUp As Double = 0) As Boolean


        Dim adblBottomLeft(2) As Double
        Dim adblTopRight(2) As Double
        Dim dblHighestY As Double
        Dim dblHighestX As Double
        Dim dblLowestY As Double
        Dim dblLowestX As Double
        Dim lngUBound As Long

        ' If the variant is not an array then exit the function
        If IsArray(objObjectIDs) = False Then Exit Function
        Dim objEd As Editor = acApp.DocumentManager.MdiActiveDocument.Editor
        Dim objEnt As Entity
        Dim objGExt As Extents3d
        Try
            Using objTrans As Transaction = objEd.Document.TransactionManager.StartTransaction
                objEnt = objTrans.GetObject(objObjectIDs(0), OpenMode.ForRead)
                objGExt = objEnt.GeometricExtents
                If dSizeUp = 0 Then dSizeUp = MathDistanceBetweenPoints(objGExt.MinPoint, objGExt.MaxPoint)
                dblLowestX = objGExt.MinPoint.X - dSizeUp
                dblLowestY = objGExt.MinPoint.Y - dSizeUp

                dblHighestX = objGExt.MaxPoint.X + dSizeUp
                dblHighestY = objGExt.MinPoint.Y + dSizeUp

                For lngCount As Long = objObjectIDs.GetLowerBound(0) + 1 To objObjectIDs.GetUpperBound(0)
                    objEnt = objTrans.GetObject(objObjectIDs(lngCount), OpenMode.ForRead)
                    objGExt = objEnt.GeometricExtents
                    If objGExt.MinPoint.X - dSizeUp &amp;lt; dblLowestX Then dblLowestX = objGExt.MinPoint.X - dSizeUp
                    If objGExt.MinPoint.Y - dSizeUp &amp;lt; dblLowestY Then dblLowestY = objGExt.MinPoint.Y - dSizeUp
                    If objGExt.MaxPoint.X + dSizeUp &amp;gt; dblHighestX Then dblHighestX = objGExt.MaxPoint.X + dSizeUp
                    If objGExt.MaxPoint.Y + dSizeUp &amp;gt; dblHighestY Then dblHighestY = objGExt.MaxPoint.Y + dSizeUp
                Next
                'Zoom to show this entire rectangle
                adblBottomLeft(0) = dblHighestX
                adblBottomLeft(1) = dblLowestY
                adblTopRight(0) = dblLowestX
                adblTopRight(1) = dblHighestY

'--g_objDrawing defined AcadDocument, it is the current open drawing. I have tested it is correct
 g_objDrawing.Application.ZoomWindow(adblBottomLeft, adblTopRight)

                objTrans.Commit()
                Return True
            End Using
        Catch ex As Exception
            Debug.Assert(False)
        Finally
            objEnt = Nothing
            objGExt = Nothing
            objEd = Nothing
        End Try&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There is no exception, just nothing happen.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any ideas?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks very much&lt;/P&gt;</description>
    <pubDate>Tue, 05 Oct 2010 15:56:34 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2010-10-05T15:56:34Z</dc:date>
    <item>
      <title>Zoom to Objects</title>
      <link>https://forums.autodesk.com/t5/net-forum/zoom-to-objects/m-p/2788358#M63648</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I try to write some code to zooom to objects but nothing happen.&lt;/P&gt;&lt;P&gt;Here is my Code&lt;/P&gt;&lt;PRE&gt;'--Pass array of Object ID    
Public Function AutoCADZoomByObjectIDs(ByRef objObjectIDs() As ObjectId, _
                                     Optional ByVal dSizeUp As Double = 0) As Boolean


        Dim adblBottomLeft(2) As Double
        Dim adblTopRight(2) As Double
        Dim dblHighestY As Double
        Dim dblHighestX As Double
        Dim dblLowestY As Double
        Dim dblLowestX As Double
        Dim lngUBound As Long

        ' If the variant is not an array then exit the function
        If IsArray(objObjectIDs) = False Then Exit Function
        Dim objEd As Editor = acApp.DocumentManager.MdiActiveDocument.Editor
        Dim objEnt As Entity
        Dim objGExt As Extents3d
        Try
            Using objTrans As Transaction = objEd.Document.TransactionManager.StartTransaction
                objEnt = objTrans.GetObject(objObjectIDs(0), OpenMode.ForRead)
                objGExt = objEnt.GeometricExtents
                If dSizeUp = 0 Then dSizeUp = MathDistanceBetweenPoints(objGExt.MinPoint, objGExt.MaxPoint)
                dblLowestX = objGExt.MinPoint.X - dSizeUp
                dblLowestY = objGExt.MinPoint.Y - dSizeUp

                dblHighestX = objGExt.MaxPoint.X + dSizeUp
                dblHighestY = objGExt.MinPoint.Y + dSizeUp

                For lngCount As Long = objObjectIDs.GetLowerBound(0) + 1 To objObjectIDs.GetUpperBound(0)
                    objEnt = objTrans.GetObject(objObjectIDs(lngCount), OpenMode.ForRead)
                    objGExt = objEnt.GeometricExtents
                    If objGExt.MinPoint.X - dSizeUp &amp;lt; dblLowestX Then dblLowestX = objGExt.MinPoint.X - dSizeUp
                    If objGExt.MinPoint.Y - dSizeUp &amp;lt; dblLowestY Then dblLowestY = objGExt.MinPoint.Y - dSizeUp
                    If objGExt.MaxPoint.X + dSizeUp &amp;gt; dblHighestX Then dblHighestX = objGExt.MaxPoint.X + dSizeUp
                    If objGExt.MaxPoint.Y + dSizeUp &amp;gt; dblHighestY Then dblHighestY = objGExt.MaxPoint.Y + dSizeUp
                Next
                'Zoom to show this entire rectangle
                adblBottomLeft(0) = dblHighestX
                adblBottomLeft(1) = dblLowestY
                adblTopRight(0) = dblLowestX
                adblTopRight(1) = dblHighestY

'--g_objDrawing defined AcadDocument, it is the current open drawing. I have tested it is correct
 g_objDrawing.Application.ZoomWindow(adblBottomLeft, adblTopRight)

                objTrans.Commit()
                Return True
            End Using
        Catch ex As Exception
            Debug.Assert(False)
        Finally
            objEnt = Nothing
            objGExt = Nothing
            objEd = Nothing
        End Try&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;There is no exception, just nothing happen.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any ideas?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks very much&lt;/P&gt;</description>
      <pubDate>Tue, 05 Oct 2010 15:56:34 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/zoom-to-objects/m-p/2788358#M63648</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2010-10-05T15:56:34Z</dc:date>
    </item>
    <item>
      <title>Re: Zoom to Objects</title>
      <link>https://forums.autodesk.com/t5/net-forum/zoom-to-objects/m-p/2788482#M63649</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;FONT size="1" face="verdana,geneva"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;FONT size="1" face="verdana,geneva"&gt;[&lt;SPAN style="color: #2b91af;"&gt;CommandMethod&lt;/SPAN&gt;(&lt;SPAN style="color: #a31515;"&gt;"ZoomToObjects"&lt;/SPAN&gt;)]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: blue;"&gt;public&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="color: blue;"&gt;void&lt;/SPAN&gt;&amp;nbsp;ZoomToObjects()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #2b91af;"&gt;Document&lt;/SPAN&gt;&amp;nbsp;doc&amp;nbsp;=&amp;nbsp;&lt;SPAN style="color: #2b91af;"&gt;Application&lt;/SPAN&gt;.DocumentManager.MdiActiveDocument;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: blue;"&gt;using&lt;/SPAN&gt;&amp;nbsp;(&lt;SPAN style="color: #2b91af;"&gt;Transaction&lt;/SPAN&gt;&amp;nbsp;trx&amp;nbsp;=&amp;nbsp;doc.Database.TransactionManager.StartTransaction())&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #2b91af;"&gt;PromptEntityOptions&lt;/SPAN&gt;&amp;nbsp;peo&amp;nbsp;=&amp;nbsp;&lt;SPAN style="color: blue;"&gt;new&lt;/SPAN&gt;&amp;nbsp;&lt;SPAN style="color: #2b91af;"&gt;PromptEntityOptions&lt;/SPAN&gt;(&lt;SPAN style="color: #a31515;"&gt;"\nSelect&amp;nbsp;Object:&amp;nbsp;"&lt;/SPAN&gt;);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #2b91af;"&gt;PromptEntityResult&lt;/SPAN&gt;&amp;nbsp;per&amp;nbsp;=&amp;nbsp;doc.Editor.GetEntity(peo);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #2b91af;"&gt;Entity&lt;/SPAN&gt;&amp;nbsp;ent&amp;nbsp;=&amp;nbsp;(&lt;SPAN style="color: #2b91af;"&gt;Entity&lt;/SPAN&gt;)per.ObjectId.GetObject(&lt;SPAN style="color: #2b91af;"&gt;OpenMode&lt;/SPAN&gt;.ForRead);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: blue;"&gt;int&lt;/SPAN&gt;&amp;nbsp;CvId&amp;nbsp;=&amp;nbsp;&lt;SPAN style="color: #2b91af;"&gt;Convert&lt;/SPAN&gt;.ToInt32((&lt;SPAN style="color: #2b91af;"&gt;Application&lt;/SPAN&gt;.GetSystemVariable(&lt;SPAN style="color: #a31515;"&gt;"CVPORT"&lt;/SPAN&gt;)));&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: blue;"&gt;using&lt;/SPAN&gt;&amp;nbsp;(Autodesk.AutoCAD.GraphicsSystem.&lt;SPAN style="color: #2b91af;"&gt;Manager&lt;/SPAN&gt;&amp;nbsp;gm&amp;nbsp;=&amp;nbsp;doc.GraphicsManager)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: blue;"&gt;using&lt;/SPAN&gt;&amp;nbsp;(Autodesk.AutoCAD.GraphicsSystem.&lt;SPAN style="color: #2b91af;"&gt;View&lt;/SPAN&gt;&amp;nbsp;vw&amp;nbsp;=&amp;nbsp;gm.GetGsView(CvId,&amp;nbsp;&lt;SPAN style="color: blue;"&gt;true&lt;/SPAN&gt;))&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;SPAN style="color: #2b91af;"&gt;Extents3d&lt;/SPAN&gt;&amp;nbsp;ext&amp;nbsp;=&amp;nbsp;ent.GeometricExtents;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;vw.ZoomExtents(ext.MinPoint,&amp;nbsp;ext.MaxPoint);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;gm.SetViewportFromView(CvId,&amp;nbsp;vw,&amp;nbsp;&lt;SPAN style="color: blue;"&gt;true&lt;/SPAN&gt;,&amp;nbsp;&lt;SPAN style="color: blue;"&gt;true&lt;/SPAN&gt;,&amp;nbsp;&lt;SPAN style="color: blue;"&gt;false&lt;/SPAN&gt;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;trx.Commit();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/FONT&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;*************************EDITED********************************&lt;/P&gt;&lt;P&gt;I do think this will work in paper space I check &amp;amp; if not I will post a better solution later&lt;/P&gt;</description>
      <pubDate>Tue, 05 Oct 2010 17:09:11 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/zoom-to-objects/m-p/2788482#M63649</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2010-10-05T17:09:11Z</dc:date>
    </item>
    <item>
      <title>Re: Zoom to Objects</title>
      <link>https://forums.autodesk.com/t5/net-forum/zoom-to-objects/m-p/2788650#M63651</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here's one inspired by the sample in the &lt;A target="_self" rel="nofollow" href="http://docs.autodesk.com/ACD/2010/ENU/AutoCAD%20.NET%20Developer%27s%20Guide/index.html"&gt;AutoCAD .NET Developer's Guide&lt;/A&gt; &amp;gt; &lt;A target="_blank" rel="nofollow" href="http://docs.autodesk.com/ACD/2010/ENU/AutoCAD%20.NET%20Developer%27s%20Guide/files/WS73099cc142f48755-5c83e7b1120018de8c0-246d.htm"&gt;Control the AutoCAD Environment&lt;/A&gt;&amp;nbsp;&amp;gt;&amp;nbsp;&lt;A target="_blank" rel="nofollow" href="http://docs.autodesk.com/ACD/2010/ENU/AutoCAD%20.NET%20Developer%27s%20Guide/files/WS1a9193826455f5ff2566ffd511ff6f8c7ca-4386.htm"&gt;Control the Drawing Windows&lt;/A&gt;&amp;nbsp;&amp;gt;&amp;nbsp;&lt;A target="_blank" rel="nofollow" href="http://docs.autodesk.com/ACD/2010/ENU/AutoCAD%20.NET%20Developer%27s%20Guide/files/WS1a9193826455f5ff2566ffd511ff6f8c7ca-4369.htm"&gt;Zoom and Pan the Current View&lt;/A&gt;&amp;nbsp;&amp;gt; &lt;SPAN&gt;Manipulate the Current View&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;It works whatever the current view.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.Runtime;

namespace ZoomObjectSample
{
    public class Zoom
    {
        [CommandMethod("ZO")]
        public void ZO()
        {
            Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
            PromptSelectionResult psr = ed.GetSelection();
            if (psr.Status != PromptStatus.OK)
                return;
            ObjectIdCollection idCol = new ObjectIdCollection(psr.Value.GetObjectIds());
            ZoomObjects(idCol);
        }

        private void ZoomObjects(ObjectIdCollection idCol)
        {
            Document doc = Application.DocumentManager.MdiActiveDocument;
            Database db = doc.Database;
            Editor ed = doc.Editor;
            using (Transaction tr = db.TransactionManager.StartTransaction())
            using (ViewTableRecord view = ed.GetCurrentView())
            {
                Matrix3d WCS2DCS = Matrix3d.PlaneToWorld(view.ViewDirection);
                WCS2DCS = Matrix3d.Displacement(view.Target - Point3d.Origin) * WCS2DCS;
                WCS2DCS = Matrix3d.Rotation(-view.ViewTwist, view.ViewDirection, view.Target) * WCS2DCS;
                WCS2DCS = WCS2DCS.Inverse();
                Entity ent = (Entity)tr.GetObject(idCol[0], OpenMode.ForRead);
                Extents3d ext = ent.GeometricExtents;
                ext.TransformBy(WCS2DCS);
                for (int i = 1; i &amp;lt; idCol.Count; i++)
                {
                    ent = (Entity)tr.GetObject(idCol[i], OpenMode.ForRead);
                    Extents3d tmp = ent.GeometricExtents;
                    tmp.TransformBy(WCS2DCS);
                    ext.AddExtents(tmp);
                }
                double ratio = view.Width / view.Height;
                double width = ext.MaxPoint.X - ext.MinPoint.X;
                double height = ext.MaxPoint.Y - ext.MinPoint.Y;
                if (width &amp;gt; (height * ratio))
                    height = width / ratio;
                Point2d center =
                    new Point2d((ext.MaxPoint.X + ext.MinPoint.X) / 2.0, (ext.MaxPoint.Y + ext.MinPoint.Y) / 2.0);
                view.Height = height;
                view.Width = width;
                view.CenterPoint = center;
                ed.SetCurrentView(view);
                tr.Commit();
            }
        }
    }
}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 05 Oct 2010 19:07:08 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/zoom-to-objects/m-p/2788650#M63651</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2010-10-05T19:07:08Z</dc:date>
    </item>
    <item>
      <title>Re: Zoom to Objects</title>
      <link>https://forums.autodesk.com/t5/net-forum/zoom-to-objects/m-p/2788894#M63652</link>
      <description>&lt;P&gt;Give this a try for multiple objects&lt;/P&gt;&lt;PRE&gt; &lt;FONT face="Consolas" color="#0000ff" size="2"&gt;&lt;FONT face="Consolas" color="#0000ff" size="2"&gt;&lt;FONT face="Consolas" color="#0000ff" size="2"&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size="1"&gt;using System.Linq;&lt;/FONT&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;FONT size="1"&gt;   public static void ZoomObjects()
        {
            Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;

            Editor ed = doc.Editor;

            Transaction tr = doc.TransactionManager.StartTransaction();

            using (tr)
            {
                try
                {

                    PromptSelectionResult sres = ed.GetSelection();

                    if (sres.Status != PromptStatus.OK) return;

                    ObjectId[] ids = sres.Value.GetObjectIds();

                    if (ids.Length == 0) return;

                   int tile = Convert.ToInt32(Application.GetSystemVariable("CVPORT"));
                    
                    var ents = from id in ids
                               where id != null
                               select tr.GetObject(id, OpenMode.ForRead);

                    var minx = (from n in ents
                                 where n != null
                                 select ((Entity)n).GeometricExtents.MinPoint[0]).Min();

                    var maxx = (from n in ents
                                where n != null
                                select ((Entity)n).GeometricExtents.MinPoint[0]).Max();

                    var miny = (from n in ents
                                where n != null
                                select ((Entity)n).GeometricExtents.MinPoint[1]).Min();
                    var maxy = (from n in ents
                                where n != null
                                select ((Entity)n).GeometricExtents.MinPoint[1]).Max();


                    Autodesk.AutoCAD.GraphicsSystem.Manager graph = doc.GraphicsManager;

                    using (graph)
                    {
                        Autodesk.AutoCAD.GraphicsSystem.View view = graph.GetGsView(tile, true);

                    using (view)
                    {                        
                        view.ZoomExtents(new Point3d(minx,miny,0),new Point3d(maxx,maxy,0));

                        view.Zoom(0.8);//&amp;lt;--optional 

                        graph.SetViewportFromView(tile, view, true, true, false);
                       
                    }                   
                }
                  tr.Commit();
                }
                catch (Autodesk.AutoCAD.Runtime.Exception ex)
                {
                    ed.WriteMessage("Error: {0}\nTrace: {1}",ex.Message,ex.StackTrace);
                }
            }
        }&lt;/FONT&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#800000"&gt;~'J'~&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 05 Oct 2010 22:00:05 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/zoom-to-objects/m-p/2788894#M63652</guid>
      <dc:creator>Hallex</dc:creator>
      <dc:date>2010-10-05T22:00:05Z</dc:date>
    </item>
    <item>
      <title>Re: Zoom to Objects</title>
      <link>https://forums.autodesk.com/t5/net-forum/zoom-to-objects/m-p/11197539#M63653</link>
      <description>&lt;P&gt;Just in case someone else has the same issue...&lt;/P&gt;&lt;P&gt;I tried Hallex's solution which is marked as the accepted solution. It did not work. Complete failure.&lt;/P&gt;&lt;P&gt;I tried Gilles's. It worked just fine. If it was me i would mark Gilles's solution as the Accepted one.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Yet another fine piece of code by Gilles.&lt;/P&gt;</description>
      <pubDate>Fri, 27 May 2022 12:29:16 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/zoom-to-objects/m-p/11197539#M63653</guid>
      <dc:creator>LS67</dc:creator>
      <dc:date>2022-05-27T12:29:16Z</dc:date>
    </item>
  </channel>
</rss>

