Вступление

Для проcмотра видеоурока заполните анкету
или войдите

Зачем нужно дорабатывать Revit и почему удобно это делать с помощью Dynamo. Типы и примеры решаемых задач.


Установка Dynamo

Для проcмотра видеоурока заполните анкету
или войдите

Скачивание и установка Dynamo и Dynamo Player. Запуск из Revit и Revit Viewer.

http://dynamobim.org/


установка Dynamo, dynamobim.org, Dynamo Studio, Revit, Revit Viewer, Dynamo Player, первый запуск

Интерфейс Dynamo

Для проcмотра видеоурока заполните анкету
или войдите

Начальный экран Dynamo: работа с файлами и справочные материалы. Что нужно знать о библиотеке нодов,  рабочем пространстве скрипта и основном меню. Установка бесплатных пакетов нодов.


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

Основные понятия визуального программирования

Для проcмотра видеоурока заполните анкету
или войдите

Определения визуального программирования, скриптов и нодов. Особенности работы с нодами.

Ноды: Point.ByCoordinates, Code Block, Number Slider


терминология, визуальное программирование, Dynamo, скрипт, нод, узел, программный код, интерфейс пользователя

Типы нодов

Для проcмотра видеоурока заполните анкету
или войдите

Структура библиотеки нодов. Основные форматы, используемые в Revit и Dynamo. Ноды для ввода данных.

Ноды:

String, Number, Number Slider, Boolean, Watch, Code Block
Категории: Core (Input), Geometry, Revit


библиотека нодов, категории нодов, поиск нодов, формат данных, форматы ввода, строковый формат, строка, числовой формат, число, условие, Design Script

Создание строк

Для проcмотра видеоурока заполните анкету
или войдите

Ввод данных в текстовом формате разными способами. Анализ текстовой информации.

Ноды:

String, Code Block, String from Object, Watch
Категории: Core (Input)


строковый формат, строка, создание строки, перевод в строковый формат, просмотр результатов

Операции со строками

Для проcмотра видеоурока заполните анкету
или войдите

Некоторые ноды для работы со строками: определение количества символов, поиск и замена подстроки в строке. Сложение строк разными способами.

Ноды:

String, Code Block, Watch, String.Length, String.Contains, Boolean, String.Replace, String.Concat
Категории: Core (String)


длина строки, поиск подстроки, замена подстроки, сложение строк, Design Script, переменная, параметризация

Создание чисел

Для проcмотра видеоурока заполните анкету
или войдите

Ноды для создания вещественных и целых чисел. Создание последовательностей чисел разными способами.

Ноды:

Number, Number Slider, Code Block, Integer Slider, String.ToNumber, String, String.Length, Sequence
Категории: Core (Input)


число, вещественные числа, целые числа, создание числа, перевод строки в число, последовательность чисел, шаг последовательности

Операции с числами

Для проcмотра видеоурока заполните анкету
или войдите

Некоторые ноды для работы с числами: математические функции и логические операторы. Использование функций на Design Script в Code Block.

Ноды:

Math.Abs, Code Block, Math.Cos, Math.Round
Категории: Core (Math), Operators, Math.Random, Number Slider

математические операции, логические операторы, модуль числа, функции Design Script, переменные в Code Block, тригонометрические функции, округление чисел, генерация случайных чисел

Создание списков

Для проcмотра видеоурока заполните анкету
или войдите

Определение списков в Dynamo. Различные способы их создания.

Ноды:

Sequence, List.Create, Code Block
Категории: Core (List)


массив, список, вложенность списка, изменение количества входных слотов

Операции со списками

Для проcмотра видеоурока заполните анкету
или войдите

Некоторые ноды для работы со списками: объединение, транспонирование, уравнивание списков. Определение количества элементов в списке.

Ноды:

List.Join, Code Block, List.Transpose, Flatten, Count
Категории: Core (List)

объединение списков, транспонирование, уравнивание списков, определение количества элементов

Сортировка и фильтрация

Для проcмотра видеоурока заполните анкету
или войдите

