Autodesk University 2015

Вот и снова осень, а значит — скоро начнется очередной AURU. Многие с нетерпением ждут начала — ведь это уникальное мероприятие: где еще можно одновременно и в одном месте узнать и увидеть столько полезного?

Но… Если кто еще не в курсе — формат мероприятия в этом году поменялся. В «живом» режиме будет проводиться только первый день ориентированный на руководителей, и цена участия — 10тр — явно не по карману обычного человека. Третий день будет проводиться в разных городах, и пока еще непонятно, как именно это будет выглядеть.
Второй день ориентирован как раз на специалистов, но проводиться он будет только в онлайн-режиме. Цитирую:

Для представителей московских организаций мероприятие будет проводиться в формате съемок в прямом эфире: будет организован диалог между Вами и модератором (технический специалист от Autodesk либо Активист Сообщества пользователей Autodesk). Трансляция будет проходить в Интернет в реальном времени.

То есть, главное, ради чего я участвовал в AU — возможность встретиться и обменяться идеями  с единомышленниками — теперь отсутствует. Не очень понимаю, что изменится, если я просто запишу то же видео и выложу здесь на блоге.

Что думаете по этому поводу?

Линия границы грунта, сварки, шва бетонирования

Обычное дело — вам надо нарисовать сложную линию, например, границу грунта:

В Автокаде просто — есть библиотеки стилей линий. Как сделать такое в Ревите?
Конечно, не все так радужно, но такие линии можно создать без особых проблем с помощью «Последовательности элементов узлов». Сейчас все расскажу :)

Скачать примеры — здесь: https://goo.gl/OCzS4b

Читать далее «Линия границы грунта, сварки, шва бетонирования»

Скрытие ненужных разрезов

Известная тема: создали вы план, а там —

Грусть-печаль! Ревит, следуя своей логике, отображает все элементы, которые попадают в сечение, — и, конечно, все разрезы.
Конечно, те, кто знают про великую кнопку «Скрыть на виде — Элемент», начнут тыкать и скрывать ненужные разрезы вручную, да еще и не забывать делать это при появлении новых разрезов, да на всех видах!
Но мы, конечно, этим заниматься будем. Итак, как скрыть ненужные разрезы? Читать далее «Скрытие ненужных разрезов»

Печать А2 на принтере А3

В комментариях к теме про использование Dynamo для печати мне задали вопрос: как распечатать в Ревите лист формата А2, если есть только принтер А3?
В Автокаде с этим просто — можно выделить рамкой половину листа и напечатать, Ревит же не имеет такой возможности.

Будет микросообщение: дел на две минуты, но все-таки надо рассказать :)

Читать далее «Печать А2 на принтере А3»

Dynamo и печать из Revit

Мне очень интересно, как Автодеск вообще представляет себе печать листов разных форматов из Revit. Никакого аналога автокадовской «Пакетной печати» нет, фактически приходится вручную определять формат каждого листа и отправлять на нужный принтер — как в Autocad 2000!

Правильно созданное семейство автоматически указывает правильное название формата в углу листа, но толку-то — этот параметр нельзя использовать ни в окне печати, ни в спецификации листов.

Все мои знакомые перед печатью просматривают листы, записывают форматы на бумажку, потом выбирают эти листы во время печати, либо экспортируют в DWF и печатают через Design Review (способ тоже так себе).

Ну уж нет, тут точно надо что-то делать.

ВНИМАНИЕ ЧИТАТЕЛЯМ: для печати мы уже изобрели более совершенный способ, читайте вот здесь.

Читать далее «Dynamo и печать из Revit»

Спецификация металлопроката по ГОСТ

При обсуждении моего шаблона для КЖ и КМ многие указывали на то, что техническая спецификация металлопроката выполнена не по ГОСТ:

Конечно, я в курсе проблемы, и ничего не скрывал — наоборот, сразу сказал, что в шаблоне есть элементы, не соответствующие нормативам.
Но та спецификация, которую я предложил в шаблоне, — полностью автоматическая, не требует ручной доработки и сводит вероятность ошибки к минимуму, а то приложение к ГОСТ — «Рекомендуемое», и это извечное нытье «а вот у вас сделано не таа-ак» тут не имеет фундамента.

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

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

Поэтому я немного напрягся и сделал спецификацию, максимально приближенную к ГОСТ:

 

(ну, «немного напрягся» — не совсем то слово. Получилось одно из самых сложных семейств, что я когда-либо делал — 4 уровня вложенности!)
Как работает — читайте ниже.

Шаблон для КЖ и КМ

Шаблон настроен на решение типовых задач и содержит всё необходимое для быстрого начала работы, доступен для свободного скачивания и использования. Позволяет выполнять в среде Revit все задачи разделов, в том числе армирование и узлы КМ. Реализован полностью автоматический подсчет всех спецификаций.
По количеству решений и настроек шаблон превосходит как имеющиеся в сети бесплатные шаблоны, так и платные комплекты адаптации.

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

