Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import clr
- clr.AddReference('RevitAPI')
- from Autodesk.Revit import DB
- doc = __revit__.ActiveUIDocument.Document # noqa
- category_list = [
- -2000537,
- 'Балочные системы',
- DB.BuiltInCategory.OST_PathReinSpanSymbol,
- -2008005,
- 'Головные части уровней',
- 'Фрагмент плана',
- -2000170,
- DB.ElementId(-2008208),
- DB.ElementId(-2001100),
- DB.BuiltInCategory.OST_FloorAnalytical,
- DB.ElementId(-2009055),
- DB.BuiltInCategory.OST_Casework,
- 'Аннотации для нескольких арматурных стержней',
- DB.BuiltInCategory.OST_CurtaSystem,
- 'Roofing Detail.dwg',
- -2000240,
- -2008150,
- -2000938,
- DB.ElementId(-2000280),
- DB.BuiltInCategory.OST_AreaRein,
- 'Линия сечения',
- DB.ElementId(-2000450),
- DB.ElementId(-2008152),
- DB.BuiltInCategory.OST_DetailComponentTags,
- DB.BuiltInCategory.OST_AnalyticSurfaces,
- -2005006,
- -2008082,
- DB.ElementId(-2005018),
- DB.ElementId(-2008085)
- ]
- cats = []
- for item in category_list:
- if isinstance(item, DB.BuiltInCategory):
- cats.append(
- DB.Category.GetCategory(doc, item))
- if isinstance(item, DB.ElementId):
- cats.append(
- DB.Category.GetCategory(doc, item))
- if isinstance(item, int):
- cats.append(
- DB.Category.GetCategory(doc, DB.ElementId(item)))
- if isinstance(item, str):
- cats.append(
- doc.Settings.Categories[item])
- type_groups = {}
- for cat in cats:
- type = cat.CategoryType
- if type not in type_groups:
- type_groups[type] = [cat]
- else:
- type_groups[type].append(cat)
- cats_max = []
- for cats in type_groups.values():
- cats_max.append(
- max(cats, \
- key=lambda item: item.SubCategories.Size))
- result = 0
- for cat in cats_max:
- iterator = iter(cat.SubCategories)
- while iterator.MoveNext():
- result += iterator.Current.Id.IntegerValue
- print 'Ответ: {}'.format(result)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement