Сообщество программистов Autodesk в СНГ
ADN Club => Revit API => Тема начата: Павел55 от 01-09-2021, 14:34:53
Название:
Получить все системные семейства в документе.
Отправлено:
Павел55
от
01-09-2021, 14:34:53
Добрый день! Подскажите как можно получить все системные семейства?
Название:
Re: Получить все системные семейства в документе.
Отправлено:
Александр Игнатович
от
01-09-2021, 14:52:30
Я бы начал вот с такого фильтра:
Код - C#
[Выбрать]
var filter
=
new
LogicalFilter
(
new
ElementIsElementTypeFilter
(
)
,
new
ElementClassFilter
(
typeof
(
FamilySymbol
)
,
true
)
)
;
Название:
Re: Получить все системные семейства в документе.
Отправлено:
Павел55
от
01-09-2021, 15:22:46
Вы наверное имели ввиду вот так
Код - C#
[Выбрать]
var filter
=
new
LogicalAndFilter
(
new
ElementIsElementTypeFilter
(
)
,
new
ElementClassFilter
(
typeof
(
FamilySymbol
)
)
)
;
А дальше через WherePasses в FilteredElementCollector?
Название:
Re: Получить все системные семейства в документе.
Отправлено:
Александр Игнатович
от
01-09-2021, 15:25:16
Нет, твой фильтр аналогичен
Код - C#
[Выбрать]
var filter
=
new
ElementClassFilter
(
typeof
(
FamilySymbol
)
)
Смысл в том, чтобы исключить FamilySymbol - типоразмеры пользовательских семейств.
Цитата: Павел55 от 01-09-2021, 15:22:46
А дальше через WherePasses в FilteredElementCollector?
Ну да
Название:
Re: Получить все системные семейства в документе.
Отправлено:
Павел55
от
01-09-2021, 15:35:06
LogicalFilter - такого класса нет, есть либо AND либо OR, либо ElementLogicalFilter
Название:
Re: Получить все системные семейства в документе.
Отправлено:
Александр Игнатович
от
01-09-2021, 15:39:08
Да, LogicalAnd конечно же
Название:
Re: Получить все системные семейства в документе.
Отправлено:
Павел55
от
02-09-2021, 13:25:32
Код - C#
[Выбрать]
SystemFamilies
=
new
FilteredElementCollector
(
doc
)
.
OfClass
(
typeof
(
HostObject
)
)
.
WhereElementIsNotElementType
(
)
.
ToList
(
)
;