# Rotate crop box of multiple views

**URL:** <https://forum.dynamobim.com/t/rotate-crop-box-of-multiple-views/38815>\
**Category:** Revit\
**Created:** [July 29, 2019, 5:27am UTC](https://forum.dynamobim.com/t/rotate-crop-box-of-multiple-views/38815 "2019-07-29T05:27:30Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![Paul\_Wintour](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.dynamobim.com/paul_wintour/32/9381_2.png) [@Paul\_Wintour](https://forum.dynamobim.com/u/Paul_Wintour)\
**Post date:** [August 2, 2019, 5:13am UTC](https://forum.dynamobim.com/t/rotate-crop-box-of-multiple-views/38815/5 "2019-08-02T05:13:13Z")

</div>

Thanks @Mark.Ackerley. Yep that was pretty much it. Just had to append the output…

```
import clr

clr.AddReference('RevitServices')
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument

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

#rotations to be in radians
rot = UnwrapElement(IN[0])
viewports = UnwrapElement(IN[1])
views = []

def GetViewCropBoxElement(view):
	doc = DocumentManager.Instance.CurrentDBDocument
	TransactionManager.Instance.ForceCloseTransaction()
	tGroup = TransactionGroup(doc, "Temp to find crop box element")
	tGroup.Start()
	trans1 = Transaction(doc, "Temp to find crop box element")
	trans1.Start()
	view.CropBoxVisible = False
	trans1.Commit()
	
	shownElems = FilteredElementCollector(doc, view.Id).ToElementIds()
	
	trans1.Start()
	view.CropBoxVisible = True
	trans1.Commit()
	
	cropBoxElement = FilteredElementCollector(doc, view.Id).Excluding(shownElems).FirstElement()
	tGroup.RollBack()
	return cropBoxElement
	
def RotateCropBox(view, cropBox, angle):
    doc = DocumentManager.Instance.CurrentDBDocument
    bbox = view.CropBox
    center = 0.5 * (bbox.Max + bbox.Min)
    axis = Line.CreateBound(center, center + XYZ.BasisZ)
    TransactionManager.Instance.EnsureInTransaction(doc)
    ElementTransformUtils.RotateElement(doc, cropBox.Id, axis, angle)
    TransactionManager.Instance.TransactionTaskDone()
    return view
    
for v, r in zip(viewports, rot):
	crpbx = GetViewCropBoxElement(v)
	crpbxRt = RotateCropBox(v, crpbx, r)
	views.append(crpbxRt)

OUT = views
```

---

_[View the full topic](https://forum.dynamobim.com/t/rotate-crop-box-of-multiple-views/38815)._
