Dynamo: автоматизация армирования

Dynamo — платформа для визуального программирования, бесплатное дополнение для Autodesk Revit. В нем можно создать новые функции без написания сложного кода.

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

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

Для комфортного прохождения курса рекомендуется предварительно ознакомиться с теоретической частью «Dynamo: Продвинутый курс».

Длительность курса: 9 часов

 

Участники проекта

Назар Бурмистров – автор
Ольга Коршунова – координатор разработки
Анастасия Горда – обработка и публикация
Александр Высоцкий – общая координация, мотивация и поддержка

Назар Бурмистров

Кратко

Использую BIM-технологии с 2014 года, владею Revit, Dynamo и Navisworks. Имею профильное образование: в 2019 году окончил магистратуру СПбПУ (Политех), инженерно-строительный факультет по направлению автоматизации проектирования.

Компетенции

Продвинутый пользователь по Autodesk Revit и Navisworks.

Опыт:

  • разработки в Revit КЖ и КМ (моделирование узлов до болта);
  • разработки семейств и скриптов;
  • 3D-координации проектов многосекционных жилых комплексов, включающих 5 разделов (КР, АР, ОВ, ВК, ЭОМ).

Действующий BIM-координатор КР/АР.

В 2017 году успешно прошел конкурсный отбор по стипендиальной программе Erasmus+ и семестр обучался на английском языке за рубежом в Университете Страны Басков.

Хобби и личная информация

В свободное время много играю на электро-акустической гитаре. Зимой катаюсь на сноуборде. В свободные от гитары вечера читаю художественную или научно-популярную литературу.

Контакты

nb@bim.vc

Для BIM-специалистов: хотите стать известным, помочь людям и заработать?

Если вы можете что-то добавить к курсу или разработать свой материал по другой теме — будем рады сотрудничеству. Мы постоянно ищем новых авторов: это может быть как полноценный курс, так и небольшой блок в рамках существующего материала.

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

Разработка курсов и материалов оплачивается, гонорар в среднем составляет 50 000 — 100 000 руб. за курс.

 

Для компаний: брендирование материалов

Вы можете поддержать разработку бесплатных тренингов, доступных на сайте bim.vc. Партнёр финансово поддерживает разработку, а мы указываем компанию в качестве спонсора на сайте и добавляем логотип на каждый ролик курса. При этом Vysotskiy Consulting не получает прибыли с брендирования.

Это поможет компании-спонсору в нескольких направлениях:

— Широкая реклама компании как BIM-эксперта

— Социальная миссия, вклад в популяризацию BIM в России

— Формирование материалов для дальнейшего внутреннего обучения

Также возможно размещение видеокурсов по профильным темам.

 

По всем вопросам пишите на contact@bim.vc .

 

Исходные файлы

VC_Source_files

VC_Final_files

Введение

Введение.

Dynamo, видеокурс, BIM

Подготовка тренировочного файла

  • Какой шаблон подойдёт?
  • Какие пакеты нодов Dynamo должны быть предустановлены?
  • Где их скачать и как правильно установить?

Dynamo packages, пакеты нодов, армирование, Dynamo for Rebar, Structural Design, видеокурс, BIM

Прямые стержни. Одиночный

  • Как превратить линию модели в арматурный стержень?
  • Какие данные подаются на ввод?

Ноды:

Create.FromCurve, Select Model Element, Element.Geometry, Curve.Normal, RebarStyle, RebarBarType, RebarHookType, RebarHookOrientation

Прямые стержни. Армирование по траектории. Часть 1

Прямые стержни. Армирование по траектории. Часть 2

Прямые стержни. Армирование по траектории. Часть 3

Создание арматуры по выбранной траектории в несущей стене.

  • Как влияет направление построения стены?
  • Как влияет расположение внутренней/внешней грани стены?
  • Как выбрать правило компоновки арматурных стержней?
  • Как установить дополнительные стержни “в разбежку”?

Ноды:

PathReinforcement.CreateByCurveAndShapeCode, Select Model Element, Select Edge, RebarBarType, RebarShape, Integer Slider, Boolean

Прямые стержни. Получение набора стержней

Превращение армирования по траектории в набор стержней.

  • Можно ли удалить систему траекторий и получить арматуру в категории “Несущая арматура” через Dynamo?
  • Какая ключевая возможность будет при этом получена?

Ноды:

PathReinforcement.RemovePathReinforcementSystem, PathReinforcement.CreateByCurveAndShapeCode, Select Model Element, Select Edge, RebarBarType, RebarShape, Integer Slider, Boolean

Прямые стержни. Назначение отгибов армированию по траектории

Добавляем отгибы арматуре по траектории.

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

Ноды:

PathReinforcement.SetHooks, RebarHookType, Element.SetParameterByName, PathReinforcement.RemovePathReinforcementSystem, PathReinforcement.CreateByCurveAndShapeCode, Select Model Element, Select Edge, RebarBarType, RebarShape, Integer Slider, Boolean

Прямые стержни. Армирование по площади

Формируем армирование по площади в стенах просто выбирая конструкции.

  • Какие отличия от армирования стандартным инструментом?
  • Как сформировать арматуру разного направления в разных экземплярах армирования по площади?
  • Как быстро заармировать несколько стен?

Ноды:

AreaReinforcement.CreateBasedOnHost, Select Model Element, Select Model Elements, RebarBarType, Integer Slider

Гнутая арматура. Формирование отгибов. Часть 1

Формируем гнутую арматуру отгибами на примере П-образной детали.

  • Какое основное отличие на вводе от формирования прямого стержня?
  • Как заставить арматуру появиться внутри конструкции?

Ноды:

Create.FromCurve, Select Model Element, Element.Geometry, Curve.Normal, RebarStyle, RebarBarType, RebarHookType, RebarHookOrientation, Vector.ZAxis

Гнутая арматура. Формирование отгибов. Часть 2

Настраиваем геометрические параметры формируемой арматуры.

  • Как задать необходимые размеры?
  • Как решить основную “головную боль” при работе с арматурой?
  • Как скопировать нод из одного скрипта в другой?

Ноды:

Create.FromCurve, Select Model Element, Element.Geometry, Curve.Normal, RebarStyle, RebarBarType, RebarHookType, RebarHookOrientation, Vector.ZAxis

Гнутая арматура. Формирование по эскизу

Создание арматуры сложной формы по эскизу.

  • Какие правила построения линий эскиза?
  • Как из нескольких линий получить одну деталь арматуры, а не несколько одиночных стержней?

Ноды:

Create.FromCurves, List.Flatten, Select Model Elements, Element.Geometry, Curve.Normal, RebarStyle, RebarBarType, RebarHookType, RebarHookOrientation, Vector.ZAxis

Гнутая арматура. Через назначение другой формы

Создание арматуры сложной формы без предварительно нарисованного эскиза.

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

Ноды:

Create.SetRebarShapeId, RebarShape, Create.FromCurves, Select Model Elements, Element.Geometry, RebarStyle, RebarBarType, RebarHookType, RebarHookOrientation, Vector.ZAxis

Гнутая арматура. Хомут по грани

Создание хомута на выбранной грани.

  • Как на основе выбранной грани получить линии для эскиза хомута с заданным отступом внутрь от кромок?
  • Зачем сначала нужно сформировать замкнутый контур многоугольника?

Ноды:

Select Face, Surface.PerimeterCurves, Curve.StartPoint, Polygon.ByPoints, Curve.Offset, Geometry.Explode, Create.FromCurves, Select Model Element, Element.Geometry, RebarStyle, RebarBarType, RebarHookType, RebarHookOrientation, Vector.ZAxis

Другие полезные ноды. Часть 1

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

  • Как на основе выбранной грани получить линии для эскиза хомута с заданным отступом внутрь от кромок?
  • Что делать с “микронами” геометрических элементов?
  • Как показать арматуру телом на 3D виде?

Ноды:

Designs.StirrupShapeCurves, Create.SetSolidInView, Views, Select Face, Surface.PerimeterCurves, Curve.Length, Math.Round, List.Sort, Create.FromCurves, Select Model Element, Element.Geometry, RebarStyle, RebarBarType, RebarHookType, RebarHookOrientation, Vector.ZAxis

Другие полезные ноды. Часть 2

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

  • Как быстро получить линии эскиза проёма?
  • Как за несколько простых шагов получить из них линии-основы для создания обрамляющих арматурных стержней?
  • Возникающая на этом пути трудность и способ её решения.

Ноды:

Geometry.WindowDoorOpeningCharacteristics, Geometry.Translate, Curve.Offset, Polygon.ByPoints, Geometry.Explode, Curve.Simplify, Curve.ExtendStart, Curve.ExtendEnd, Vector.Reverse, Select Mode Elment, Vector.ZAxis

Восстановление формы

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

  • Как получить геометрию объекта из Revit?
  • Как быстро восстановить форму объекта, избавившись от вырезания?

Ноды:

Geometry.BoundingBox, BoundingBox.MaxPoint, BoundingBox.MinPoint, Element.GetParameterValueByName, Geometry.Translate, BoundingBox.ByCorners, BoundingBox.ToCuboid

Получение линий продольных стержней

Второй этап создания скрипта по армированию балки. Рассмотрен один из способов получения линий для создания арматурных стержней.

  • Как гарантированно заставить появляться стержни внутри балки?
  • Как размножить линии по вертикали?

Ноды:

GeometryExplode, Surface.PointAtParameter, List.SortByKey, List.MaximumItem, List.MinimumItem, Polygon.ByPoints, Curve.Offset, Curve.Simplyfy, Surface.PerimeterCurves, Curve.Length, Math.Round, Rebar.Shorten, Geometry.Translate

Получение линий массива хомутов

Третий этап создания скрипта по армированию балки. Рассмотрен один из способов получения линий для создания массива хомутов.

  • Как гарантированно заставить появляться хомуты внутри балки?
  • Как создать массив набора линий?

Ноды:

Surface.PointAtParameter, SurfaceArea, List.SortByKey, List.MaximumItem, Designs.StirrupShapeCurves, Curve.Offset, Vector.ByTwoPoins, Surface.PerimeterCurves, Curve.Length, Math.Round, Rebar.Shorten, Geometry.Translate

Создание арматуры

Преобразование геометрии dynamo в арматурные элементы модели.

  • Как подать на ввод нода “Create.FromCurves” массив геометрических данных?

Ноды:

RebarStyle, RebarBarType, RebarHookType, RebarHookOrientation, Vector.ZAxis, Create.FromCurve, Create.FromCurves

Оформление скрипта. Проигрыватель Dynamo

Заключительный важный этап создания скрипта.

  • Как сделать скрипт интуитивно понятным и удобным для пользователя?

Получение внешнего контура

Первый этап создания скрипта по армированию плиты П-образными стержнями по периметру. Вы узнаете один из способов получения внешнего контура плиты через Dynamo.

  • Как получить внешний контур плиты?
  • Как учесть обрамление проёмов плиты?

Ноды:

Element.Faces, Surface.PointAtParameter, ListSortByKey, List.LastItem, Surface.PerimeterCurves, Curve.PointAtParameter, Curve.NormalAtParameter, Geometry.Translate, Line.ByStartPointDirectionLength, Geometry.DoesIntersect, List.FilterByBoolMask

Формирование арматуры

Второй этап создания скрипта по армированию плиты П-образными стержнями по периметру.

  • Как быстро обрамить плиту по имеющемуся контуру?
  • Какая логика при подборе недостающей формы?

Ноды:

RebarBarType, RebarShape, PathReinforcement.CreateByCurveAndShapeCode, PathReinforcement.RemovePathReinforcementSystem

Нюансы размещения. Разрез

Последний этап создания скрипта по армированию плиты П-образными стержнями по периметру.

  • Как правильно разместить деталь и получить красивый узел с сохранением симметрии?

Ноды:

