Create Elevation View Mod2 Error 'Curve' object is not subscriptable


#Copyright(c) 2016 www.Learndynamo.com
#Please contact at jeremy@learndynamo.com

import clr
clr.AddReference(‘RevitAPI’)
clr.AddReference(“RevitServices”)
clr.AddReference(“RevitNodes”)
import RevitServices
import Revit
import Autodesk
from Autodesk.Revit.DB import *
from math import *

clr.ImportExtensions(Revit.GeometryConversion)

from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument

toggle = IN[0]
points = UnwrapElement(IN[1])
modelPoints = UnwrapElement(IN[2])
cropCurves = UnwrapElement(IN[3])
viewType = UnwrapElement(IN[4])

lst =

#Get Family View Type
vft = 0
collector = FilteredElementCollector(doc).OfClass(ViewFamilyType).ToElements()

#eleViews =
for i in collector:
if i.ViewFamily == ViewFamily.Elevation:
vft = i.Id
break

if toggle == True:

TransactionManager.Instance.EnsureInTransaction(doc)

for ind, point in enumerate(points):

	#Retrieve the mid point of model lines and get X,Y.		
	modelMP = modelPoints[ind].ToXyz()
	modelMPX = modelMP.X
	modelMPY = modelMP.Y
	
	#Retrieve individual lines of crop window.		
	cropLines = cropCurves[ind]
	l1 = cropLines[0].ToRevitType()
	l2 = cropLines[1].ToRevitType()
	l3 = cropLines[2].ToRevitType()
	l4 = cropLines[3].ToRevitType()
				
	# Create a line in the z-Axis for elevation marker to rotate around.			
	elevationPT = point.ToXyz()
	elptRotate = XYZ(elevationPT.X, elevationPT.Y, elevationPT.Z+100)
	ln = Line.CreateBound(elevationPT, elptRotate)

	#Calculate the angle between Model Mid Point and Elevation Point.
	elevationPTY = elevationPT.Y
	elevationPTX = elevationPT.X							
	combY = elevationPTY-modelMPY
	combX = elevationPTX-modelMPX			
	ang = atan2(combY, combX)
		

	#Create elevation marker and elevation in position 0.
	eleMarker = ElevationMarker.CreateElevationMarker(doc, viewType.Id, elevationPT, 100)
	ele = eleMarker.CreateElevation(doc, doc.ActiveView.Id , 0)
	ele = eleMarker.CreateElevation(doc, doc.ActiveView.Id , 1)
	ele = eleMarker.CreateElevation(doc, doc.ActiveView.Id , 2)
	ele = eleMarker.CreateElevation(doc, doc.ActiveView.Id , 3)
	lst.append(eleMarker)
			#	
	crManager = ele.GetCropRegionShapeManager()
	#crShape = crManager.GetCropRegionShape()

	newCurveLoop = []
	newCurveLoop.Add(l1)
	newCurveLoop.Add(l2)
	newCurveLoop.Add(l3)
	newCurveLoop.Add(l4)
		
	cLoop = CurveLoop.Create(newCurveLoop)

	try:			
		crManager.SetCropRegionShape(cLoop)
				
	except:
		pass
		
TransactionManager.Instance.TransactionTaskDone()

OUT = lst

else:

OUT = "Set toggle to TRUE"

@dang.nguyenYCXTN ,

Your script is big:

#Copyright(c) 2016 www.Learndynamo.com 2
#Please contact at jeremy@learndynamo.com

import clr
clr.AddReference(‘RevitAPI’)
clr.AddReference(“RevitServices”)
clr.AddReference(“RevitNodes”)
import RevitServices
import Revit
import Autodesk
from Autodesk.Revit.DB import *
from math import *

clr.ImportExtensions(Revit.GeometryConversion)

from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager

doc = DocumentManager.Instance.CurrentDBDocument

toggle = IN[0]
points = UnwrapElement(IN[1])
modelPoints = UnwrapElement(IN[2])
cropCurves = UnwrapElement(IN[3])
viewType = UnwrapElement(IN[4])

lst =

#Get Family View Type
vft = 0
collector = FilteredElementCollector(doc).OfClass(ViewFamilyType).ToElements()

#eleViews =
for i in collector:
if i.ViewFamily == ViewFamily.Elevation:
vft = i.Id
break

if toggle == True:

TransactionManager.Instance.EnsureInTransaction(doc)

for ind, point in enumerate(points):

	#Retrieve the mid point of model lines and get X,Y.		
	modelMP = modelPoints[ind].ToXyz()
	modelMPX = modelMP.X
	modelMPY = modelMP.Y
	
	#Retrieve individual lines of crop window.		
	cropLines = cropCurves[ind]
	l1 = cropLines[0].ToRevitType()
	l2 = cropLines[1].ToRevitType()
	l3 = cropLines[2].ToRevitType()
	l4 = cropLines[3].ToRevitType()
				
	# Create a line in the z-Axis for elevation marker to rotate around.			
	elevationPT = point.ToXyz()
	elptRotate = XYZ(elevationPT.X, elevationPT.Y, elevationPT.Z+100)
	ln = Line.CreateBound(elevationPT, elptRotate)

	#Calculate the angle between Model Mid Point and Elevation Point.
	elevationPTY = elevationPT.Y
	elevationPTX = elevationPT.X							
	combY = elevationPTY-modelMPY
	combX = elevationPTX-modelMPX			
	ang = atan2(combY, combX)
		

	#Create elevation marker and elevation in position 0.
	eleMarker = ElevationMarker.CreateElevationMarker(doc, viewType.Id, elevationPT, 100)
	ele = eleMarker.CreateElevation(doc, doc.ActiveView.Id , 0)
	ele = eleMarker.CreateElevation(doc, doc.ActiveView.Id , 1)
	ele = eleMarker.CreateElevation(doc, doc.ActiveView.Id , 2)
	ele = eleMarker.CreateElevation(doc, doc.ActiveView.Id , 3)
	lst.append(eleMarker)
			#	
	crManager = ele.GetCropRegionShapeManager()
	#crShape = crManager.GetCropRegionShape()

	newCurveLoop = []
	newCurveLoop.Add(l1)
	newCurveLoop.Add(l2)
	newCurveLoop.Add(l3)
	newCurveLoop.Add(l4)
		
	cLoop = CurveLoop.Create(newCurveLoop)

	try:			
		crManager.SetCropRegionShape(cLoop)
				
	except:
		pass
		
TransactionManager.Instance.TransactionTaskDone()

OUT = lst

else:

OUT = "Set toggle to TRUE"

What are you doing exactly?