Стандартные возможности по сортировке и фильтрации элементов списка. Сортировка и фильтрация чисел и строк.

Ноды:

List.Sort, Code Block, String.ToNumber, List.FilterByBoolMask, ==, Watch, String, String.Contains
Категории: Core (List)

сортировка списка, сортировка чисел, сортировка строк, фильтрация списка, маски элементов

Выбор элементов модели

Для проcмотра видеоурока заполните анкету
или войдите

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

Ноды:

Categories, All Elements of Category, Watch, FamilyInstance.Type, Family Types, All Elements of Family Type, Wall Types, Floor Types, Levels, All Elements of Level, Views, Select Model Element, Select Model Elements, All Element in Active View, Document.Current, Document.FilePath
Категории: Revit


категории Revit, выбор категории, все элементы категории, экземпляра, типы, типоразмеры, типы стен, типы перекрытий, уровни, все элементы уровня, виды, выбор отдельных элементов, идентификатор элемента, активный вид, текущий документ, путь проекта

Параметры элементов модели

Для проcмотра видеоурока заполните анкету
или войдите

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

Ноды:

Select Model Element, Element.Parameters, Watch, FamilyInstance.Type, Element.GetParameterValueByName, Code Block, Element.SetParameterByName
Категории: Revit

Список параметров элемента, параметры элемента, значение параметра, изменение параметров

Запись в Excel

Для проcмотра видеоурока заполните анкету
или войдите

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

Ноды:

Excel.WriteToFile, Code Block, File Path
Категории: Office


внешние форматы, Excel, таблица, двумерный массив, создание XLSX, лист, ячейка, строка таблицы, столбец таблицы, изменение XLSX

Чтение из Excel

Для проcмотра видеоурока заполните анкету
или войдите

Возможности стандартного нода для чтения данных из таблиц XLSX. Выбор файла и листа. Перевод информации из ячеек в текстовый формат.

Ноды:

ExcelReadFromFile, File Path, File.FromPath
Категории: Office

Excel, чтение XLSX, лист, ячейка, дополнительные слоты нодов

Связь с текстовыми форматами

Для проcмотра видеоурока заполните анкету
или войдите

Возможности чтения и записи в форматы TXT и CSV. Пример чтения таблицы поиска из семейства фитинга.

Ноды:

File.ReadText, File.WrtieText, Code Block, CSV.WriteToFile, CSV.ReadFromFile, File Path, File.FromPath
Категории: Core (File)


текстовый файл, создание TXT, чтение TXT, создание CSV, чтение CSV, таблицы посика

Связь с геометрией Revit

Для проcмотра видеоурока заполните анкету
или войдите

Различия между геометрией Revit и геометрией Dynamo. Общие правила создания и свойства геометрии Dynamo.

Ноды:

Point.ByCoordinates, Sphere.ByCenterPointRadius


геометрия Dynamo, геометрия Revit, свойства геометрии, правила создания геометрии, Design Script

Превращение из геометрии Revit

Для проcмотра видеоурока заполните анкету
или войдите

Построение геометрии Dynamo по геометрии элементов модели Revit. Пример получение объёмного тела (Solid) из стены.

Ноды:

Select Moel Element, Element.Geometry


превращение геометрии, создание геометрии Dynamo, 3В-вид, объёмное тело

Анализ геометрии в Dynamo

Для проcмотра видеоурока заполните анкету
или войдите

Суть анализа и некоторые ноды для анализа геометрии Dynamo: пересечение геометрии, определение кратчайшего расстояние между элементами геометрии.

Ноды:

Geometry.DoesIntersect, Category, All Elements of Category, Code Block, Element.Geometry, Geometry.DistanceTo


анализ геометрии, пересечение геометрии, расстояние между элементами геометрии

Создание геометрии Dynamo

Для проcмотра видеоурока заполните анкету
или войдите

Суть создания и некоторые ноды для создания основных элементов геометрии: точки (Point), кривой (Curve или Line как частный случай), плоскости (Surface), объёмного тела (Solid).

Ноды:

Point.ByCoordinates, Code Block, Line.ByStartPointEndPoint, Surface.ByLoft, List.Join, Surface.Thicken
Категории: Geometry (Point), Geometry  (Line), Geometry  (Surface)


точка, создание точки, кривая, линия, создание линии, функции Design Script, поверхность, создание поверхности, утолщение, объёмное тело, создание объёмного тела

Вставка элемента по одной точке

Для проcмотра видеоурока заполните анкету
или войдите

Создание точки для вставки по ней экземпляра семейства в Revit. Параметризация и изменение точки для изменения проекта.

Ноды:

FamilyInstance.ByPoint, Family Types, Point.ByCoordinates, Number Slider


семейство с одной точкой вставки, создание экземпляра, точка, координаты, параметризация

Создание элемента по двум точкам

Для проcмотра видеоурока заполните анкету
или войдите

Создание линий для вставки по ним соответствующих экземпляров семейств в Revit. Ноды для создания колонн и балок.

Ноды:

StructureFraming.ColumnByCurve, Family Types, Levels, Line.ByStartPointEndPoint, Point.ByCoordinates, Code Block, Number Slider, StructureFraming.BeamByCurve,
Категории: Revit (Elements)


семейство с двумя точками вставки, колонна, создание колонны, изменение геометрии, балка, создание балки

Создание элемента по кривой

Для проcмотра видеоурока заполните анкету
или войдите

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

Ноды:

Wall.ByCurveAndHeight,

Circle.ByCentrePointRadius, Code Block, Levels, Wall Types, Curve.SplitByParameter, FloorByOutlineTypeAndLevel
Категории: Revit (Elements), Geometry (Circle)


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

Оформление скриптов

Для проcмотра видеоурока заполните анкету
или войдите

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

Ноды:

Группа, Примечание


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

Переплетение. Уровни

Для проcмотра видеоурока заполните анкету
или войдите

Настройка дополнительных опций стандартных нодов: различных видов переплетений и уровней вложенности списков.

Ноды:

Code Block, *, Count


переплетение, перемножение списков, длинный список, короткий список, Кратчайший, Самый длинный, Векторное произведение, уровни, использование уровней, вложенный список

Отображение геометрии. Замораживание

Для проcмотра видеоурока заполните анкету
или войдите

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

Ноды:

categories, All Element Of Category, Element.Geometry, PolySurface.BySolid, PolySurface.Serfaces, Surface.PerimeterCurves, Room.Name


геометрия, отображение геометрии, gомещение, объёмное тело, поверхность, периметр, gредварительный просмотр, pамораживание

Расширение функционала Dynamo

Для проcмотра видеоурока заполните анкету
или войдите

Что делать, если для решения задачи не хватает стандартных нодов. Поиск пакета нодов в интернете. Использование возможностей языка Design Script для работы с геометрией. Использование языка IronPython и Revit API для решения любой задачи.

Ноды:

Code Block, Python Script


стандартные ноды, Пакеты, поиск пакета, пользовательские ноды, язык Design Script, язык IronPython, модификация скрипта, Revit API

Создание пользовательского нода

Для проcмотра видеоурока заполните анкету
или войдите

Объединение полезной, часто используемой группы нодов в пользовательский узел (нод). Создание собственной категории нодов. Назначение входных и выходных слотов.

Ноды:

Curve.PointsAtChordLengthFromPoint, Circle.ByCenterPointRadius, Code Block, Circle.ByCenterPointRadius, Rectangle.ByWidthLength, PolyCurve.Curves, Input, Output


группа нодов, Пользовательский узел, разделение кривой, создание оружности, Новый узел, Имя узла, Категория, собственная категория, редактирование нода, слоты, создание слотов, ввод названия слота, начальное окно

Публикация и установка пакетов

Для проcмотра видеоурока заполните анкету
или войдите

Для того, чтобы поделиться своими нодами, можно опубликовать собственный пакет нодов. Так делают пользователи Dynamo по всему миру, поэтому многие полезные пакеты нодов можно бесплатно скачать и использовать. При необходимости нод из пакеты можно “раскрыть”.

Ноды:

LaunchBox for Dynamo, archi-lab.net, Clockwork for Dynamo, Rhynamo, BumbleBee


публикация нода, Пакеты, поиск пакета, установка пакета, нативный нод, пользовательский нод, раскрытие нода, управление пакетами, удаление пакета

Синтаксис Design Script

Для проcмотра видеоурока заполните анкету
или войдите

Возможности языка Design Script. Ресурсы для изучения синтаксиса и возможностей.

Learn

Ноды:

Code Block


язык Design Script, синтаксис, создание числа, создание строки, создание списка, математические функции, переменные, название нода, dynamobim.org, DesignScript Guide, DesignScript Documentation, классы, типы, методы

Создание функций

Для проcмотра видеоурока заполните анкету
или войдите

Понятие функции. Создание функций на Design Script. Возможность применения созданной функции во всём текущем скрипте Dynamo.

Ноды:

Code Block


функции, операторы, оператор def, оператор return, остаток от деления, использование функций, DesignScript Documentation

Нод Python Script

Для проcмотра видеоурока заполните анкету
или войдите

Описание нода, с помощью которого можно обращаться к Revit на языке программирования Python. Входные и выходные слоты. Тело скрипта.

Ноды:

Python Script, Python Script from String, File.ReadText


Python, IronPython, язык программирования, программный код, программирование, библиотеки, Protogeometry

Синтаксис Python

Для проcмотра видеоурока заполните анкету
или войдите

Основные правила написания кода. Цвета операторов, переменных и методов, текста, чисел и комментариев.

Ноды:

Python Script


операторы, import, for, in, not, переменные, методы, текстовый формат, числовой формат, комментарии

Простейшие операции

Для проcмотра видеоурока заполните анкету
или войдите

Основы работы с числовым и текстовым форматом. Назначение переменных. Вывод результата работы скрипта.

Ноды:

Python Script, Code Block


OUT, результат скрипта, числа, операции, сложение, суммирование, строки, IN, переменные, присваивание, вывод результата

Анализ предупреждений

Для проcмотра видеоурока заполните анкету
или войдите

Обнаружение и анализ ошибок в коде. Пример предупреждения при попытке сложения переменных с разными типами данных.

Ноды:

Python Script, Code Block


ошибка, предупреждение, TypeError, сложение разных форматов, поиск ошибок

Операторы условия if, elif, else

Для проcмотра видеоурока заполните анкету
или войдите

Простой способ проверки различных условий с помощью трёх операторов условий: IF (“если”), ELIF (“если нет, то если”) и ELSE (“если нет, то”). Пример сравнения двух чисел.

Ноды:

Python Script, Code Block


операторы, if, условие, сравнение чисел, тело оператора, Tab, else, elif, ==, >

Операторы and, or

Для проcмотра видеоурока заполните анкету
или войдите

Задание нескольких условий одной строкой с помощью логических операторов AND (“и”) и OR (“или”). Пример определения того, попадает ли заданное число в диапазон двух других чисел.

Ноды:

Python Script, Code Block


диапазон, попадание в диапазон, условие, операторы, and, NameError, неопределённая переменная, or

Операторы in, not

Для проcмотра видеоурока заполните анкету
или войдите

Задание условий с помощью оператора IN (“в”), проверяющего нахождение идентичного элемента в списке и оператора отрицания NOT (“не”).

Ноды:

Python Script, Code Block


операторы, in, список, попадание в список, отрицание, not

Оператор цикла for

Для проcмотра видеоурока заполните анкету
или войдите

Обработка списка с помощью цикла FOR (“для”), который работает непосредственно с элементами списка. Проверка условия для каждого элемента. Добавление элементов в список.

Ноды:

Python Script, Code Block


список, обработка списка, цикл, операторы, for, in, if, пустой список, создание списка, функции, аргументы, append, элемент списка, добавление элемента в список

Оператор цикла while

Для проcмотра видеоурока заполните анкету
или войдите

