Hi,
I thought there is a topic like this on the forum, but I could’t find it.
There is a Dynamo node to create a grid by line, but I want to make it in a python script and I am struggling with.
In the Revit API there is creating method:
Autodesk.Revit.DB.Grid Create(Autodesk.Revit.DB.Document document, Autodesk.Revit.DB.Line line)
I’ve tried this code but it doesn’t do the job
import clr
import math
clr.AddReference('RevitNodes')
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)
clr.AddReference('RevitAPI')
import Autodesk
from Autodesk.Revit.DB import *
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *
import System
clr.AddReference('RevitServices')
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
coord = IN[0]
gridOffset = IN[1]
xlist = coord[0]
ylist = coord[1]
nx = len(xlist)
ny = len(ylist)
xlines = []
ylines =[]
doc = DocumentManager.Instance.CurrentDBDocument
TransactionManager.Instance.EnsureInTransaction(doc)
for x in xlist:
pointA = Point.ByCoordinates(x,ylist[0]-gridOffset,0)
pointB = Point.ByCoordinates(x,ylist[ny-1]+gridOffset,0)
line = Line.ByStartPointEndPoint(pointB, pointA)
gridX = Autodesk.Revit.DB.Grid Create(doc, line)
xlines.append(gridX)
for y in ylist:
pointA = Point.ByCoordinates(xlist[0]-gridOffset,y,0)
pointB = Point.ByCoordinates(xlist[nx-1]+gridOffset,y,0)
line = Line.ByStartPointEndPoint(pointA, pointB)
ylines.append(line)
TransactionManager.Instance.TransactionTaskDone()
#Assign your output to the OUT variable.
OUT = xlines, ylines
please help me with this API which seams I’m never going to understand