воскресенье, 5 апреля 2015 г.

Семейства для армирования - часть 1

По многочисленным просьбам начинаю серию статей по созданию семейств для армирования, попадающих в одну спецификацию со стандартной арматурой.

Это примерно то, о чем я рассказывал в своем выступлении на Autodesk University, но не совсем :) А в итоге получим что-то такое:



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




Часть 1  - предыстория


В докладе на AU я говорил про основную проблему метода, который я предлагал
При использовании "Спецификации по нескольким категориям" нет возможности вывести в спецификацию параметры, специфичные для определенной категории. Я делал семейства арматуры в категории "Соединения несущих конструкций", и в спецификацию не мог вытащить "Количество" - системный параметр "Несущей арматуры".

Я предложил создать общий параметр "КоличествоМассива", назначить его "Несущей арматуре" и выводить в спецификацию его, азначение "Количество" вписывать вручную. Позже на том же AU товарищи Коцарь и Лобанов помогли создать скрипт на Dynamo, который делал бы это автоматически.



Но решение все равно было тяжеловесным - скрипт нужно было запускать вручную (автоматическое выполнение некорректно работало при совместной работе), нужно было создавать слишком много дополнительных параметров... Но и с таким способом работы мы сделали пару проектов.

Но уже скоро я убедился, что нет ничего полезнее коллективного разума и обмена идеями. Никогда не бойтесь делиться информацией! Дружное сообщество пользователей - то, что отличает Revit от конкурентов!

А все просто - в ходе обсуждения на dwg.ru господин VadimS7 напомнил одну идею, о которой слышал давно, но не думал, что она окажется так полезна в нашей ситуации. Архитекторы на форуме Борисова обсуждали возможность создания загружаемых семейств лестниц (конечно, эта категория недоступна при выборе категории семейства).
Был найден способ с использованием экспорта в IFC, описанный в одном англоязычном блоге.

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

Часть 2 - хитрости в IFC

Идея в том, что во время экспорта в IFC все объекты превращаются в "Контекстные модели" соответствующей категории.

В Revit 2015 UR7 почему-то все нижеописанное сделать не получилось, так что пробуйте Ревит без обновлений или версию 2014.

Создаю любую стенку и в ней - один арматурный стержень, тоже любой:


Экспортирую это дело в формат IFC:

Сохраняю файл куда-нибудь.

Открываю этот IFC-файл :



Удалю стенку, и что я вижу? Арматура превратилась в "Контекстную модель" категории "Несущая арматура"!



Теперь надо как-то превратить контекстное семейство в загружаемое.


Часть 3 - Превращаем контекстное семейство в загружаемое

Конечно, все справки и руководства говорят нам, кто контекстное семейство существует только в одном проекте и не может переходить из проекта в проект... Но когда нас это останавливало? :)
Способ превращения контекстного семейства тоже давно известен, и я просто продублирую еще раз.

Выделите арматуру и зайдите в "Контекстное редактирование":

Выберите элемент выдавливания и создайте группу:


Выберите группу, зайти Файл - Сохранить как - Библиотека - Группа:


Не меняйте в окне никаких настроек, сохраните файл куда-нибудь. Если все сделано правильно - в папке будет создан rfa-файл с именем, совпадающим с именем группы:


Часть 4 - Что дальше?

Проверим, что это за странный файл получился! Открываю и захожу в "Категорию семейства":


"Антураж"? Это что еще такое?
Хотя, ничего удивительного - ведь в списке нет категории "Несущая арматура", и отображается просто первое, что есть в списке. Если щелкнуть на "Антураж", будет видно, что доступные опции изменились - только не забудьте после этого нажать "Отмена", иначе вернуть категорию обратно будет невозможно :)

Удалю в семействе тот артефакт-стержень и нарисую что-нибудь:
Загружаю в проект - и получаю семейство в категории "Несущая арматура":


Можно даже сделать спецификацию по категории "Несущая арматура" и проверить, попадает ли оно туда:

Все сваливается в одну спецификацию, отлично! Как это применить - разберем чуть позже, либо просто читайте дальше ту тему на dwg.

Качайте семейство ifc-арматуры с гугл-диска.

Удачи!

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

  1. Спасибо за хорошую идею!!! В ревите столько непонятных и ненужных ограничений, приходиться извращаться обходя эти ограничения. Главное, чтобы в ревите 2016 версии и последующих лавочку не прикрыли.

    ОтветитьУдалить
    Ответы
    1. без ограничений получился бы архикад

      Удалить
  2. При использовании таких семейств у меня в проекте возникла ошибка следующего плана http://revitcity.ru/index.php?option=com_easydiscuss&view=post&id=8577

    ОтветитьУдалить
    Ответы
    1. Хм, проверял на разных машинах и разных версиях - работало без проблем. С такой проблемой сталкивались по другой причине, во время обновления с 2014 до 2015, а ошибка перестала появляться после установки Update Release 7.
      http://knowledge.autodesk.com/support/revit-products/downloads/caas/downloads/content/autodesk-revit-2015-update-release-7.html

      Удалить
  3. Добрый день.
    Коллеги, пытался сделать каркас из 3х элементов разного диаметра - 3 стержня 10й, 2 стержня 12й и хомуты 8й. Остановился на проблеме - в самом семействе для параметра не работают экземпляры, т.е. сделать разноразмерные элементы с одним параметром, по которому все бы впоследствии хорошо сортировалось в сп-и, не получилось. Помучился, сделал типом параметр для каждого диаметра, и потом загнал их в сп-ю - так пришлось их же добавлять в абсолютно каждое семейство, которое есть в проекте, и дописывать кучу if, чтобы в итоге получить значения: d6 - столько-то, d8 - столько-то.
    Может быть подскажете, что я делал не так? Может быть, есть какой-то способ извлечь из одного семейства разные значения для одного параметра?

    ОтветитьУдалить
    Ответы
    1. Что-то не очень понял проблему. Вы смотрели часть 2 и 3? http://weandrevit.blogspot.ru/2015/04/2.html

      Удалить
    2. ... - d 10
      . . - d 12

      Сверху точками обозначил каркас из стержней разного диаметра в одном семействе. Всего стержней, допустим, 5 - находятся в одном семействе, но имеют разный диаметр. Возможно их привязать к одному параметру, и его включить в сп-ю? Только именно к одному, а не создавать d1, d2 и т.д.

      Удалить
    3. Вы хотите, чтобы в семействе каркаса был один параметр, но чтобы в одни стержни передавалось одно значение, а в другие - другое? Вы как это вообще представляете?

      Удалить
    4. Да, хотел так.
      Но сделать 2 экземпляра одного параметра не получилось ни в самом семействе, ни подгружая в семейство составные стрежни отдельными семействами.

      Удалить
    5. Что такое "экземпляры параметра"? У параметра не может быть экземпляров, это параметр

      Скиньте семейство мне на почту

      Удалить
  4. Супер. Везде нужна смекалка.

    ОтветитьУдалить