NSDT工具推荐Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - AI模型在线查看 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 - 3D道路快速建模

Dynamo 使我们能够采用一种可视化的方法创建程序。在这篇文章中,我们将介绍了Dynamo可视化程序的元素、Dynamo 库中可用的节点的组织、节点的部件和状态以及工作空间的最佳实践。

1、节点

在 Dynamo 中,节点是你用来连接以形成可视化程序的对象。每个节点执行特定的操作 - 有时可能像存储数字一样简单,有时又可能是一个更复杂的操作,如创建或查询几何形状。

1.1Dynamo节点

Dynamo 中的大多数节点由五个部分组成。虽然有例外,如输入节点,但每个节点的结构可描述为:

Node Breakdown Point by Coordinates
  1. 名称 - 遵循Category.Name 命名惯例的节点名称
  2. 主体 - 节点的主体 - 在此处单击右键可以显示整个节点级别的选项
  3. 端口(输入/输出) - 向节点提供输入数据,或者输出节点操作的结果,作为连接线的锚点
  4. 绑带图标 - 表示为匹配列表输入指定的绑带选项(稍后将进一步说明)
  5. 默认值 - 在输入端口单击右键 - 某些节点具有可使用或不使用的默认值。

1.2 节点端口

节点的输入和输出称为端口,并充当连接线的锚点。数据通过左侧的端口进入节点,并在其右侧执行操作后流出节点。端口只能接收特定类型的数据。例如,通过Coordinate节点将2.75等数字连接到Point节点上的端口将成功地创建Point:但是,如果我们向同一端口提供"Red"字符串则会导致错误。

提示:悬停在端口上,查看包含预期数据类型的提示。
Port Labels-Point by Coordinates
  1. 端口标识
  2. 提示信息
  3. 数据类型
  4. 默认值

1.3 节点状态

Dynamo 根据每个节点的状态,用不同的配色方案渲染节点,从而表现可视化程序的执行状态。此外,在名称或端口上悬停或右键单击还会提供其他信息和选项。

States
  1. 活动 - 具有深灰色背景标题的节点连接良好,并且其所有输入都成功连接
  2. 非活动 - 灰色节点处于非活动状态,需要与线连接才能成为活动工作空间中程序流的一部分
  3. 错误状态 - 红色表示节点处于错误状态
  4. 冻结 - 透明节点已冻结,暂停执行节点
  5. 已选定 - 当前选定的节点其边框高亮
  6. 警告 - 黄色节点处于警告状态,这意味着它们可能具有不正确的数据类型
  7. 背景预览 - 深灰色表示几何预览已关闭

如果你的可视化程序包含警告或错误,Dynamo 将提供有关该问题的更多信息。任何黄色节点在名称上方也会有一个提示信息。将鼠标悬停在提示信息上可以将其展开。

提示:使用此提示信息,检查上游节点,查看所需的数据类型或数据结构是否出错。
Node Errors Tooltip
  1. 警告信息 - "空" 输入或没有数据可以解读为双精度浮点数。
  2. 使用Watch节点检查输入数据
  3. 上游的Number节点存储"Red"而不是数字

2、Dynamo连接线

节点之间的连接线,用来创建关系并建立我们的可视化程序流。我们可以把它们想象成电线,将数据脉冲从一个对象传到另一个对象。

2.1 程序流

连接线将一个节点的输出端口连接到另一个节点的输入端口。此方向性在可视化程序中建立了数据流。虽然我们可以在工作空间中自由地放置节点,但由于输出端口位于节点的右侧,输入端口位于左侧,我们通常可以说程序流从左到右移动。

Program Flow

2.2 创建连接线

在一个节点的端口上单击左键,然后在另一节点的端口上再次单击左键,就创建了连接线。当我们在进行连接时,连接线显示为虚线,并在成功连接时变成实线。数据将始终通过此线从输出流到输入:但是,我们可以通过改变点击端口的顺序来向任一方向创建导线。

