Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # antonbond Feb2016
- import clr
- clr.AddReference('ProtoGeometry')
- from Autodesk.DesignScript.Geometry import *
- # Import Element wrapper extension methods
- clr.AddReference("RevitNodes")
- import Revit
- clr.ImportExtensions(Revit.Elements)
- # Import geometry conversion extension methods
- clr.ImportExtensions(Revit.GeometryConversion)
- # Import DocumentManager and TransactionManager
- clr.AddReference("RevitServices")
- import RevitServices
- from RevitServices.Persistence import DocumentManager
- from RevitServices.Transactions import TransactionManager
- doc = DocumentManager.Instance.CurrentDBDocument
- uiapp = DocumentManager.Instance.CurrentUIApplication
- app = uiapp.Application
- # Import RevitAPI
- clr.AddReference("RevitAPI")
- import Autodesk
- from Autodesk.Revit.DB import *
- import sys
- pyt_path = r'C:\Program Files (x86)\IronPython 2.7\Lib'
- sys.path.append(pyt_path)
- #The inputs to this node will be stored as a list in the IN variable.
- dataEnteringNode = IN
- #
- view = doc.ActiveView
- opt = Options()
- opt.ComputeReferences = True
- opt.IncludeNonVisibleObjects = True
- #
- def spotCoord(fi):
- g = fi.get_Geometry(opt)
- e = g.GetEnumerator()
- e.MoveNext()
- e.MoveNext()
- e.MoveNext()
- cE = e.Current
- cS = cE.GetSymbolGeometry()
- cI = cE.GetInstanceGeometry()
- eS = cS.GetEnumerator()
- eS.MoveNext()
- i = eS.Current
- eI = cI.GetEnumerator()
- eI.MoveNext()
- eI.MoveNext()
- j = eI.Current
- edgeS = i.Edges
- edgeI = j.Edges
- # 1st corner:
- ref1 = edgeS[0].GetEndPointReference(0)
- curS1 = edgeS[0].AsCurve()
- curI1 = edgeI[0].AsCurve()
- origin1 = curS1.GetEndPoint(0)
- refPt1 = origin1
- origPt1 = curI1.GetEndPoint(0)
- bend1 = XYZ(origPt1.X + 0.5, origPt1.Y + 0.75, origPt1.Z)
- end1 = XYZ(origPt1.X + 1, origPt1.Y + 0.75, origPt1.Z)
- #2nd corner:
- ref2 = edgeS[2].GetEndPointReference(0)
- curS2 = edgeS[2].AsCurve()
- curI2 = edgeI[2].AsCurve()
- origin2 = curS2.GetEndPoint(0)
- refPt2 = origin2
- origPt2 = curI2.GetEndPoint(0)
- bend2 = XYZ(origPt2.X - 0.5, origPt2.Y - 0.75, origPt2.Z)
- end2 = XYZ(origPt2.X - 1, origPt2.Y - 0.75, origPt2.Z)
- # TRANSACTION:
- TransactionManager.Instance.EnsureInTransaction(doc)
- doc.Create.NewSpotCoordinate(view, ref1, origin1, bend1, end1, refPt1, True)
- doc.Create.NewSpotCoordinate(view, ref2, origin2, bend2, end2, refPt2, True)
- TransactionManager.Instance.TransactionTaskDone()
- ###
- col = UnwrapElement(IN[0])
- if isinstance(IN[0], list):
- map(spotCoord, col)
- else:
- spotCoord(col)
- #Assign your output to the OUT variable.
- OUT = col
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement