Анатолий

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

Просмотр 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

    #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 л)

    #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

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