Element.SetParameterByName, Element.GetParameterValueByName, Properties.RebarHostCover

Получение геометрии

Рассмотрены основные нюансы первого этапа создания скрипта, полученные из практического опыта.

  • Как гарантированно получить общую геометрию плиты и стены?

Ноды:

Element.Faces, Surface.PointAtParameter, List.MaximumItem, List.MinimumItem, ==(x=y?), List.FilterByBoolMask, Surface.Thicken, Geometry.Intersect

Получение траекторий армирования

Переход от общей геометрии между перекрытием со стеной к траекториям армирования.

  • Как формировать траектории армирования, если нижняя грань стены разбита дверными проёмами?

Ноды:

Surface.PerimeterCurves, Curve.Length, List.SortByKey, List.DropItems, List.GetItemAtIndex, Curve.PointAtParameter, Vector.ByTwoPoints, Geometry.Translate

Арматура отгибами

Получение армирования по траектории отгибами.

  • Как настроить отгибы в проекте и назначить их через Dynamo?

Ноды:

Rebar.Shorten, Geometry.DistanceTo, Math.Round, RebarBarType, RebarShape, PathReinforcement.CreateByCurveAndShapeCode, PathReinforcement.RemovePathReinforcementSystem, RebarHookType, Element.SetParameterByName

Арматура формой и её преимущество

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

  • Какие преимущества у формы без отгибов?

Ноды:

Element.GetParameterValueByName, Properties.RebarHostCover, Point.ByCoordinates, Vector.ByTwoPoints, Element.MoveByVector, Element.SetParameterByName

Разбор ошибок на практике

Разбор ситуаций из практического опыта, при которых скрипт не работает или работает некорректно.

П-образные стержни. Отгибами. Часть 1

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

  • Как гарантированно направить отгибы внутрь стены?

Ноды:

Element.Faces, Surface.PointAtParameter, List.SortByKey, List.LastItem, Surface.PerimeterCurves, Curve.StartPoint, Polygon.ByPoints, Curve.Offset, Geometry.Explode, Curve.Length, List.SortByKey, List.TakeItems, Curve.EndPoint

П-образные стержни. Отгибами. Часть 2

Формирование массива опорных отрезков.

  • Как настроить формулы для получения числового массива в Code Block?

Ноды:

Element.GetParameterValueByName, Math.Floor, Vector.Reverse, Geometry.Translate

П-образные стержни. Отгибами. Часть 3

Настройка типа арматуры, формирование стержней на основе массива опорных отрезков. Создание пользовательского узла.

Ноды:

Create.FromCurves, Select Model Elements, RebarStyle, RebarBarType, RebarHookType, RebarHookOrientation, Vector.ZAxis

П-образные стержни. Эскизом. Часть 1

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

  • Как поменять тип данных линий “Line” на “Curve”?

Ноды:

Vector.ByTwoPoints, Line.PointAtParameter, Line.ByStartPointDirectionLength, PolyCurve.ByJoinedCurves, PolyCurve.Curves

П-образные стержни. Эскизом. Часть 2

Формирование арматуры. Один из КЛЮЧЕВЫХ моментов при получении линий эскиза для формирования деталей.

  • Как развернуть геометрию на 180 градусов?

Ноды:

Vector.Reverse, Geometry.Translate, Geometry.Rotate, Create.FromCurves, RebarStyle, RebarBarType, RebarHookType, Rebar Hook Orientation

Алгоритм восстановления верхней грани

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

Ноды:

Element.Faces, Surface.PointAtParameter, List.MaximumItem, ==(X=Y?), List.FilterByBoolMask, Surface.PerimeterCurves, Line.ByStartPointEndPoint, List.UniqueItems, Curve.Length, Math.Round

Массив основ стержней

Получение массива линий-основ формируемых арматурных “шпилек”.

  • Как легко исключить формирование арматуры в проёме/отверстии?

Ноды:

