Анатолий

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

Просмотр 15 сообщений - с 1 по 15 (из 32 всего)
  • Автор
    Сообщения
  • #8257 Score: 3
    Анатолий
    Участник
    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 элементов, потому что в файле, который отказался под рукой не все стены имели корректную длину/высоту.

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

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

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

    Александр, у нас просто разница в версиях динамо. Квадратные скобки работают начиная с версии 2.0. При том, по скрипту у вас, как видете, функция zip обрезает количество получаемых результатов по длине меньшего входящего списка.

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

    Попытался сделать как-то так

    В чем суть? Достаем параметры номер квартиры, секция(корпус) и этаж (уровень). Для всех помещений внутри каждой квартиры параметр “номер квартиры” будет одинаковым, потому собираем в одну строчку три параметра и отбираем уникальные, получаемое количество записываем в новый параметр.

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

    Запишу, чтобы не забыть.
    import clr
    clr.AddReference("RevitNodes")
    import Revit
    family=IN[0] # на вход подаем семейство
    familyName=family.Name
    types = family.Types #получение всех типов семейства без подключения каких-либо библиотек
    types = Revit.Elements.Family.ByName(familyName).Types #получение всех типов семейства (по имени семейства) с библиотеками import clr/clr.AddReference("RevitNodes")/import Revit
    elements = []
    for type in types:
    elem = Revit.Elements.FamilyInstance.ByFamilyType(type) #получение всех экземпляров данного семейства (с теми же подключаемыми библиотеками)
    elements.append(elem)
    OUT = elements

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

    В посте #5863 Ренат показал как сделать транзакцию нодами, думаю, для вашей темы ответ должен быть актуальным.

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

    Позвольте ответить. Отступы, как написал Антон делаются клавишей Tab, что равняется 4-м пробелам, строго 4 пробела должно быть в следующей строке (можно также делать пробелом) после команд for door in doors: try: except: и так далее.

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

    Посмотрел. Максим, причина скорее всего в версии динамо (или ревита). Так понимаю, вы пытались скрипт запустить в последней 2019 версии. У меня тоже ошибку выдает. Пока вспомнил что да к чему, хорошо, что на заметку осталось сообщение о версии динамо 1.3.3. Исправление ошибки просто нужно искать в РевитАПИ..В динамо версии 2.0.1 и выше необходимо заменить нод Geometry.BoundingBox на Element.BoundingBox, но пока что скрипт у меня в 2019 версии не работает…
    Заработало, просто необходимо правильно выставлять глубину проецирования этого дополнительного “тела для скрипта”.

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

    Правильней было б.. СПАСИ-БО(Г)..)

    Извините за оффтоп, давно известная истина..)

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

    Добрый день! Не хочется флудить, я бы сказал, что тема просто не совсем изучена, мне лично таким не приходилось заниматься, был бы какой опыт, с радостью помог бы) лично у меня тоже такое в некоторых вопросах на форуме, но бывает позже и ответ получаю). Как вариант, можно спросить или поискать решения на зарубежном форуме, там много решений присутствует.

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

    Может и не в тему, но поделюсь также своими мыслями. Проблема действительно состоит в том, что в Ревите не нашлось пока нами (скорей всего нет) возможности растянуть текст по горизонтали, как в том же Word, например, это первое. Второе, что табуляцию возможно таки вставить в текст, возможно изменить ее длину (по умолчанию 8 пробелов), думаю, но главный вопрос стоит в том “Сколько пробелов необходимо?” Поскольку, как вы и писали в начале, питон все посчитал математически правильно, вот только длину текста необходимо измерять не len(i) или Length, необходимо знать длину(ширину) вставляемой строки текста, поскольку ширина символов “ж”,”л” и “(пробела)” отличаются и это мы видим с того же примера на вашей картинке, где количество символов во всех строчках одинаковое. Потому, мне кажется, на данный момент оптимальным действительно будет вариант, который вам предложил Сергей, где просто необходимо приблизительно высчитать пару точек ,по которым будут вставляться два массива текста.

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

    Тоже заинтересовала тема, спасибо Ренату, стало понятно. Для л/с в данном примере: л=0,001м3   1м=3,28084фута, 1м3=35,314667фут3 потому динамо выдает для 1 л/с=0,035314667. То есть окончательное значение разделяем на поправку (3,28084) в кубе и умножаем на 1000. (в 1 м3 1000 л)

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