Как создать балочную систему посредством Python_а

Главная Форумы Задать вопрос Как создать балочную систему посредством Python_а

В этой теме 3 ответа, 2 участника, последнее обновление  Анатолий 1 неделя, 2 дн. назад.

Просмотр 4 сообщений - с 1 по 4 (из 4 всего)
  • Автор
    Сообщения
  • #7159 Score: 0

    Анатолий
    Участник
    5 pts

    Добрый день, друзья! Обращаюсь к профессионалам. Попытался поискать возможность создания балочной ситемы в ревите посредством динамо, но, увы, подходящего нода не нашел, единственный вариант – создать балочную систему с помощью питона, в ревит апи нашел четыре метода, но знаний для правильной прописи (синтаксиса) всех необходимых вводных даных, к сожалению, не хватает. Понимаю, что прошу, возможно, немало, потому, если у кого будет возможность и желание поделиться мыслями, большая благодарность! Спасибо также Хасану Мамаеву за урок по созданию развертки крыши, из которого использовал некоторые коды питона.

    Файлик динамо https://drive.google.com/open?id=1ynaEvYXzQjQG1PDLh2ab4Qg-j27zgUkL

    #7165 Score: 0

    Анатолий
    Участник
    5 pts

    Возник вопрос по Revit API. При создании балочной системы используется четыре метода Create, но по умолчанию питон подхватывает первый, в котором надо вводить третье по счету данное Sketch Plane, это понял из того, что пытался подавать на вход данные третьего метода, в котором указывается level. Выдает ошибку и запрашивает SketchPlane. Где здесь подводный камень, что надо уточнять питону, чтобы он понял что мне нужно?

    #7192 Score: 2

    ИваСерж
    Модератор
    46 pts

    1. Методы из АПИ выбрать напрямую нельзя. “Выбор” по нормальному, называется “перезагрузка метода”. работает так: в метод по очереди запихивается объект. Если первый метод отработал с ошибкой – объект запихивается во второй метод. И так до тех пор, пока что-то не отработает. Если ни один метод не отработал правильно – выдается ошибка.

    2. Из п.1 следует, что для начала нужно привести в порядок объекты, которые подаем в метод. В приведенном на скрине скрипте я сразу вижу ошибки в типах данных, которые подаются в метод. Каждую из ошибок надо рассматривать отдельно и очень внимательно.
    2.1 список polycurve должен быть не списком, а коллекцией из .Net Я тут недавно писал о том, как преобразовать список в коллекцию.
    2.2 Level – прошу не забывать, что на входе в нод залетает “Динамовский” объект. Его надо развернуть. Для получения “чистого” объекта применяем UnwrapElement
    2.3 direct – а вот тут не знаю, что на вводе (надо смотреть скрипт). Скорее всего на вводе объект Point, а метод кушает объект ХYZ (оказывается они разные точка и этот ХУЗ не одно и то же.) . Используем банальное преобразование  ХYZ(Point.X, Point.Y, Point.Z).

    Вывод. Надо привести в порядок объекты, которые подаем в метод. Скорее всего, и дальше будут какие-то ошибки, но прежде всего надо решить очевидные проблемы.

    #7230 Score: 0

    Анатолий
    Участник
    5 pts

    Огромная благодарность, Серж! Натолкнули на нужные мысли, частично желаемое получилось, то есть создать балочную систему, не хватает только времени посидеть, разобраться полностью и написать ответ как все получилось, был загружен работой. Ошибка моя была в п. 2.2, когда анвропнул уровень, все заработало, на вводе direct можно подавать как в примере RevitAPI “0”, только тогда балочная система создается на отметке 0 данного уровня, а так вся загвоздка остается в этом пункте.

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

Для ответа в этой теме необходимо авторизоваться.