Обработка списка с помощью цикла WHILE (“пока”), который работает до тех пор, пока соблюдается заданное условие. Предупреждение зацикливания программы.

Ноды:

Python Script, Code Block


цикл, while, условие, счётчик, обновление счётчика, зацикливание

Функция dir( ). Раскрытие элементов

Для проcмотра видеоурока заполните анкету
или войдите

Получение списка всех доступных методов и свойств любого элемента любого типа данных с помощью функции dir (). Применение методов и свойств к элементу. Раскрытие элемента Revit методом UnwrapElement ().

Ноды:

Python Script, Categories, All Element of Category


функции, dir, тип данных, элемент, методы, свойства, Length, UnwrapElement, раскрытие элемента

Метод LookupParameter( )

Для проcмотра видеоурока заполните анкету
или войдите

Получение значений любых параметров элементов Revit. Ввод типа данных, в котором необходимо данное значение получить.

Ноды:

Python Script, Categories, All Element of Category


параметры, значение параметра, LookupParameter, типы данных, AsString

Поиск функций. Библиотеки. Транзакции

Для проcмотра видеоурока заполните анкету
или войдите

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

Ноды:

Python Script, Change Family Type


функции, пакеты, изменение типоразмера, раскрытие нода, ChangeTypeId, библиотеки, RevitNodes, RevitServices, DocumentManger, TransactionManager, текущий проект, транзакция, изменение проекта

Поиск на revitapidocs.com

Для проcмотра видеоурока заполните анкету
или войдите

Ресурс для изучения классов Revit и применяемых к ним методов: http://www.revitapidocs.com/. Возможность просматривать примеры использования некоторых методов на языке Python.


Revit API, revitapidocs.com, классы, методы, свойства, примеры применения, Wall, аргументы

Надстройка Revit Lookup

Для проcмотра видеоурока заполните анкету
или войдите

Использование бесплатной надстройки для просмотра любых свойств любого элемента Revit Применяется для дальнейшего использования полученной информации в Python Script. https://github.com/jeremytammik/RevitLookup


надстройки, Revit Lookup, свойства элемента, параметры, BuiltInParameter, системные параметры

Организация скриптов с помощью Dynamo Player

Для проcмотра видеоурока заполните анкету
или войдите

Стандартное приложение для организации скриптов и их запуска непосредственно из Revit.

http://help.autodesk.com/view/RVT/2017/RUS/?guid=GUID-BFCE20D2-86D4-4591-8CF3-5405D26DB825 


организация скриптов, браузер скриптов, Dynamo Player, папка скриптов, запуск скрипта

Удобный поиск элементов модели

Для проcмотра видеоурока заполните анкету
или войдите

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

Ноды:

Categories, All Elements of Category, Element.GetParameterValueByName, String, List.FilterByBoolMask, ==, Watch

скрипт, создание скрипта, поиск элемента, Id, категория, помещение, параметр, номер помещения, значение параметра, фильтрация списка, группа, оформление

Перемаркировка экземпляров дверей

Для проcмотра видеоурока заполните анкету
или войдите

Создание скрипта, который меняет марки элементов модели исходя из заданных стандартов. Например, добавляет к маркам дверей префикс “Д-”. Скрипт так же оформляется.

Ноды:

Categories, All Elements of Category, Element.GetParameterValueByName, String, Element.SetParameterByName, Code Block, Watch

скрипт, создание скрипта, перемаркировка, параметр экземпляра, двери, марка, регистр, значение параметра, префикс, запуск скрипта, ручной режим запуска, оформление скрипта

Перемаркировка типов окон

Для проcмотра видеоурока заполните анкету
или войдите

Модификация предыдущего скрипта для применения к маркировке типоразмеров окон.

Ноды:

Categories, All Elements of Category, Element.GetParameterValueByName, String, Element.SetParameterByName, Code Block, Watch, FamilyInstance.Type, List.UniqueItems

скрипт, создание скрипта, модификация скрипта, параметр типа, сохранение скрипта, категория, параметр, префикс, получение типоразмера, замораживание, оформление скрипта

