Advertisement
IvaSerge

RevitDetailLineBySubcategory

Dec 21st, 2017
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.07 KB | None | 0 0
  1. import clr
  2. clr.AddReference("RevitAPI")
  3. from Autodesk.Revit.DB import*
  4. clr.AddReference("RevitServices")
  5. from RevitServices.Persistence import DocumentManager
  6. doc=DocumentManager.Instance.CurrentDBDocument
  7.  
  8. #имя подкатегории
  9. subcatName = IN[0]
  10. lStyle = list()
  11. cat = Category.GetCategory(doc, BuiltInCategory.OST_Lines)
  12. gs = cat.GetGraphicsStyle(GraphicsStyleType.Projection)
  13. gsCat = gs.GraphicsStyleCategory.SubCategories
  14. lineStyles = [i.GetGraphicsStyle(GraphicsStyleType.Projection) for i in gsCat]
  15. #нашли нужную подкатегорию и взяли из неё ИД в виде стринга
  16. lStyle = [i for i in lineStyles if subcatName==i.Name]
  17. strId = str(lStyle[0].Id)
  18.  
  19. #выбираем все линии детализации на активном виде
  20. collector=FilteredElementCollector(doc, doc.ActiveView.Id)
  21. lines=collector.OfCategory(BuiltInCategory.OST_Lines).ToElements()
  22. lines=[i for i in lines if i.CurveElementType.ToString()=="DetailCurve"]
  23. lines=[i for i in lines if i.LineStyle.Id.ToString()==strId]
  24.  
  25. OUT = lines
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement