Get and Set View Range - Problems with some settings

Hello @gerhard.p

for set an unlimited range replace “asslvl.Id” by “viewrange.Unlimited”

for set a view range in view with up direction (like cellingPlan) you need to set the level for BottomClipPlane and CutPlane (with same values for levelId and Offset)

import clr
clr.AddReference('RevitAPI')
from Autodesk.Revit.DB import*
clr.AddReference('RevitServices')
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument

v = UnwrapElement(IN[0])
tof = IN[1]
bof = IN[2]
cof = IN[3]
dof = IN[4]
count = 0

TransactionManager.Instance.EnsureInTransaction(doc)

#getting the viewrange of the view
viewrange = v.GetViewRange()
asslvl = v.GenLevel

#Setting top clip plane of the viewrange
viewrange.SetLevelId(PlanViewPlane.TopClipPlane,viewrange.Unlimited)
viewrange.SetOffset(PlanViewPlane.TopClipPlane,tof)

#Setting bottom clip plane of the viewrange
viewrange.SetLevelId(PlanViewPlane.BottomClipPlane,asslvl.Id)
viewrange.SetOffset(PlanViewPlane.BottomClipPlane,bof)

#	setting offset of cut plane
viewrange.SetLevelId(PlanViewPlane.CutPlane,asslvl.Id)
viewrange.SetOffset(PlanViewPlane.CutPlane,cof)

#Setting view depth plane of the viewrange
viewrange.SetLevelId(PlanViewPlane.ViewDepthPlane,viewrange.Unlimited)
viewrange.SetOffset(PlanViewPlane.ViewDepthPlane,dof)

#Applying the viewrange to the view
v.SetViewRange(viewrange)

TransactionManager.Instance.TransactionTaskDone()

OUT = v
2 Likes