Перемаркировка дверей по направлению. Часть 1

Для проcмотра видеоурока заполните анкету
или войдите

Создание скрипта, маркирующего элементы в зависимости от их геометрического расположения. В качестве примера представлена перемаркировка дверей в проекте. Процесс разделён на 2 части.

Ноды:

All Elements at Level, Levels, Watch, Element.GetCategory, Code Block, ==, String from Object, List.FilterByBoolMask, FamilyInstance.LocationGeometry.BoundingBox, BoundingBox.MinPoint, BoundingBox.MaxPoint

скрипт, создание скрипта, перемаркировка, геометрическое положение, получение категории элемента, фильтрация списка, координаты, BoundingBox, максимальная точк, минимальная точка

Перемаркировка дверей по направлению. Часть 2

Для проcмотра видеоурока заполните анкету
или войдите

Продолжение разработки предыдущего скрипта. Оформление скрипта.

Ноды:

Code Block, List.SortByKey, Element.SetParameterByName, String, Count, String from Object

скрипт, создание скрипта, точка, координаты, сортировка по ключу, изменение значения параметра, диапазон, перевод в текстовый формат, оформление скрипта

Перемаркировка помещений по направлению. Часть 1

Для проcмотра видеоурока заполните анкету
или войдите

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

Ноды:

Categories, All Elements of Category, List.GroupByKey, Element.GetParameterValueByName, Code Block, Room.Location, List.SortByKey, Element.SetParameterByName, Count, String from Object

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

Перемаркировка помещений по направлению. Часть 2

Для проcмотра видеоурока заполните анкету
или войдите

Нюансы при разработке предыдущего скрипта. Учёт неразмещённых помещений.

Ноды:

Room.Area, >, List.FilterByBoolMask,

неразмещённое помещение, фильтрация списка, взаимосвязь координат

Отслеживание отзеркаленных элементов. Часть 1

Для проcмотра видеоурока заполните анкету
или войдите

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

Ноды:

Categories, All Elements of Category, Mirror, Element.position-rotation-mirrored, Python Script, Element.GetLocation, List.FilterByBoolMask, ObjectIsNull

скрипт, создание скрипта, отзеркаливание, отразить, mirror, двери, ведомость заполнения, проверка, установка пакета, раскрытие нода, AttributeError, координаты, фильтрация

Отслеживание отзеркаленных элементов. Часть 2

Для проcмотра видеоурока заполните анкету
или войдите

Продолжение разработки предыдущего скрипта. Внесение информации о стороне открывания двери в её параметр для корректного отображения в спецификации.

Ноды:

List.FilterByBoolMask, Element.SetParameterByName, Code Block, FamilyInstance.Type, Element.Name

параметр, заполнение параметра, фильтрация, автоматический режим, типоразмер, сложение строк

Передвижение марок помещений. Часть 1

Для проcмотра видеоурока заполните анкету
или войдите

Создание скрипта, который перемещает марки со значением площади в правый нижний угол помещений. Скрипт основывается на получении у элемента помещений Bounding Box (рамки выбора). В первой части происходит фильтрация нужных марок.

Ноды:

Categories, All Elements of Category, Watch, List.FilterByBoolMask, Element.GetParameterValueByName, Code Block, Element.Name, ==

скрипт, создание скрипта, оформление, марка, помещение, Bounding Box, координаты, точка, перемещение, типоразмер, фильтрация, сравнение, значение параметра

Передвижение марок помещений. Часть 2

Для проcмотра видеоурока заполните анкету
или войдите

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

Ноды:

Tag.TaggedElement, Python Script

получение маркированного элемента, поиск пакета, функция, dir, UnwrapElement, методы, свойства, цикл, for, список, добавление элемента в список

Передвижение марок помещений. Часть 3

Для проcмотра видеоурока заполните анкету
или войдите

Продолжение разработки предыдущего скрипта. Непосредственно перемещение марок и назначение допуска от угла.

Ноды:

