Advertisement
Denver-22

4-1-12

Dec 2nd, 2022 (edited)
766
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.08 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. import clr
  3. clr.AddReference('RevitAPI')
  4. from Autodesk.Revit import DB
  5.  
  6. doc = __revit__.ActiveUIDocument.Document  # noqa
  7.  
  8. category_list = [
  9.     -2000537,
  10.     'Балочные системы',
  11.     DB.BuiltInCategory.OST_PathReinSpanSymbol,
  12.     -2008005,
  13.     'Головные части уровней',
  14.     'Фрагмент плана',
  15.     -2000170,
  16.     DB.ElementId(-2008208),
  17.     DB.ElementId(-2001100),
  18.     DB.BuiltInCategory.OST_FloorAnalytical,
  19.     DB.ElementId(-2009055),
  20.     DB.BuiltInCategory.OST_Casework,
  21.     'Аннотации для нескольких арматурных стержней',
  22.     DB.BuiltInCategory.OST_CurtaSystem,
  23.     'Roofing Detail.dwg',
  24.     -2000240,
  25.     -2008150,
  26.     -2000938,
  27.     DB.ElementId(-2000280),
  28.     DB.BuiltInCategory.OST_AreaRein,
  29.     'Линия сечения',
  30.     DB.ElementId(-2000450),
  31.     DB.ElementId(-2008152),
  32.     DB.BuiltInCategory.OST_DetailComponentTags,
  33.     DB.BuiltInCategory.OST_AnalyticSurfaces,
  34.     -2005006,
  35.     -2008082,
  36.     DB.ElementId(-2005018),
  37.     DB.ElementId(-2008085)
  38. ]
  39.  
  40. cats = []
  41. for item in category_list:
  42.     if isinstance(item, DB.BuiltInCategory):
  43.         cats.append(
  44.             DB.Category.GetCategory(doc, item))
  45.     if isinstance(item, DB.ElementId):
  46.         cats.append(
  47.             DB.Category.GetCategory(doc, item))
  48.     if isinstance(item, int):
  49.         cats.append(
  50.             DB.Category.GetCategory(doc, DB.ElementId(item)))
  51.     if isinstance(item, str):
  52.         cats.append(
  53.             doc.Settings.Categories[item])
  54.  
  55. type_groups = {}
  56. for cat in cats:
  57.     type = cat.CategoryType
  58.     if type not in type_groups:
  59.         type_groups[type] = [cat]
  60.     else:
  61.         type_groups[type].append(cat)
  62.  
  63. cats_max = []
  64. for cats in type_groups.values():
  65.     cats_max.append(
  66.         max(cats, \
  67.             key=lambda item: item.SubCategories.Size))
  68.  
  69. result = 0
  70. for cat in cats_max:
  71.     iterator = iter(cat.SubCategories)
  72.     while iterator.MoveNext():
  73.         result += iterator.Current.Id.IntegerValue
  74. print 'Ответ: {}'.format(result)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement