Set Grids Vertical Extents

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
3 Likes