Get and Set View Range - Problems with some settings

I got it wortking with a list of views, but it does not work with lists of view ranges :confused:

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

views = UnwrapElement(IN[0])
tof = IN[1]
bof = IN[2]
cof = IN[3]
dof = IN[4]
ltop = UnwrapElement(IN[5])
lcut = UnwrapElement(IN[6])
lbot = UnwrapElement(IN[7])
ldep = UnwrapElement(IN[8])
count = 0

if not hasattr(views, '__iter__'):
	views = [views]

TransactionManager.Instance.EnsureInTransaction(doc)

for view in views :

	viewrange = view.GetViewRange()
	asslvl = view.GenLevel

	if ltop is None:
		viewrange.SetLevelId(PlanViewPlane.TopClipPlane,viewrange.Unlimited)
	else :
		viewrange.SetLevelId(PlanViewPlane.TopClipPlane,ltop.Id)
	
	viewrange.SetOffset(PlanViewPlane.TopClipPlane,tof)


	viewrange.SetLevelId(PlanViewPlane.CutPlane,lcut.Id)
	viewrange.SetOffset(PlanViewPlane.CutPlane,cof)


	viewrange.SetLevelId(PlanViewPlane.BottomClipPlane,lbot.Id)
	viewrange.SetOffset(PlanViewPlane.BottomClipPlane,bof)


	if ldep is None:
		viewrange.SetLevelId(PlanViewPlane.ViewDepthPlane,viewrange.Unlimited)
	else :
		viewrange.SetLevelId(PlanViewPlane.ViewDepthPlane,ldep.Id)

	viewrange.SetOffset(PlanViewPlane.ViewDepthPlane,dof)

	view.SetViewRange(viewrange)

TransactionManager.Instance.TransactionTaskDone()

OUT = views