Zoom to Selected element in a linked document

Hello,
an example with ZoomAndCenterRectangle() method

import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import *

clr.AddReference('RevitAPIUI')
from Autodesk.Revit.UI import *
from Autodesk.Revit.UI.Selection import *

clr.AddReference('RevitServices')
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument
uidoc = DocumentManager.Instance.CurrentUIApplication.ActiveUIDocument

uiviews = uidoc.GetOpenUIViews()
view = doc.ActiveView
uiview = [x for x in uiviews if x.ViewId == view.Id][0]

TaskDialog.Show("Selection", "Select Link element")
reflnk = uidoc.Selection.PickObject(ObjectType.LinkedElement, "Select Link element")
lnkinst = doc.GetElement(reflnk)
tfLnk = lnkinst.GetTotalTransform()
doclnk =  lnkinst.GetLinkDocument()
elemInLink = doclnk.GetElement(reflnk.LinkedElementId)
bbx =  elemInLink.get_BoundingBox(None)
pt1 = XYZ(bbx.Min.X, bbx.Min.Y, 0)
pt2 = XYZ(bbx.Max.X, bbx.Max.Y, 0)		
uiview.ZoomAndCenterRectangle(tfLnk.OfPoint(pt2), tfLnk.OfPoint(pt1))	

OUT = lnkinst, elemInLink
8 Likes