Не так давно обнаружил, что можно перебирать элементы без приведения объекта FilteredElementCollector к нужному типу - Element или FamilyInstance.
Не был уверен, что это правильно, пока не нашёл статью Building Coder'а: Change Type, Iterate Elements, Create Family
Виктор Чекалин выполнил перевод на сайте adn-cis.org
Не был уверен, что это правильно, пока не нашёл статью Building Coder'а: Change Type, Iterate Elements, Create Family
Виктор Чекалин выполнил перевод на сайте adn-cis.org
то есть проходить прямо циклом по массиву.
ОтветитьУдалитьнужно попробовать в питоне это выполнить.
Попробую переделать второй код, чтобы было проще сравнить с первым:
ОтветитьУдалитьFilteredElementCollector collector
= new FilteredElementCollector( doc )
.OfClass( typeof( Family ) );
foreach( Family f in collector )
{
str = str + f.Name + "\n";
// ...
}
Смысл в том, что не требуется создавать нового массива с элементами нужного типа. Делаю FilteredElementCollector, выполняю фильтрацию, далее перебор веду по collector, без создания нового листа из семейств, как это делалось в первом примере