Фильтрация входных элементов соединений

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

Фильтр по типу зоны

Следующий узел Dynamo, который нужно добавить в сценарий, называется Filter.ByZoneType. В качестве входных данных для этого узла используется узел соединения (или список узлов соединений), индекс, соответствующий элементу данных конструкций узла соединения, а также тип зоны — тело или конец (в настоящий момент — нечувствительная к регистру строка). На выходе этот узел Dynamo показывает, какие узлы соединений соответствуют критериям, а какие нет.

Прим.: Если необходимо удостовериться, что узел между элементами относится к определенному типу, проверьте тип зоны.

В этом примере требуется убедиться в том, что узел соединения между элементами B1 и B2 — это стыковка между конечными точками. Для этого сначала убедитесь, что типом зоны первого элемента (индекс 0) в узле является конец. Поскольку все элементы (B1, B2, B3, B4) имеют тип зоны «Конец», все вложенные узлы соответствуют критериям фильтра.

Входные данные Вывод

Условие выполнено

Вывод

Условие не выполнено





[ ]



Затем добавьте второй узел Dynamo, чтобы убедиться в том, что типом зоны для второго элемента (индекс 1) также является конец.



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

Входные данные Вывод

Условие выполнено

Вывод

Условие не выполнено





[ ]

Фильтр по углу наклона

Следующий фильтр, который нужно добавить в сценарий, называется Filter.BySlantAngle. Угол наклона — это угол между осью элемента данных конструкции и вертикальной осью. Угол наклона дополняет собой угол уклона. Этот фильтр требуется для проверки того, что первый элемент является вертикальным. В качестве входных данных для этого узла Dynamo используется узел соединения или список узлов соединений, индекс элемента конструкции узла соединения, который требуется проверить, а также начало и конец диапазона угла наклона (0–90°) в градусах.

В этом примере требуется убедиться, что угол наклона первого элемента (индекс 0) в узле соединения находится в диапазоне от 0 до 0 градусов (является вертикальным).



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

Условие выполнено

Вывод

Условие не выполнено







Фильтр по углу уклона

Следующий фильтр, который нужно добавить в сценарий, называется Filter.BySlopeAngle. Угол уклона — это угол между осью элемента данных конструкции и горизонтальной плоскостью. Угол уклона дополняет собой угол наклона. Этот фильтр требуется для проверки того, что угол уклона второго элемента находится в диапазоне от 10 до 15 градусов. В качестве входных данных для этого узла Dynamo используется узел соединения или список узлов соединений, индекс элемента конструкции узла соединения, который требуется проверить, а также начало и конец диапазона угла уклона (0–90°) в градусах.

В этом примере требуется убедиться, что угол уклона второго элемента (индекс 1) в узле соединения находится в диапазоне от 0 (rangeStart) до 15 градусов (rangeEnd).



Поскольку элемент B4 является горизонтальным, узел соединения [B1,B4] не соответствует критериям данного фильтра.
Входные данные Вывод

Условие выполнено

Вывод

Условие не выполнено







Фильтр по углу между осями

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


В случае с W-образными формами можно использовать ось Y, так как она всегда перпендикулярна стенке. Для вставки соединения «Балка к полке колонны, с вутом» угол между осями Y двух элементов данных конструкции должен равняться 0 (они должны быть параллельны).


Добавьте узел Dynamo Filter.ByAngleBetweenAxes. В качестве входных данных для узла используется узел соединения или список узлов соединений, индексы элементов конструкций узла соединения, которые требуется проверить, две оси (X, Y или Z), которые требуется проверить, а также начало и конец диапазона угла уклона (0–90°) в градусах.

В этом примере требуется убедиться, что угол между осью Y первого элемента (индекс 0) и осью Y второго элемента (индекс 1) в узле соединения равняется 0.


Так как стенка элемента B3 не параллельна стенке элемента B1, узел соединения [B1, B3] не соответствует критериям данного фильтра.

Входные данные Вывод

Условие выполнено

Вывод

Условие не выполнено







Фильтр по форме сечения

С помощью узла Dynamo Filter.BySectionShape можно проверить форму сечения профиля, используемого в элементе данных конструкции. Просмотреть форму сечения можно в диалоговом окне свойств типа Revit в списке параметров типа в разделе «Несущие конструкции».

