Анатолий

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

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

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

    #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 элементов, потому что в файле, который отказался под рукой не все стены имели корректную длину/высоту.

    #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

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

    Добавьте для дополнительного тела в семействе два параметра Отметка1, Отметка2 на привязку снизу и сверху и для перенумерации указывайте необходимую отметку в зависимости от расположения(например, -3000, 2000) так, чтобы если на разных этажах имеются похожие элементы, не появлялись на текущем плане. Согласен, конечно, что вариант не сильно удобный.

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

    Доброе утро! Андрей, попробуйте вот так. Заменил перед тем в семействе фундамента параметр длины фундамента – поставил по экземпляру (у вас все по типу были). И там также надо посмотреть, не на каждом повороте линий у вас корректно поворачиваются фундаменты.

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

    Добрый вечер! Пользуйтесь в процессе поиска методом dir().
    Пример: пишите в скрипте на выходе
    OUT = dir(S) потом посмотрели какие параметры имеются в составе
    вашего S (Щит22 в данном случае). Выбрали параметр ,прописали в скрипте например
    a = S.ElectricalSystem (если таковой имеется в dir, те методы или свойства, которых там нет выдадут ошибку, как скорее всего у вас и видно). Дальше посмотрели OUT = dir(a) что в списке дальше выпадает и продолжаете поиски. Также не забываем проверять что мы фактически получаем, комментируем #OUT = dir(a) и ниже пишем OUT = a. Иногда необходимо бывает добавить в конце свойства скобки, вот так a = S.ElectricalSystem(), смотря какие характеристики у данных свойств и методов. Успехов!

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

    Да, правильно говорите, это ручной “ревитовский” способ, немного автоматизированный с помощью нода FamilyType.Duplicate на динамо.

    А какая дальнейшая цель имения возможности создавать типоразмеры?

    #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]

Просмотр 15 сообщений - с 1 по 15 (из 32 всего)