Файл создан «с нуля» специально для проекта «WeAndRevit», на полную настройку затрачено более 100 часов времени. Шаблон будет дополняться; все семейства и спецификации, которые я буду выкладывать в будущем, будут адаптированы к данному шаблону.

Ссылка на скачивание: яндекс-диск, гугл-диск (текущая версия 1.2). Версия Revit — 2015, использованный шрифт — mipgost.

Внимание! Данный шаблон устарел и не поддерживается. Актуальный шаблон для Revit 2017 доступен по ссылке.

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

UPD: видео с Autodesk University, где я рассказываю про некоторые детали шаблона:

UPD: дополнение шаблона 1.6: качать здесь.

Больше информации — ниже.

Читать далее «Шаблон для КЖ и КМ»

Спецификация арматуры по ГОСТ

О, сколько копий было сломано на эту тему! О, этот ревит, не умеющий делать элементарные спецификации!

Реально ли получить что-то такое?

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

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

Итак, как сделать такое в Ревите? :)

Читать далее «Спецификация арматуры по ГОСТ»

Видео — создание семейства приямка

Сделал вот вчера на работе приямок, в «типовой модели на основе перекрытия». Семейство простое, но работает интересно — решил повторить действия, записать видео и выложить сюда.

Что есть интересного на видео:

  • принцип работы семейства «на основе пола/перекрытия»
  • установка элементов на именованные рабочие плоскости
  • использование в формулах «параметра для отчета»
  • использованием параметра длины с отрицательным значением
  • работа с элементом «переход» и «пустотными формами»

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

Продолжаю цикл статей о создании семейств арматуры, попадающих в одну спецификацию со стандартной арматурой.
В первой части мы создали rfa-семейство в категории «Несущая арматура», а во второй части — разобрали принцип создания спецификации, выводящей нужные параметры.

В этой части рассмотрим принцип создания остальных параметров, необходимых нам в спецификации — названия, массы, количества.

Часть 1 — Наименование

Самое простое, что часто рекомендуют — просто выводить в столбец «Имя типа». Неплохой способ, вот только у нас может быть два типа арматуры «12 А400» — например, если это нижняя и верхняя арматура плиты. Если в спецификации будет написано «12 А400 верхняя» — это нам явно не подойдет.
Другой способ — создать текстовый параметр, по «типу», и вручную добавить его к типам арматуры и семейств. Этот способ мне тоже не нравится — он увеличивает вероятность ошибки. Есть вероятность того, что человек создаст новый типоразмер, но забудет изменить параметр наименования — с не очень приятными последствиями.
Я предпочитаю потратить больше сил, но сделать так, чтобы система была устойчива к ошибкам. Параметр наименования — «12 А400» — будем вычислять при помощи формулы, точнее, цепочки из if-ов.
Правда, еще один параметр понадобится добавить — для класса арматуры. Сделаем также, как я описывал в статье про ведомость расхода стали, но будем использовать общий параметр.

Создаю общий параметр «Класс арматуры», тип данных — целое:

Добавляю этот параметр как параметр проекта, по типу, для категории «Несущая арматура», прописываю для каждого типа арматуры нужный класс.

Добавляю этот же параметр для семейства арматуры:

Загружаю семейство в проект. Любознательный читатель наверняка подумает — «Интересно, не будут ли конфликтовать параметры проекта и семейства — ведь это один и тот же общий параметр?». Конфликтовать не будут, но кое-что интересное будет происходить — расскажу как-нибудь :)

Добавляю в спецификацию арматуры параметр «АрмКласс». Должно получиться что-то такое:

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

Создаю расчетный параметр «НаименованиеРасчетное», тип данных — текст. Напишу формулу, подставляющую нужный текст в зависимости от параметров «АрмКласс» и «ДиаметрРасчетный»:

