Advertisement
Denver-22

4-1-4

Nov 26th, 2022
581
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.94 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2.  
  3. from Autodesk.Revit.DB import FilteredElementCollector as FEC
  4.  
  5. map = doc.ParameterBindings
  6. iterator = map.ForwardIterator()
  7.  
  8. param_elements = {}
  9. while iterator.MoveNext():
  10.     param_elements[iterator.Key.Id] = 0
  11.     for cat in iterator.Current.Categories:
  12.         if iterator.Current.ToString() == 'InstanceBinding':
  13.             param_elements[iterator.Key.Id] += FEC(doc). \
  14.                 OfCategoryId(cat.Id).WhereElementIsNotElementType().GetElementCount()
  15.         else:
  16.             param_elements[iterator.Key.Id] += FEC(doc). \
  17.                 OfCategoryId(cat.Id).WhereElementIsElementType().GetElementCount()
  18.  
  19. lst_sorted = sorted(param_elements.values(), reverse=True)  # [137, 86, 82, 34, 30, 29, 25, 11, 0, 0]
  20.  
  21. param_sum, elem_sum = 0, 0
  22. for key, value in param_elements.items():
  23.     for i in range(3):
  24.         if value == lst_sorted[i]:
  25.             param_sum += key.IntegerValue
  26.             elem_sum += value
  27.  
  28. print '{}, {}'.format(param_sum, elem_sum)
  29.  
  30. # 3281797, 305 - не верно
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement