Анатолий
Ответы в темах
-
АвторСообщения
-
Для элементов системы пожарной сигнализации скрипт https://drive.google.com/open?id=1UkPl7VH_IZjZIZatIQoXKvEtpIz6e_i8, видео https://youtu.be/WWEQYTLxTaM
Еще один вариант с помощью масенького скрипта питона
import clr
el=IN[0]
a=IN[1]
b=IN[2]
from operator import itemgetter
c=sorted (el, key=itemgetter(a,b))
OUT = cp.s. В начале у меня стоит нод на выборку первых 109 элементов, потому что в файле, который отказался под рукой не все стены имели корректную длину/высоту.
Лично мне вышеизложенная “теория” к интересующему нас всех материалу понравилась.
По поводу вопроса: может я чего-то не понял, но у меня в упрощенном варианте метод IndexOf работает.Если говорить о сути метода, в данном примере по порядку выбираются индексы всех элементов. Если подавать на вход нода отдельный элемент из данного списка элементов – нод укажет порядковый номер элемента (индекс).
Добрый вечер. Как костыль в некотором частном случае с помощью динамо можно попробовать так: берем весь список наших элементов (окна, двери, что необходимо), смотрим в каких элементах по порядку какие стадии и подаем на вход нода SetParameterByName для елемента – необходимый список элементов, для value – стадию элемента (задаем порядочный номер необходимой стадии из списка).
Добрый день. Возможно переустановка Ревита и не займет такого большого количества времени, нежели ждать ответа. Лично у меня 2.0 тоже не стал на 18-й ревит, в 19-м работает отлично. Вернее он установился, все как положено, но панель слева, как у вас, пустая. Теперь пока что скрипты меняю (если надо) в 18-й версии Ревита и 1,3 динамо, а потом немного дорабатываю в 19-й версии и 2.0.
Думаю, что эта тема может быть вам интересна для изучения. https://forum.dynamobim.com/t/how-to-get-an-in-built-parameter-for-dynamo-1-2-parameterfilterelement-byrules/6158
Добрый день! Для вашего конкретного случая
import clr clr.AddReference("DSCoreNodes") import DSCore from operator import itemgetter a = [["3*"],["2*"],["16*","16","7","7*"],[" "]] d = [] for b in a: l = [] c = sorted(b) lk1 = [] lk2 = [] if len(b)>1: for bb in b: k = bb.split("*") k1 = int(k[0]) lk1.append(k1) if len(k)>1: k2 = "*" lk2.append(k2) else: k2 = "" lk2.append(k2) kkk = [b,lk1,lk2] tr1 = DSCore.List.Transpose(kkk) b1 = sorted(tr1,key = itemgetter(1,2)) tr2 = DSCore.List.Transpose(b1) d.append(tr2[0]) else: d.append(c) OUT = d
Создал новый параметр в проекте “Номер свай по порядку” потому что существующий не вносится в спецификацию и недоступен в параметрах проекта. Также внес некоторые изменения в скрипт. Тестируйте. Прошу обратить внимание на питоновский нод “Фильтр”. Если в вашем проекте будут дополнительно какие-то элементы с категории Фундамент несущей конструкции, их необходимо выключать в коде, немного занотировал в коде скрипта подробности.
СкриптВ принципе, ИваСерж дал расширенный ответ о выводе данных списком, немного уточню по вашему коду скрипта питона 2.7. Чтобы ответ выглядел в виде списка, в вашем коде необходимо прописать:
list = [] for x in a: x = x*2 list.append(x) OUT = list
В одну строку как вам отвечали, это будет
list=[x*2 for x in a]
Рад, что почти все получается. Питон, конечно, поизучать стоит, особенно когда проекты больших объемов. В данном случае прописывать следующим образом:
doors1=doors.Where(lambda x: UnwrapElement(x).Symbol(если параметр экземпляра, Symbol не пишем).LookupParameter(“Параметр объекта“).AsString() (AsValueString(), AsDouble(), AsInteger(), все на выбор, смотря в каком формате данные параметра заложены) == (если равняется или !=, если не равняется следующим данным параметра, который будем дальше прописывать) “Данные параметра“. Прописывать код необходимо строго в этом порядке. ничего не убирать и не добавлять. То есть, например
name1=name.Where(lambda x: UnwrapElement(x).LookupParameter(“Параметр объекта“).AsValueString()==“Данные параметра“, при необходимости добавить фильтр еще по каким-то параметрам работаем уже с последними данными, например
name2=name1.Where(lambda x: UnwrapElement(x).Symbol.LookupParameter(“Новый параметр объекта“).AsValueString()==“Соответствующие данные параметра“ , постарался объяснить немного доступней)
-
АвторСообщения