.NET
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

save and restore current document view

3 REPLIES 3
SOLVED
Reply
Message 1 of 4
E3DE
496 Views, 3 Replies

save and restore current document view

Hi,

I need to save the current view/zoom of the current document and then restore it.

How I can do this?

Thanks

3 REPLIES 3
Message 2 of 4
fieldguy
in reply to: E3DE

Message 3 of 4
_gile
in reply to: E3DE

Hi,

 

It seems to me the simplest way is to create a named view (ViewTableRecord).

        static void SaveCurrentView(Document doc, string viewName)
        {
            var db = doc.Database;
            var ed = doc.Editor;
            using (var tr = new OpenCloseTransaction())
            using (var currentView = ed.GetCurrentView())
            {
                var viewTable = (ViewTable)tr.GetObject(db.ViewTableId, OpenMode.ForRead);
                ViewTableRecord view;
                if (viewTable.Has(viewName))
                {
                    view = (ViewTableRecord)tr.GetObject(viewTable[viewName], OpenMode.ForWrite);
                }
                else
                {
                    viewTable.UpgradeOpen();
                    view = new ViewTableRecord();
                    viewTable.Add(view);
                    tr.AddNewlyCreatedDBObject(view, true);
                }
                view.CopyFrom(currentView);
                view.Name = viewName;
                tr.Commit();
            }
        }

        static void RestoreView(Document doc, string viewName)
        {
            var db = doc.Database;
            var ed = doc.Editor;
            using (var tr = new OpenCloseTransaction())
            {
                var viewTable = (ViewTable)tr.GetObject(db.ViewTableId, OpenMode.ForRead);
                ViewTableRecord view;
                if (viewTable.Has(viewName))
                {
                    view = (ViewTableRecord)tr.GetObject(viewTable[viewName], OpenMode.ForWrite);
                    ed.SetCurrentView(view);
                }
                tr.Commit();
            }
        }


Gilles Chanteau
Programmation AutoCAD LISP/.NET
GileCAD
GitHub

Message 4 of 4
E3DE
in reply to: E3DE

Thank you all

Andrea

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Forma Design Contest


AutoCAD Beta