Curve.Offset, Geometry.Explode, Curve.Length, List.SortByKey, Line.PointAtParameter, Geometry.DistanceTo, Vector.ByTwoPoints, Element.GetParameterValueByName, Geometry.Translate, Vector.Reverse, Element.Geometry, Geometry.Intersect

Получение арматуры. Маркировка

Получение арматурных “шпилек”.

  • Как указать шаг “шпилек” не являющихся набором стержней с интервалом при маркировке?

Ноды:

Create.FromCurve, RebarStyle, RebarBarType, RebarHookType, RebarHookOrientation, Vector.ZAxis, Element.SetParameterByName

План создания скрипта

Рассмотрение плана создания скрипта.

  • Как не запутаться среди большого количества геометрических данных и операций?

Получение геометрии. П. Часть 1

Получение опорных точек и опорных векторов для дальнейшего создания геометрии эскиза арматурной детали.

  • Как легко получить осевую линии стены в плоскости верхней грани?

Ноды:

Select Model Element, NB_PolygonTopFace (Пользовательский нод — см. видео “Cтены_Шпильки_Алгоритм восстановления верхней грани”), Geometry.Explode, Curve.Length, List.SortByKey, List.TakeItems, Line.PointAtParameter, Line.ByStartPointEndPoint, Rebar.Shorten, Geometry.Intersect, Circle.ByCenterPointRadius, Vector.ByTwoPoints

Получение геометрии. П. Часть 2

Получение геометрии эскизов П-образных стержней.

  • Как симметрично отразить геометрию?

Ноды:

Geometry.Translate, Plane.ByThreePoints, List Create, PolyCurve.ByJoinedCurves, PolyCurve.Curves, Geometry.Mirror, Vector.Reverse, Element.GetParameterValueByName, List.MinimumItem, Math.Floor

Формирование арматуры. П

Получение П-образных стержней в группе, проверка скрипта с изменением вводных данных.

Ноды:

Create.FromCurves, Rebar.Style, RebarBarType, RebarHookType, Rebar Hook Orientation, Element.SetParameterByName

П-образные стержни

Формирование П-образных арматурных стержней вокруг проемов в стенах, образуемых семейством категории “Двери”.

  • Как быстро получить обрамление дверных проемов П-образными стержнями в нескольких стенах сразу?

Ноды:

Select Model Element, Element.GetCategory, String from Object, “==”(определение равенства элементов), Category.ByName, All Elements of Category, Element.GetParameterValueByName, Levels, List.FilterByBoolMask, Geometry.WindowDoorOpeningCharacteristics, List.TakeItems, PathReinforcement.CreateByCurveAndShapeCode, RebarBarType, RebarShape, Integer Slider

Решение проблемы появления стержней в проеме

Демонстрация одного из способов обработки стен, в которых П-образные стержни появляются внутри проема.

  • Как получить геометрические линии сердцевин арматурных стержней ?
  • Как удалить элементы с помощью Dynamo?

Ноды:

Select Model Element, Element.Properties.RebarCenterlineCurves, List.FirstItem, Element.Geometry, Geometry.DoesIntersect, Geometry.DeleteElement, List.FilterByBoolMask, Boolean, PathReinforcement.CreateByCurveAndShapeCode, RebarBarType, RebarShape, Integer Slider, Views, Create.SetSolidInView

Прямые стержни

Формирование прямых арматурных стержней вокруг проемов в стенах, образуемых семейством категории “Двери”.

  • Как быстро получить обрамление дверных проемов прямыми стержнями в нескольких стенах сразу?

Ноды:

Designs.OpeningStraightRebarCurves, Create.FromCurve, RebarStyle, RebarBarType, RebarHookType, RebarHookOrientation, Layout.SetLayoutAsNumberWithSpacing

Прямые стержни

Формирование прямых арматурных стержней вокруг проемов в стенах, образуемых семейством категории “Окна”.

  • Как быстро получить обрамление оконных проемов прямыми стержнями в нескольких стенах сразу?
  • Почему нод “Designs.OpeningStraightRebarCurves” может некорректно формировать линии периметра вокруг элементов категории “Окна” и как это скорректировать?