В качестве входных данных для узла Dynamo Filter.BySectionShape используется узел соединения или список узлов соединений, индекс элемента конструкции из узла соединения, который требуется проверить, и форма сечения (для нее требуется дополнительный узел Input.StructuralSectionShapes).
Прим.: Этот узел соединения также можно отобразить в проигрывателе Dynamo.
В данном примере требуется убедиться, что первый элемент (индекс 0) в узле соединения имеет форму сечения «Двутавровый профиль с параллельными полками».


Входные данные Вывод

Условие выполнено

Вывод

Условие не выполнено





[ ]

Фильтр по типу сечения

С помощью узла Dynamo Filter.BySectionType можно проверить имя типа сечения для элемента данных конструкции.

В качестве входных данных для узла Dynamo используется узел соединения или список узлов соединений, индекс элемента конструкции из узла соединения, который требуется проверить, и имя типа сечения (для него требуется дополнительный узел Input.StructuralDataTypes).

Прим.: Этот узел Dynamo также может быть использован в качестве входных данных в проигрывателе Dynamo.
В данном примере выполняется проверка того, что имя типа второго элемента (индекс 1) — W12X26.


Входные данные Вывод

Условие выполнено

Вывод

Условие не выполнено





[ ]

Фильтр по профилю сечения

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

В качестве входных данных для узла Dynamo используется узел соединения или список узлов соединений, индекс элемента конструкции из узла соединения, который требуется проверить, и имя профиля (для него требуется дополнительный узел Input.StructuralDataTypes).
Прим.: Этот узел Dynamo также может быть использован в качестве входных данных в проигрывателе Dynamo.
В этом примере требуется убедиться, что профиль второго элемента (индекс 1) в узле соединения имеет W-образную форму.


Входные данные Вывод

Условие выполнено

Вывод

Условие не выполнено





[ ]

Фильтр по углу между балками

Фильтр по углу между осями позволяет проверить угол между осями X, Y и Z, и для его использования требуется ввод данных в диапазоне от 0 до 90 градусов.

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

Разница заключается в том, что в случае с узлами соединений со стыковкой в конечных точках для фильтра можно задавать входные значения в диапазоне от 0 до 180 градусов. В случае, когда конечная точка стыкуется с телом или когда стыкуются два тела, данный фильтр работает как фильтр по углу между осями. Эта разница позволяет однозначно определить варианты, которые нельзя определить другими способами. Например, дополнительные углы между колонной и балкой асимметричного каркаса портала с одной балкой.


Фильтрация по вертикальному положению

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

Прим.: Для соединений, которые размещены для одного элемента ввода (таких как соединения опорной плиты), используйте Filter.ByVerticalPosition, чтобы убедиться, что значения усилий учитываются для правильного конца элемента ввода.

Фильтрация по значению усилий на конце элемента

В качестве входных данных для узла Dynamo Filter.ByMemberEndForces используется узел соединения или список узлов, индекс элемента конструкции из узла соединения, который требуется проверить, тип результата (Fx, Fy, Fz, Mx, My, Mz — можно использовать узел Input.ResultTypes), а также начало и конец диапазона усилий (для которого учитываются единицы Revit). Этот узел Dynamo можно использовать с целью размещения соединений на основании значений усилий на конце элемента каркаса для усилий, которые определены в диалоговом окне Revit Усилия на конце элемента.

Фильтрация по результатам расчета

В качестве входных данных для узла Dynamo используется узел соединения или список узлов соединений, индекс элемента конструкции из узла соединения, который требуется проверить, тип результата (Fx, Fy, Fz, Mx, My, Mz — можно использовать узел Input.ResultTypes), пакет результатов расчета с нужным вариантом нагрузки, комбинацией или оболочкой (требуется узел Input.AnalysisResults), а также начало и конец диапазона усилий (для которого учитываются единицы Revit). Этот узел можно использовать для размещения соединений на основании значений усилий на конце элемента каркаса для результатов расчета в Structural Analysis Toolkit.

Прим.: Для анализа производительности узел Filter.ByAnalysisResults или Filter.ByMemberEndForces следует разместить в конце сценария (после фильтрации по геометрическим условиям).

Следующий шаг: Добавление соединений в Dynamo скрипт