"TypeError: expected Line, got list" in Python. Why!

Yup, sorry… You need to make sure you create a reference array to store the references. Here is the full working code…

import clr

clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc =  DocumentManager.Instance.CurrentDBDocument
app = DocumentManager.Instance.CurrentUIApplication.Application

clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)
clr.ImportExtensions(Revit.GeometryConversion)

clr.AddReference("RevitAPI")
from Autodesk.Revit.DB import *

def tolist(obj1):
	if hasattr(obj1,"__iter__"): return obj1
	else: return [obj1]

view = tolist(UnwrapElement(IN[0]))[0]
dimLines = tolist(UnwrapElement(IN[1]))
linesToDim = tolist(UnwrapElement(IN[2]))

refArrays = []

outList = []

for lineList in linesToDim:
	rArr = ReferenceArray()
	for l in lineList:
		rArr.Append(Reference(l))
	refArrays.append(rArr)

TransactionManager.Instance.EnsureInTransaction(doc)
for l,r in zip(dimLines,refArrays):
	try:
		outList.append(doc.Create.NewDimension(view,l.GeometryCurve,r))
	except Exception,e:
		outList.append(e.message)
	
TransactionManager.Instance.TransactionTaskDone()

OUT = outList

This should work for you. Easier now I have a pc with a monitor! :smile:

3 Likes