Изменение параметров семейства

Главная Форумы Python Помогите с питон кодом Изменение параметров семейства

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

    Добрый день! Друзья, бьюсь как рыба об лед. Прошу помочь мне правильно сделать выборку параметров семейства через Python  с подальшей возможностью их изменения. Уроки штудирую, но результата пока мало, самое важное прописать не удается.

    https://yadi.sk/d/qxm-O2JGuQsbQ

    https://yadi.sk/d/iWN5P9wOuQsmX

     

    #4276 Score: 0
    Legantmar
    Хранитель
    473 pts

    параметра “Группа модели” у данных элементов нет.
    а как ты создал параметр “Довжина текст” ?

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

    Параметр “Довжина текст” был создан с помощью спецификации. Не подскажешь как мне правильно добраться к другим параметрам семейства с помощью  питона? Поэксперементировал бы потом.

    #4278 Score: 0
    Legantmar
    Хранитель
    473 pts

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

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

    Я понял, большое спасибо за уделенное внимание, Антон! Очень хорошая и правильная идея. Получается, системные параметры (“Группа модели” и прочие), которые не видно через стандартный нод динамо и питон не увидит? А то я в розовых очках смотрел на всесильность програмного Pythonа))

    #4280 Score: 0
    Legantmar
    Хранитель
    473 pts

    я ж выше написал, что такого параметра не существует в данном семействе (или экземплярах)

    далее у тебя три пути: налево пойти, направо или в камень ))
    1) используй другие доступные параметры, например “Комментарии”
    2) создай необходимый тебе параметр (также как ты создал “Довжина текст”), например с помощью спецификации (или как ты это сделал)
    3)  попробуй разобраться со скриптом Сергея Кривой http://dynamobim.ru/cmdownloads/пакетное-добавление-параметров-из-excel/  (как раз в python как ты и хотел) )))

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

    Да, спасибо,круто ответил, очень понравилось)) вот в камень, по ходу – будет верх пилотажа, что можно сделать из этой ситуации и просто таки завораживает код питона, будем изучать его магические чары))

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

    Да, я бы успокоился, наверное, в поиске оптимального варианта, но память о где-то просмотренном все же возможном варианте выборки не оставила надежды и нашелся тот же ролик (№19) Алексея Лобанова, где он использовал параметры семейства (насколько я понял, это все параметры типа семейства), которые стандартные ноды динамо не видят.  Дальше только знаний не хватает вытащить Symbol.get_Parameter(“Группа модели”).AsString() отдельно, чтобы с ним работать…

    import clr
    clr.AddReference(‘RevitAPI’)
    from Autodesk.Revit.DB import *
    clr.AddReference(‘System.Core’)
    import System
    clr.ImportExtensions(System.Linq)
    list=IN[0]
    OUT=list.Where(lambda x: UnwrapElement(x).Symbol.get_Parameter(“Группа модели”).AsString()==UnwrapElement(IN[1]))

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

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

    #4310 Score: 0
    Legantmar
    Хранитель
    473 pts

    Молодец!
    Если работаешь с балочной системой, то видимо нужно ставить нод FamilyInstanse.Type, чтобы добраться до каждого элемента.
    Ты же так и делал, получая параметры “b” и “h”.
    Если ты задачу выполнил, то при чем тут я и тем более наброска на питоне )))

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

    Добро, и на том спасибо)) Буду дальше пытаться еще более скомпонировать скрипт, переводя его в питон по мере изучения, ты прав, надо самому дорогу пробивать! Больше изучаешь – больше опыта. Просто пока не получается добраться до изменения параметров семейства через питон, не пойму алгоритма, но ничего, даст Бог, всему научимся! Все-таки огромная разница 10050 нодов или несколько насыщеных скриптов). Коли сделаю, выложу, может еще кому пригодится, для меня эта задача насущная. Еще раз благодарю за подсказки!

    #4312 Score: 0
    Legantmar
    Хранитель
    473 pts

    я рад, что ты настойчиво учишься, молодец!
    и еще больше буду рад, если ты будешь делиться своими знаниями и наработками.

    для примера,
    вот один из моих первых скриптов https://yadi.sk/i/hci–8FHuUpAo
    вот один из последних https://www.youtube.com/watch?v=gplQvCgTMXY

    кроме красоты (один непонятный нод python), здесь большая головная боль для новичков, т.к. не каждый сможет сходу разобраться в структуре его кода https://yadi.sk/i/MqSuj_9HuUqQo

    у тебя меньше сотни нодов, ты легко можешь  проанализировать и поправить любой фрагмент, но учить python и revit api конечно нужно для большего функционала и возможностей.

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

    Согласен, код питона с последних скриптов – будто тебя высадили в центре лабиринта и дали сто нарезанных метровых ниток, только когда свяжешь и пройдешь с одной целой (знаниями) по всем комнатам(параметрам), будет OUT в конце тоннеля) Но главное понять основные принципы, порядок взаимодействия и нюансы и может все будет не так и страшно ( в утешение себе говорю, да и думаю так) Тем более, действительно, несколько лет назад увлекся самим ревитом и возвращаться в свой довоенный уровень знания автокада уже было никакого желания, так и сейчас, без облегчающего жизнь функционала динамо и питона не охота заниматься просто ревитом, все-таки человек выбирает наилуший и кратчайший путь к результату, пусть, как бы в начале не было трудно) Интересно, что будет такими стремительно развивающимися темпами дальше)

Просмотр 13 сообщений - с 1 по 13 (из 13 всего)
  • Для ответа в этой теме необходимо авторизоваться.