Ноды:

Designs.OpeningStraightRebarCurves, Level.Elevation, Element.BoundingBox, BoundingBox.MinPoint, Math.Round, Vector.ZAxis, Geometry.Translate, List.GetItemAtIndex, Vector.Reverse, Curve.ExtendStart, Curve.ExtendEnd, List.Transpose, List.AddItemToEnd, Create.FromCurve, RebarStyle, RebarBarType, RebarHookType, RebarHookOrientation, Layout.SetLayoutAsNumberWithSpacing, Views, Create.SetSolidInView

П-образные стержни

Формирование П-образных арматурных стержней вокруг проемов в стенах, образуемых семейством категории “Окна”.

  • Как быстро получить обрамление оконных проемов П-образными стержнями в нескольких стенах сразу?

Ноды:

List.TakeItems, PathReinforcement.CreateByCurveAndShapeCode, PathReinforcement.RemovePathReinforcementSystem, Properties.RebarCenterlineCurves, List.FirstItem, Element.Geometry, Geometry.DoesIntersect, List.FilterByBoolMask, Geometry.DeleteElement, List.FilterByBoolMask, List.Transpose, PolyCurve.ByJoinedCurves, PolyCurve.Curves, Views, Create.SetSolidInView

Введение

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

  • В чем сложность обработки проемов, полученных при копировании стен с мониторингом?
  • Как выбрать такие проёмы через Dynamo?

Ноды:

Category.ByName, Categories, All Elements of Category, Select Model Element, Element.GetCategory

Сортировка. Дверные и оконные. Часть 1

Разбор алгоритма получения опорной геометрии для дверных проемов на основе геометрии стены. Реализация алгоритма.

  • Как разделить грани на горизонтальные и вертикальные?
  • Как быстро получить плоскость, в которой лежит грань?

Ноды:

Select Model Element, Element.Geometry, Element.Faces, Math.Round, Surface.PointAtParameter, List.SortByKey, “==”(сравнение значений), Surface.NormalAtParameter, Plane.ByOriginNormal, Surface.Area, List.FilterByBoolMask, “>=”, Geometry.Translate, Line.ByStartPointDirectionLength, Geometry.DoesIntersect, Vector.ZAxis, Line.ByStartPointDirectionLength, Curve.ExtendEnd, Geometry.Intersect, Geometry.DistanceTo

Сортировка. Дверные и оконные. Часть 2

Разбор алгоритма получения опорной геометрии для оконных проемов на основе геометрии стены. Реализация алгоритма.

  • Как отличить оконный проем от отверстия под инженерные системы?

  • Как определить высоту оконного проема по его верхней грани?

Ноды:

Select Model Element, Element.Geometry, Element.Faces, Math.Round, Surface.PointAtParameter, List.SortByKey, “==”(сравнение значений), Surface.NormalAtParameter, Plane.ByOriginNormal, Surface.Area, List.FilterByBoolMask, “>=”, Geometry.Translate, Line.ByStartPointDirectionLength, Geometry.DoesIntersect, Vector.ZAxis, Line.ByStartPointDirectionLength, Curve.ExtendEnd, Geometry.Intersect, Geometry.DistanceTo

Прямые стержни. Часть 1

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

Ноды:

List.FilterByBoolMask, Surface.PerimeterCurves, Curve.StartPoint, Polygon.ByPoints, Curve.Offset, Geometry.Explode, Curve.Length, List.SortByKey, List.TakeItems, Curve.Simplify, Geometry.Translate, Rebar.Shorten

Прямые стержни. Часть 2

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

  • Как получить массивы линий, соответствующих различной высоте проемов и при этом сохранить одинаковое число стержней в массивах и одинаковое удлинение?

  • Как быстро отсечь концы, выходящие за пределы тела стены?

Ноды:

Rebar.Shorten, Curve.PointAtParameter, Line.ByStartPointDirectionLength, Curve.ExtendStart, Geometry.DistanceTo, Math.Round, Geometry.Intersect

П-образные стержни. Завершение скрипта

