Анатолий

Ответы в темах

Просмотр 15 сообщений - с 1 по 15 (из 32 всего)
  • Автор
    Сообщения
  • #8257 Score: 3
    Анатолий
    Участник
    37 pts

    Добрый день! Если б немного упростить задачу, можно было бы сделать что-то подобное.. А так, конечно, хотелось бы больше практических подробностей: что нужно сделать и для чего. Возможно другие варианты появятся.

    #8029 Score: 2
    Анатолий
    Участник
    37 pts

    Не знаю, правильно ли я понял вашу просьбу.

    #8712 Score: 2
    Анатолий
    Участник
    37 pts

    Добрый день! На вход необходимо подавать элементы которые не повторяются, иначе скрипт выдаст первый порядочный номер по списку.

    #8463 Score: 2
    Анатолий
    Участник
    37 pts

    Для элементов системы пожарной сигнализации скрипт https://drive.google.com/open?id=1UkPl7VH_IZjZIZatIQoXKvEtpIz6e_i8, видео https://youtu.be/WWEQYTLxTaM

    #7071 Score: 2
    Анатолий
    Участник
    37 pts

    Еще один вариант с помощью масенького скрипта питона

    import clr
    el=IN[0]
    a=IN[1]
    b=IN[2]
    from operator import itemgetter
    c=sorted (el, key=itemgetter(a,b))
    OUT = c

    p.s. В начале у меня стоит нод на выборку первых 109 элементов, потому что в файле, который отказался под рукой не все стены имели корректную длину/высоту.

    #8647 Score: 1
    Анатолий
    Участник
    37 pts

    Лично мне вышеизложенная “теория” к интересующему нас всех материалу понравилась.
    По поводу вопроса: может я чего-то не понял, но у меня в упрощенном варианте метод IndexOf работает.

    Если говорить о сути метода, в данном примере по порядку выбираются индексы всех элементов. Если подавать на вход нода отдельный элемент из данного списка элементов – нод укажет порядковый номер элемента (индекс).

    #8878 Score: 1
    Анатолий
    Участник
    37 pts

    Добрый вечер. Как костыль в некотором частном случае с помощью динамо можно попробовать так: берем весь список наших элементов (окна, двери, что необходимо), смотрим в каких элементах по порядку какие стадии и подаем на вход нода SetParameterByName для елемента – необходимый список элементов, для value – стадию элемента (задаем порядочный номер необходимой стадии из списка).

    #8025 Score: 1
    Анатолий
    Участник
    37 pts

    Добрый день. Возможно переустановка Ревита и не займет такого большого количества времени, нежели ждать ответа. Лично у меня 2.0 тоже не стал на 18-й ревит, в 19-м работает отлично. Вернее он установился, все как положено, но панель слева, как у вас, пустая. Теперь пока что скрипты меняю (если надо) в 18-й версии Ревита и 1,3 динамо, а потом немного дорабатываю в 19-й версии и 2.0.

    #8558 Score: 1
    Анатолий
    Участник
    37 pts

    Думаю, что эта тема может быть вам интересна для изучения. https://forum.dynamobim.com/t/how-to-get-an-in-built-parameter-for-dynamo-1-2-parameterfilterelement-byrules/6158

    #9144 Score: 1
    Анатолий
    Участник
    37 pts

    Добрый день! Для вашего конкретного случая

    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

    #8593 Score: 1
    Анатолий
    Участник
    37 pts

    Добрый день. У вас почти все верно записано в питоне, за исключением анврапа стены. el = IN[0]

    #9204 Score: 1
    Анатолий
    Участник
    37 pts

    Создал новый параметр в проекте “Номер свай по порядку” потому что существующий не вносится в спецификацию и недоступен в параметрах проекта. Также внес некоторые изменения в скрипт. Тестируйте. Прошу обратить внимание на питоновский нод “Фильтр”. Если в вашем проекте будут дополнительно какие-то элементы с категории Фундамент несущей конструкции, их необходимо выключать в коде, немного занотировал в коде скрипта подробности.

    Скрипт

    #8675 Score: 1
    Анатолий
    Участник
    37 pts

    В принципе, ИваСерж дал расширенный ответ о выводе данных списком, немного уточню по вашему коду скрипта питона 2.7. Чтобы ответ выглядел в виде списка, в вашем коде необходимо прописать:

    list = []
    for x in a:
        x = x*2
        list.append(x)
    OUT = list

    В одну строку как вам отвечали, это будет list=[x*2 for x in a]

    #9208 Score: 1
    Анатолий
    Участник
    37 pts

    Рад, что почти все получается. Питон, конечно, поизучать стоит, особенно когда проекты больших объемов. В данном случае прописывать следующим образом:

    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()==“Соответствующие данные параметра“ , постарался объяснить немного доступней)

    #8346 Score: 1
    Анатолий
    Участник
    37 pts

    a = IN[0]
    b = IN[1]
    d = []
    for k,l in zip(a,b):
    e = round(l,1)
    c = str(k)+"х"+str(e)
    d.append(c)
    OUT = d
Просмотр 15 сообщений - с 1 по 15 (из 32 всего)