Geometry.BoundingBox, BoundingBox.MaxPoint, BoundingBox.MinPoint, Code Block, Element.SetLocation

помещение, Bounding Box, точка, координаты, Location, перемещение, допуск, алгоритм

Построение стены по сплайну

Для проcмотра видеоурока заполните анкету
или войдите

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

Ноды:

Select Model Element, Element.Geometry, Wall.ByCurveAndHeight, Code Block, Levels, Wall Types, Curve.ApproximateWithArcAndLineSegments, Point.PruneDuplicates, Curve.EndPoint, Number Slider, PolyCurve.ByPoints, PolyCurve.Curves

скрипт, создание скрипта, расширение функционала, оптимизация, стена, линия модели, сплайн, геометрия Dynamo, создание стены, аппроксимация, точка, дублирование, допуск, полилиния, кривая, автоматический режим

Параметрическая стена по синусоиде

Для проcмотра видеоурока заполните анкету
или войдите

Создание параметрической синусоиды (с изменяемыми длиной, амплитудой, частотой, точностью) и стены на её основе. Пример создания параметрической геометрии.

Ноды:

Math.Sin, Code Block, Math.DegreesToRadians, Point.BeCoordinates, PolyCurve.ByPoints, PolyCurve.Curves, Wall.ByCurveAndHeight, Levels, Wall Types

скрипт, создание скрипта, геометрия, параметризация, синусоида, Design Script, последовательность точек, шаг, радианы, амплитуда, частота, полилиния, создание стены

Параметрическая башня по косинусоиде

Для проcмотра видеоурока заполните анкету
или войдите

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

Ноды:

Circle,ByCenterPointRadius, Point.ByCoordinates, Code Block, Floor.ByOutlineTypeAndLevel, Floor Types, Levels, Curve.SplitByParameter

скрипт, создание скрипта, перекрытие, окружность, радиус, последовательность числе, точка, Design Script, косинус, геометрия, параметризация, преобразование геометрии, замкнутая кривая, разделение кривой, создание перекрытия

Случайная расстановка объектов генплана. Часть 1

Для проcмотра видеоурока заполните анкету
или войдите

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

Ноды:

Select Model Element, Family Types, Code Block, List.Create, List.Cycle, List.Shuffle, FamilyInstance.ByPoint, Element.Geometry

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

Случайная расстановка объектов генплана. Часть 2

Для проcмотра видеоурока заполните анкету
или войдите

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

Ноды:

Curve.PointAtParameter, Code Block, Math.Rand, Math.Random, Math.RandomList, Curve.Length

разделение кривой, список, генерация случайных чисел, random, длина кривой

Пакетное создание полов

Для проcмотра видеоурока заполните анкету
или войдите

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

Ноды:

Floor.ByOutlineTypeAndLevel, Floor Types, All Elements at Level, Ctegories, All Elements of Category, Watch, RemoveIfNot, Code Block, Room.FinishBoundary, Geometry.Translate

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

Простейшая ведомость отделки. Часть 1

Для проcмотра видеоурока заполните анкету
или войдите

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

Ноды:

Categories, All Elements of Category, Element.GetParameterValueByName, Code Block, Element.SetParameterByName

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

Простейшая ведомость отделки. Часть 2

Для проcмотра видеоурока заполните анкету
или войдите

Продолжение разработки предыдущего скрипта. Определение помещений для каждого проёма.

Ноды:

Get To-From Room, Python Script, List.Joint

поиск пакета, помещение проёма, раскрытие нода, объединение списков, редактирование скрипта, цикл, for, методы, FromRoom, ToRoom

Простейшая ведомость отделки. Часть 3

Для проcмотра видеоурока заполните анкету
или войдите

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

Ноды:

List.GroupByKey, List.Transpose, Code Block, Python Script, Watch, Element.GetParameterValueByName, Math.Sum

группирование списков, ключи, транспонирование, вложенные списки, цикл, for, создание списка, добавление элемента в список, системные параметры, Revit Lookup, площадь, значение параметра, суммирование