提示:在第二次单击完成连接之前,请允许连接线捕捉端口,并将鼠标悬停在那里查看端口的提示信息。
Creating Wires
  1. 单击Number Sequence节点的输出端口seq
  2. 当你将鼠标移动到另一个端口时,连接线显示为虚线
  3. 单击Point.ByCoordinates的输入端口y完成连接

2.3 编辑连接线

我们经常希望通过编辑 连接来调整可视化程序流。要编辑连接线,请左键单击已连接的节点输入端口。您现在有两个选项:

Editing Wires
  1. 现有连接线
  2. 要更改连接的输入端口,请左键单击另一个输入端口
  3. 要删除连接线,请将连接线拉开,然后左键单击工作区

*注意-Dynomo新版本可以一次移动多个连接线,详情查阅这里

2.4 连接线预览

默认情况下,预览时连接线将显示为灰色。选中一个节点时,该节点的任何连接线也同样高亮显示。

Wire Preview
  1. 默认连接线
  2. 高亮显示的连接线

Dynamo 还允许我们通过"视图>连接器菜单"自定义我们的连接线在工作空间中的外观。在这里,我们可以在Curve或PolyLine之间切换。

Wire Connectors
  1. 连接器类型:曲线
  2. 连接器类型:多段线

3、Dynamo库

Dynamo 库包含我们添加到工作空间的节点,以定义要执行的可视化程序。在库中,我们可以搜索或浏览节点。节点包括 - 已安装的基本节点、我们定义的自定义节点以及我们添加到 Dynamo 的包管理器中的节点 - 按类别进行高级别组织。让我们回顾一下库的组织,并探索我们将经常使用的主要节点。

3.1 库集合

我们在应用程序中与之交互的 Dynamo实际上是功能库的集合,每个库都包含按类别分组的节点。虽然这一开始看起来有些笨拙,但它是组织 Dynamo 默认安装附带的节点的灵活框架 - 当我们开始使用自定义节点和附加包扩展此基础功能时,情况会更好。

3.2 组织方案

Dynamo UI 的库部分由分层组织起来的库组成。当我们深入到库中时,会依次浏览库、库的类别以及该类别的子类别以查找节点。

Library Hierarchy
  1. 库界面 - Dynamo界面区域
  2. 一个库 - 相关类别的集合,如几何
  3. 一个类别 - 相关节点的集合,如与相关的一切
  4. 一个子类别 - 类别内节点的细分,通常细分为创建操作查询
  5. 一个节点 - 添加到工作空间以执行操作的对象

3.3 命名约定

每个库的层次结构反映在添加到工作空间的节点名称中,我们也可以在搜索字段或代码块(使用Dynamo 文本语言)中使用该节点。除了使用关键词尝试查找节点之外,我们还可以键入以句号分割的层次结构。

在库层级中的不同位置按格式library.category.nodeNamege 输入将得到不同的结果:

Searching the Library - create from three "naming" pngs
  1. library.category.nodeName
  2. category.nodeName
  3. nodeNamekeyword

通常,工作区中的节点名称将以category.nodeName格式呈现,但有一些显著的例外,特别是在Input和View类别中。注意具有类似命名的节点,并了解类别之间的差异:

Node Names
  1. 大多数库的节点将包括类别格式
  2. Point.ByCoordinatesUV.ByCoordinates 有相同的名称,但来自不同的类别
  3. 显著的例外包括内置功能、Core.Input、Core.View和操作符

3.4 常用节点

Dynamo 的基本安装中包含了数百个节点,哪些节点对于开发我们的可视化程序至关重要?让我们专注于那些让我们定义程序的参数(输入),查看节点的操作(观看)的结果,并通过快捷方式(代码块)定义输入或功能。

输入节点:Input

输入节点是我们可视化程序的用户(无论你自己还是其他人)与关键参数交互的主要手段。以下是核心库输入类别中的节点:

