пропадают элементы

Главная Форумы Задать вопрос пропадают элементы

В этой теме 6 ответов, 3 участника, последнее обновление  Legantmar 1 год, 11 мес. назад.

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

    Юлия
    Участник

    На мой взгляд, странность))

    С помощью динамо расставляю семейства в нужных мне местах, затем меняю немного входные параметры и опять расставляю семейства с помощью скрипта, но почему то ранее созданные элементы пропадают…

    подскажите, пожалуйста, что можно сделать

    #4843 Score: 4

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

    Вот прямо сегодня столкнулся с такой проблемой. Подробней рассказал Лобанов в своих уроках

    https://youtu.be/XIGpuP23k9k?list=PLVCDzVIlOckHsZcqkq3DmzdGcq2503l1G&t=1175

    Решение: создавать элементы не средствами Динамо, с через питон.
    Я использовал команду doc.Create.NewFamilyinstance. Тогда семейства создаются без привязки к Динамо. Если нужно, могу подсказать как работать с NewFamilyinstance.

    p.s.

    import Revit
    clr.ImportExtensions(Revit.Elements)

    Element.ToDSType(False) – если мы создали элемент в Dynamo (и его не было в Revit) – Dynamo будет отслеживать. Т.е. при очередном запуске старый элемент будет удаляться и создаваться новый!

    Element.ToDSType(True) – Dynamo не будет отслеживать и при каждом запуске будут создаваться новые элементы, старые удаляться не будут.

     

    #4848 Score: 0

    Юлия
    Участник

    Спасибо большое! попробую все способы)

    буду рада подсказке про  NewFamilyinstance

    #4849 Score: 2

    Legantmar
    Хранитель
    451 pts

    вместо нода Family Instance by Point
    нужно создать нод python script:

    с таким кодом (обращаю ваше внимание на строчку 27):

    #4850 Score: 0

    Юлия
    Участник

    Спасибо!

    #4851 Score: 0

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

    Вдогонку.
    Вчера тестил свой скрипт. Оказалось, что даже при использовании Element.ToDSType(True) последний элемент сидит в памяти Динамо.
    У меня получилась такая последовательность дейтсвий:
    1 выполнение скрипта. Устанавливается Семейсвто 1 по координатам 1. Семейство 1 и его координаты закладываются в память.
    2 последующие выполнения скрипта.- ставится Семейство из памяти, фактически дублируется. Скрип пересчитывается, устанавливается Семейство 2, семейство 2 записывается в память.

    Когда я 5 раз запустил скрип, то вместо ожидаемых 5 розеток получил 9 розеток. 4*2 + последняя не продублировавшаяся.

    Пришлось вспомнить о перезагрузке скрипта с помощью нода ПроРуБим ForcedChildrensEval. Назначаю в питоне переменную равную значению из ForcedChildrensEval и запускаю установку семейств по этому значению.
    С программной точки зрения, когда скриптпытается поставить дубль из памяти, его принудительно обновляет ForcedChildrensEval и поставить дубль не дает. После обновления семейство ставится в штатном режиме.
    Код примера на питоне изменил так:

    В Динамо выглядит так

    #4852 Score: 0

    Legantmar
    Хранитель
    451 pts

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

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

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