четверг, 17 декабря 2015 г.

[Revit] Перенумерация листов в Revit с помощью Dynamo



Я думаю, что у каждого проектировщика появляется желание вставить в середину уже сформировавшегося альбома дополнительный лист, например, с узлами. Но вот не задача, приходиться перенумеровывать все листы заново начиная со вставленного листа. А хочется автоматом, как автокаде любимым макросом на vba в два клика мышки перенумеровать подшивку в 200 чертежей. В ревите поручим поставленную задачу Dynamo


Скрипт разбил на 4 функциональные группы
В первой получаю номера листов. Причём, необходимо учитывать, что номера "приходят строками" и для корректной сортировки в дальнейшем необходимо их преобразовать в числовой тип данных. В заключительном ноде создаю список из номеров листов и номеров элементов
 Во второй группе производим сортировку id номеров листов в соответствие, как мы их видим в проекте. Если же просто перенумеровать листы на данном этапе, то нумерация будет идти в соотвествие с фактическим номерами id листов по-порядку в порядке возрастания. А практически всегда получается, что порядок номеров в штампе не совпадает с порядком внутреннего id объектов ревита

В следующей группе скрипта перенумеровываем листы, но с номерами заведомо большими, чем те которые могут существовать в проекте. Это делается для того, чтобы не напороться на ошибку - "Номер листа уже существует".
  И наконец, нумеруем листы заново начиная с нужного нам номера.

В поставленной задаче использовался пайтон скрипт от Konrad K Sobon, немного правда пришлось его модифицировать, чтобы на выходе получать список элементов
Если кто-то пользуется сложной нумерацией в проекте КЖ1_1, КЖ1_2 и т.д., данный скрипт можно легко переделать. Передо мной такой задачи не стоит (один ревитовский файл - один альбом чертежей)
Как пользоваться:
  1.  Даём листу номер в порядке очерёдности за которым он должен идти, т.е. если должен идти за 4 листом, то 4.1 (см. картинку ниже)
  2. Запускаем скрипт на выполнение.

Результат работы можно скачать по ссылке: https://yadi.sk/d/rocQYKtuqoSsc

5 комментариев:

  1. Cпасибо Паш за источники. Это очень и очень радует.

    ОтветитьУдалить
    Ответы
    1. Не за что! Всегда рад поделиться. Кстати самая популярная статья блога)

      Удалить
  2. в 2017 ревите не работает данный скрипт - он вставленный лист с номером 1.1 делает последним и соот-но номер последний. Поправите?
    И еще момент: а если у меня листы разбиты на стадии проекта, т.е. Есть стадия П от 1 до 40 листов и есть стадия Р со своим списком 1-20. Как в этом случае данный скрипт будет себя вести? можно ли разделять по стадии?

    ОтветитьУдалить
    Ответы
    1. 1. Последний раз я его ещё в 16 ревите запускал. Сейчас, в принципе, в ревит не захожу, скажу откровенно - лень править
      2. Перенумерует всё вместе и перемешает в кучу. Скрипт элементарен и прост, и под ваши задачи легко адаптируеся - сортируем по префиксу-стадии, к примеру, и потом перенумеровываем. Так что советую разобраться
      В динамо редко чужие решений работают из коробки. Приходится зачастую перелапачивать под себя, учитывая зоопарк версий динамо и ревита

      Удалить