Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- toggle = IN[0]
- points = UnwrapElement(IN[1])
- modelPoints = UnwrapElement(IN[2])
- cropCurves = UnwrapElement(IN[3])
- viewType = UnwrapElement(IN[4])
- lst = []
- viewid = []
- output = []
- #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)
- viewid.append(ele)
- #Rotate elevation marker towars model line.
- ElementTransformUtils.RotateElement(doc, eleMarker.Id, ln, ang)
- #
- 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)
- lst.append("Elevation Created")
- except:
- pass
- lst.append("Missed Elevation")
- TransactionManager.Instance.TransactionTaskDone()
- output.append([lst,viewid])
- OUT = output
- else:
- OUT = "Set Run Gate to TRUE"
Add Comment
Please, Sign In to add comment