this will do it:
IN[0] = list of grids
IN[1] = list of bottom extent Z values
IN[2] = list or top extent Z values
here’s the code:
#Copyright (c) mostafa el ayoubi
#Node-mode www.data-shapes.net 2016 elayoub.mostafa@gmail.com
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
UIunit = Document.GetUnits(doc).GetFormatOptions(UnitType.UT_Length).DisplayUnits
def convunit(x):
return UnitUtils.ConvertToInternalUnits(x,UIunit)
def tolist(input):
if isinstance(input,list):
return UnwrapElement(input)
else:
return [UnwrapElement(input)]
grids = tolist(IN[0])
TransactionManager.Instance.EnsureInTransaction(doc)
for g,bottom,top in zip(grids,IN[1],IN[2]):
g.SetVerticalExtents(convunit(bottom),convunit(top))
TransactionManager.Instance.TransactionTaskDone()
OUT = grids