#Copyright(c) 2021, Hồ Văn Chương
# @chuongmep, https://chuongmep.com/
import clr
import sys
sys.path.append('C:\Program Files (x86)\IronPython 2.7\Lib')
import os
import math
clr.AddReference('acmgd')
clr.AddReference('acdbmgd')
clr.AddReference('accoremgd')
# Import references from AutoCAD
from Autodesk.AutoCAD.Runtime import *
from Autodesk.AutoCAD.ApplicationServices import *
from Autodesk.AutoCAD.EditorInput import *
from Autodesk.AutoCAD.DatabaseServices import *
from Autodesk.AutoCAD.Geometry import *
doc = Application.DocumentManager.MdiActiveDocument
ed = doc.Editor
db = doc.Database
# Write Code Below
def ZoomToObj(ed,min,max):
	min2d = Point2d(min.X, min.Y)
	max2d = Point2d(max.X, max.Y)
	view = ViewTableRecord()
	view.CenterPoint = min2d + ((max2d - min2d) / 2.0)
	view.Height = max2d.Y - min2d.Y;
	view.Width = max2d.X - min2d.X;
	ed.SetCurrentView(view);
peo = PromptEntityOptions("Select An Entity:")
result = ed.GetEntity(peo)
if(result.Status==PromptStatus.OK):
	with doc.LockDocument():
		with doc.Database as db:
			with db.TransactionManager.StartTransaction() as t:
				ent = t.GetObject(result.ObjectId,OpenMode.ForRead)
				ext = ent.GeometricExtents;
				# Do action here
				ZoomToObj(ed, ext.MinPoint, ext.MaxPoint);
			
				t.Commit()