Здравствуйте, сообщество.
Подскажите, пожалуйста, как в Dynamo отсортировать список элементов инженерных систем в таком порядке, чтобы элементы из категории "Оборудование" шли вверху списка, за ними "Арматура воздуховодов" и т.д. Как задать такую последовательность? Список создал. Могу создать ещё один такой же структуры, который будет содержать ID категорий этих элементов, но на этом всё.
Solved! Go to Solution.
Solved by alexey.lobanov. Go to Solution.
Ну вытягивайте из этого списка "Категорию оборудования" и потом используете этот новый списко в качестве ключей.
Вот, вытащил названия и ID категорий в 2х списках.
А как использовать новый список в качестве ключа? У меня проблемы с использованием нодов GroupByKey и SortByKey. А точнее, с пониманием понятия "ключ" и того, чем это может быть. И в каком виде.
Поясню.
Полученные списки уже содержат 2 подсписка. Они отсортированы нодом GroupByKey сначала по текстовому параметру, который отвечает за название раздела в спецификации (ВЕНТИЛЯЦИЯ, ОТОПЛЕНИЕ, ТЕПЛОСНАБЖЕНИЕ ПРИТОЧНЫХ УСТАНОВОК), затем по имени системы (П1, П2...). Но тут в качестве ключа для GroupByKey я указывал значения параметров:
Как применить принцип группирования по ключу для создания последовательности категорий, мне не известно. Имена категорий в итоге не должны быть в алфавитном порядке, а их ID индексы - не располагаться по возрастанию или убыванию. В этом сложность.
Тебе нужен именно отсортированный список в динамо или в спецификации ревит?
Может присвоить всем категориям порядковый номер их группирования в спецификации, а потом по нему сортировать?
Alexey Lobanov / Алексей Лобанов
Revit Architecture Certified Professional | Autodesk Certified Instructor | Autodesk Expert Elite
PRORUBIM | YouTube channel | LinkedIn profile
Спасибо, Алексей.
kanatof
Александр, я создаю отсортированный список в Динамо. Далее хочу всем элементам списка добавить нумерацию к параметру наименования, в пределах каждой системы. Это освободит мне две ячейки фильтрации непосредственно в Revit, а мне как раз одной не хватает.
Добрый день!
а можете пожалуйста пояснить как это сделать для спецификации,то есть чтоб сортировалось в самой спецификации через динамо,так как сам додумать не могу...а то полей сортировка/группирование всего 4,и нужно чтоб сортировка шла так же -(оборудование- Арматура трубопроводов- Соединительные детали трубопроводов)
А в чем вопрос?
Если у тебя есть отсортированный список то добавить перед этим списком нумерацию к параметру наименования и заполнить как третий параметр по которому создавать спецификацию
Я так понял, что человек имел ввиду манипуляции непосредственно со спецификацией.
А так-то да... отсортировать в динамо, затем можно просто пронумеровать всё насквозь, а номера вписать в какой-нибудь общий параметр, даже не добавляя их к наименованию (т.к. ГОСТ 21-602 уже не тот...). И тогда сортировать спецификацию можно вообще по одному параметру, хранящему информацию о порядковом номере элемента.
Я сейчас пользуюсь не очень удобным способом: у элементов инж. систем есть общий числовой параметр, отвечающий за очерёдность внесения в спецификацию и занимающий одну ячейку сортировки. Он равен: 1 для оборудования, 2 для арматуры, и т.д. до 7 или 8 (по числу строк очерёдности в ГОСТ 21-602). У меня он создаётся сразу в семействе, но можно присвоить его элементам глобально через параметры проекта. Создать несколько фильтров, 7-8 штук. Фильтром №1 выбрать всё оборудование в проекте, всем элементам присвоить значение этого параметра вручную. Фильтром №2 всю арматуру, и т.д. Или отдинамить его, опять же... Такой скрипт написать будет гораздо проще, чем скрипт глобальной сортировки.
Увидел на скриншоте, что даже для простой генерации и прибавки номеров к строкам люди используют питон и расстроился...((
Alexey Lobanov / Алексей Лобанов
Revit Architecture Certified Professional | Autodesk Certified Instructor | Autodesk Expert Elite
PRORUBIM | YouTube channel | LinkedIn profile
Вот такой скрипт у меня создает настроенную таблицу спецификации. Этот нод только создает и форматирует таблицу. Заполнением параметров занимаются другие.
Спасибо!Все что вы подсказывали будет полезно!
Но как сортировать уже готовую спецификацию,как до нее достучатся либо через Dynamo,либо через API...я пока только вникаю в это все. Параллельно и Dynamo пытаюсь учить и python,недавно только понял что для того чтоб писать скрипты на python нужно еще и api знать...короче собираю информацию из разрозненных источников...
Интересует не то что бы создание спецификации(это уже в дальнейшем),создание параметра по которому будет сортироваться (как описано было выше,оборудование=1;арматура=2 и т.д.),а вот именно как достучатся до готовой спецификации и применить сортировку ,толи с помощью Dynamo толи через REVITAPI
Вступление первое:
Сортируется не спецификация, сортируются элементы, созданные вами в модели. Спецификация только отображает определенным образом информацию, которую она извлекает из элементов модели.
Если информации нет, спецификация ее не отобразит. Если информация противоречива, спецификация ее также не отобразит.
Вступление второе:
Dynamo использует Revit API, так что результат будет одинаковый в любом случае.
Разница в том, что обращаясь к API напрямую, вы не имеете никаких ограничений по инструментарию (в рамках API и даже чуть больше), а обращаясь к API через Dynamo, вы можете встретить ограничения, связанные с реализацией тех или иных функций в самой Dynamo.
При этом для не слишком больших задач Dynamo нагляднее в написании логики и в отладке.
Собственно задача:
Даны элементы модели. Получить вид спецификации, в котором элементы сгруппированы по заданному критерию, пронумерованы от 1 до N и отсортированы по возрастанию нумерации.
Рассуждения:
Способ группировки задается штатными средствами только один: натуральный. Направления сортировки: по возрастанию или убыванию.
Из условия ясно, что задача сводится к правильной нумерации элементов. Далее на Вид спецификации накладывается один единственный критерий сортировки «по номеру».
План решения:
Могу прокомментировать более подробно...
Вы имеете ввиду что не создавая параметр по которому будет происходить сортировка в спецификации не по чем сортировать.Я думал что можно будет отсортировать в спецификации по категории.
тогда все ясно обьеснили .Спасибо!Вопросы у меня конечно возникнут но я постараюсь справится сам.
по сути:
-добавляю в проект общий параметр "сортировка"
-получаю все элементы из модели,делю их на категории
-присваиваю категориям порядковый номер
-сортирую их в спецификации
этот вариант вы рассмотреть можете пожалуйста,может я что то упускаю?
eco.serebryakov написано:Вы имеете ввиду что не создавая параметр по которому будет происходить сортировка в спецификации не по чем сортировать.
Именно так.
eco.serebryakov написано:
-добавляю в проект общий параметр "сортировка"
-получаю все элементы из модели,делю их на категории
-присваиваю категориям порядковый номер
-Внутри каждой категории присваиваете элементам порядковые номера по принципу сквозной нумерации.
-сортирую их в спецификации
Далее уже будет более-менее результат.
Can't find what you're looking for? Ask the community or share your knowledge.