if(and(АрмКласс = 240, ДиаметрРасчетный = 6 мм), «Ø6 А240», if(and(АрмКласс = 240, ДиаметрРасчетный = 8 мм), «Ø8 А240», if(and(АрмКласс = 240, ДиаметрРасчетный = 10 мм), «Ø10 А240», if(and(АрмКласс = 240, ДиаметрРасчетный = 12 мм), «Ø12 А240», if(and(АрмКласс = 240, ДиаметрРасчетный = 14 мм), «Ø14 А240», if(and(АрмКласс = 240, ДиаметрРасчетный = 16 мм), «Ø16 А240», if(and(АрмКласс = 240, ДиаметрРасчетный = 18 мм), «Ø18 А240», if(and(АрмКласс = 240, ДиаметрРасчетный = 20 мм), «Ø20 А240», if(and(АрмКласс = 400, ДиаметрРасчетный = 10 мм), «Ø10 А400», if(and(АрмКласс = 400, ДиаметрРасчетный = 12 мм), «Ø12 А400», if(and(АрмКласс = 400, ДиаметрРасчетный = 14 мм), «Ø14 А400», if(and(АрмКласс = 400, ДиаметрРасчетный = 16 мм), «Ø16 А400», if(and(АрмКласс = 400, ДиаметрРасчетный = 18 мм), «Ø18 А400», if(and(АрмКласс = 400, ДиаметрРасчетный = 20 мм), «Ø20 А400», if(and(АрмКласс = 400, ДиаметрРасчетный = 22 мм), «Ø22 А400», if(and(АрмКласс = 400, ДиаметрРасчетный = 25 мм), «Ø25 А400», if(and(АрмКласс = 400, ДиаметрРасчетный = 32 мм), «Ø32 А400», if(and(АрмКласс = 400, ДиаметрРасчетный = 40 мм), «Ø40 А400», «Проверьте формулу»))))))))))))))))))

Выглядит страшно, но работает — как из пушки. Для более удобного создания таких формул можно воспользоваться Notepad++ или программкой от Романа Митина.

Должно получиться что-то такое:

Часть 2 — Масса

Обратите внимание — тут я уже создал параметр расчетной длины, по тому же принципу, что и для диаметра — думаю, разберетесь. Длину и диаметр будем использовать для подсчета массы.

Насчет принципа подсчета — опять же, не претендую на истину. Может быть, у вас есть свои способы подсчета массы. Я пользуюсь теми же if-цепочками — тем же способом, что описывал в статье про ведомость расхода стали, но с использованием хитрого округления.

Создаю расчетный параметр «МассПогМетра», в качестве условия использую «ДиаметрРасчетный»:

if(ДиаметрРасчетный = 6 мм, 0.222, if(ДиаметрРасчетный = 8 мм, 0.395, if(ДиаметрРасчетный = 10 мм, 0.617, if(ДиаметрРасчетный = 12 мм, 0.888, if(ДиаметрРасчетный = 14 мм, 1.208, if(ДиаметрРасчетный = 16 мм, 1.578, if(ДиаметрРасчетный = 18 мм, 1.998, if(ДиаметрРасчетный = 20 мм, 2.465, if(ДиаметрРасчетный = 22 мм, 2.984, if(ДиаметрРасчетный = 25 мм, 3.85, if(ДиаметрРасчетный = 28 мм, 4.83, if(ДиаметрРасчетный = 32 мм, 6.31, if(ДиаметрРасчетный = 36 мм, 7.99, if(ДиаметрРасчетный = 40 мм, 9.865, 0))))))))))))))

Создаю параметр «МассаРасчетная», вычисляю массу стержня через длину и массу погонного метра:

if((МассаПогМетра * ДлинаРасчетная) < 1000 мм, 0.01 * roundup(МассаПогМетра * ДлинаРасчетная / 10 мм), 0.1 * roundup(МассаПогМетра * ДлинаРасчетная / 100 мм))

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

Часть 3 — Количество

Тот самый столбец, который задавал нам проблем — и сейчас мы его победим!

Во первых, обратим внимание, что в обычной спецификации арматуры мы используем не параметр «Число», а «Количество» — оно и понятно, ведь объект массива арматуры может быть один, а стержней внутри него — несколько. Построим наши семейства по тому же принципу.

Создаю обычное семейство в «Обобщенной модели» с профилем арматуры, который я буду размножать массивом. Это семейство не следует делать общим! Оно нам нужно только для геометрии:

Загружаю этот хомут в свое семейство категории «Несущая арматура». Не общие семейства, как мы помним, при такой загрузке приобретают в проекте свойства «Родительского» семейства, так что все будет управляться вместе.

Создам общий параметр «АрмКоличество», типа «Целое». Добавлю его к семейству. Создаю массив хомутов с использованием этого параметра:

А вот это семейство уже можно сделать «Общим», если планируется подгружать его в какие-то другие семейства-сборки. Кстати, можно делать каждый стержень и отдельным общим семейством, тогда в параметр «АрмКоличество» надо просто вписывать единицу.

Загружаем семейство в проект. Обратите мнение, что из-за того, что отдельные хомуты — не общие семейства, мы не сможем выбрать их при помощи tab.

 Вывожу в спецификацию параметр «АрмКоличество». По тому же принципу, что и для «Диаметра», создаю параметр «КоличествоРасчетное»:

КоличествоРасчетное = if(АрмВыполненаСемейством, АрмКоличество, Количество)

Ну вот у нас есть все основные параметры для того, чтобы собрать спецификацию арматуры. Нужно скрыть-передвинуть столбцы, настроить границы и получить что-то такое:

Тут уже дело техники, расскажу как-нибудь в следующий раз :)

Удачи!