Получение траекторий для создания П-образных стержней. Получение векторов для прямых стержней. Подача всех данных на вводы нодов по созданию арматуры.

Ноды:

Geometry.Intersect, Curve.EndPoint, Curve.StartPoint, Vector.ZAxis, Vector.Reverse, Line.ByStartPointDirectionLength, Line.ByStartPointDirectionLength, Curve.Reverse, List.PointAtParameter, Vector.ByTwoPoints, RebarStyle, Rebar Bar Type, RebarHookType, RebarShape, Rebar Hook Orientation, Create.FromCurve, PathReinforcement.CreateByCurveAndShapeCode, PathReinforcement.RemovePathReinforcementSystem, Views, Create.SetSolidInView

Тестирование и комментарии

Проверка работоспособности созданного скрипта.

  • Сработает ли скрипт на стенах с проемами созданными элементами категории “Двери”?

Г-образные выпуски в плиту. План создания скрипта

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

  • Почему “угловая” колонна требует большего внимания, чем та, что размещена ближе к центру плиты?

Г-образные выпуски в плиту. Геометрия. Часть 1

Формирование опорной геометрии и векторов.

  • Как найти найти плиту под колонной, без применения нодов подкатегории “Selection”?

Ноды:

Element.Faces, Math.Round, Surface.PointAtParameter, List.SortByKey, Surface.PerimeterCurves, Polygon.ByPoints, Polygon.Center, Vector.ByTwoPoints, Line.SegmentLengthAtParameter, Geometry.Translate, Line.ByStartPointDirectionLength, Category.ByName, All Elements of Category, Element.Geometry, Geometry.DoesIntersect, List.FilterByBoolMask, Line.ByStartPointEndPoint, Vector.ByLine, Vector.Rotate

Г-образные выпуски в плиту. Геометрия. Часть 2

Формирование геометрии Г-образных стержней.

Ноды:

Math.Sqrt, List.SortByKey, Vector.ByTwoPoints, Geometry.Translate, Line.ByStartPointDirectionLength, List.FilterByBoolMask, Element.GetParameterValueByName, Vector.Reverse, Geometry.Rotate, Geometry.Mirror, Vector.ByLine, Vector.Rotate

Г-образные выпуски в плиту. Получение арматуры

Собираем линии-основы, нормальные вектора и формируем арматурные стержни.

  • Как правильно получить нормальные вектора для различно ориентированных в плане деталей?

Curve.Normal, Vector.Rotate, Create.FromCurves, RebarStyle, RebarBarType, RebarHookType, RebarHookOrientation, Views, Create.SetSolidInView

План создания скрипта

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

  • Как правильно ориентировать семейство при вставке с Dynamo?
  • Как выбрать несколько граней поочередно?

Curve.Normal, Vector.Rotate, Create.FromCurves, RebarStyle, RebarBarType, RebarHookType, RebarHookOrientation, Views, Create.SetSolidInView

Опорная геометрия

Формирование вспомогательной геометрии и получение опорных векторов.

  • Как найти найти плиту под колонной, без применения нодов подкатегории “Selection”?

Select Faces, Element.Faces, Surface.PointAtParameter, List.SortByKey, Geometry.BoundingBox, BoundingBox.MaxPoint, Surface.NormalAtPoint, Polygon.ByPoints, Polygon.Center, Vector.ByTwoPoints, Geometry.Translate, Curve.PointAtParameter, Surface.PerimeterCurves, Geometry.DistanceTo, Line.ByStartPointDirectionLength, Curve.ExtendStart, Geometry.Intersect, List.FilterByBoolMask, Line.ByStartPointEndPoint, Vector.Rotate

Размещение и наделение параметрами

Получение массива точек размещения, назначение параметров и проверка работы скрипта.

  • Как за один нод “Element.SetParameterByName” назначить несколько различных параметров в массив элементов?

Geometry.Translate, Element.GetParameterValueByName, Integer Slider, FamilyType.ByName, FamilyInstance.ByFace, List.Join, Element.SetParameterByName