Нашел решение. Нужно скрывать не саму группу, а элементы, которые в нее входят.
#Получение элементов на виде
def getEl(view):
return FilteredElementCollector(doc,view.Id).ToElements()
doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application
views = FilteredElementCollector(doc).OfCategory(BuiltInCategory.OST_Views).ToElements()
#Фильтруем виды
sortViews = [x for x in views if “Армирование” in x.Name and “См-” in x.Name]
TransactionManager.Instance.EnsureInTransaction(doc)
for view in sortViews:
noHidden = []
els = []
elsId = []
#Получам список марок групп, которые нельзя скрывать
for id in re.finditer(“См-“, view.Name):
noHidden.append(view.Name[id.start():id.end()+6].rstrip())
#Получение списка элементов, которые нужно скрыть
for el in getEl(view):
if el.GetType().Name == “Group” and “(арматура)” in el.Name and “См-” in el.Name:
els.append(el)
for i in noHidden:
for x in els[:]:
if i in x.Name:
els.remove(x)
#Получение идентификаторов группы
ids = [g.GetMemberIds() for g in els]
ids = list(itertools.chain(*ids[:]))
iels = List[ElementId](ids)
if iels:
view.HideElements(iels)
TransactionManager.Instance.TransactionTaskDone()