Input Nodes
  1. 布尔
  2. 数值
  3. 字符串
  4. 数字滑块
  5. 整数滑块
  6. 目录路径
  7. 文件路径

监视节点:Watch

监视节点对于管理流经可视化程序的数据至关重要。虽然你可以通过节点数据预览查看节点的结果,但是你可能希望将其保留在监视节点中,或通过Watch3D节点查看几何结果。这两个节点都位于核心库中的视图类别中。

提示:当你的视觉程序包含大量节点时, 3D 预览可能会分散注意力。考虑取消选中"设置"菜单中的显示背景预览选项,并使用 Watch3D 节点预览你的几何形状。
Watch and Watch3D
  1. Watch节点 - 请注意,当你在"Watch节点"中选择项目时,它将在 Watch3D 和 3D 预览中标记
  2. Watch3D - 按住右下角来调整预览窗口大小,鼠标操作方式同 3D 预览

代码块:Code Block

代码块节点可用于定义由半结肠分离的行的代码块。这可以很简单。我们还可以使用代码块作为定义数字输入或调用其他节点功能的捷径。这样做的语法遵循Dynamo文本语言的命名公约,设计脚本,并涵盖在第7.2节。让我们尝试用这条快捷方式做一个圆圈:X/Y

Code Block Shortcut
  1. 双击鼠标以创建代码块节点
  2. 输入Circle.ByCenterPointRadius(x,y);
  3. 单击工作空间以清除选择,应自动添加和输入xy
  4. 创建Point.ByCoordinates节点和数字滑块节点,然后将它们连接到代码块的输入
  5. 执行可视化程序的结果应该是 3D 预览中的一个圆

4、管理Dynamo程序

可视化编程过程可能是一项强大的创意活动,但很快,程序流和关键用户输入就会被工作空间的复杂性和/或布局所掩盖。让我们回顾一些管理Dynamo程序的最佳实践。

4.1 对奇

一旦我们在工作空间中添加了多个节点,可能就需要重新组织节点的布局,以便于清晰起见。通过选择多个节点并在工作区上右键单击,弹出窗口包括一个"对齐选择"菜单,其中包含 X 和 Y 中的对齐和分布选项。

Align
  1. 选择多个节点
  2. 右键单击工作区
  3. 使用对齐选择选项

4.2 注释

有了一些Dynamo经验之后,我们也许可以通过查看节点名称并跟踪程序流来"阅读"可视化程序。对于所有级别的用户来说,包括纯语言标签和描述也是一种好的做法。Dynamo 有一个具有可编辑文本字段的Note节点。我们可以通过两种方式将Note添加到工作空间:

Notes
  1. 浏览菜单编辑>创建Note
  2. 使用键盘快捷方式

将 Note 添加到工作区后,将弹出一个文本字段,以便我们编辑注释文本。创建后,我们可以通过双击或右键单击Note节点来编辑其中的注释。

Notes Edit

4.3 分组

当我们的可视化程序变大以后,识别将要执行的较大步骤是有帮助的。我们可以突出显示带有的较大节点集合,以便在背景中用彩色矩形和标题标记它们。有三种方法可以使一个组选择多个节点:

Groups
  1. 浏览菜单编辑>创建组
  2. 使用键盘快捷方式
  3. 右键单击工作区并选择"创建组"

创建组后,我们可以编辑其设置,如标题和颜色。

Group Settings
提示:同时使用Note和Group是注释文件和提高可读性的有效方法。

以下是我们从第 2.4 节开始的程序,并添加了说明和组:

Grouping Example
  1. Note:"网格参数"
  2. Note:"网格点"
  3. Group: "Create a Grid of Points"
  4. Group: "Create an Attractor Point"
  5. Note: "Calibrate Distance Values"
  6. Note: "Variable Grid of Circles"

原文链接:ANATOMY OF A VISUAL PROGRAM

BimAnt翻译整理,转载请标明出处