Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import clr
- clr.AddReference("RevitServices")
- import RevitServices
- from RevitServices.Persistence import DocumentManager
- from RevitServices.Transactions import TransactionManager
- doc = DocumentManager.Instance.CurrentDBDocument
- clr.AddReference('RevitAPI')
- import Autodesk
- from Autodesk.Revit.DB import *
- clr.AddReference('ProtoGeometry')
- from Autodesk.DesignScript.Geometry import *
- cirs = IN[0] # цепи
- circuitPaths = [] # Достаём траектории каждой цепи
- for cir in UnwrapElement(cirs):
- circuitPaths.append(cir.GetCircuitPath())
- pointsAsStr = [] # Перевод данных из незнакомого мне формата в строку
- for circuitPath in circuitPaths:
- sublist = []
- for xyz in circuitPath:
- sublist.append(str(xyz).replace('(','').replace(')',''))
- pointsAsStr.append(sublist)
- k = 304.8 # в 1 футе k мм
- points = [] # Из строк делаем Points
- for path in pointsAsStr:
- sublist = []
- for i in path:
- x = float(i.split(',')[0])
- y = float(i.split(',')[1])
- z = float(i.split(',')[2])
- sublist.append(Point.ByCoordinates(x*k, y*k, z*k))
- points.append(sublist)
- lines = [] # Из Points делаем Lines
- for path in points:
- sublist = []
- for i, p in enumerate(path):
- try:
- sublist.append(Line.ByStartPointEndPoint(path[i], path[i+1]))
- except IndexError:
- continue
- lines.append(sublist)
- OUT = lines
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement