Dynamo
Primer for v2.0
简体中文
简体中文
  • 关于
  • 简介
    • 什么是 Dynamo 以及它是如何工作的?
    • Primer 用户手册、Dynamo 社区和平台
  • Dynamo 设置
  • 用户界面
    • 工作空间
    • 库
  • 节点和导线
  • 基本节点和概念
    • 节点索引
    • 计算设计的几何图形
      • 几何图形概述
      • 向量、平面和坐标系
      • 点
      • 曲线
      • 曲面
      • 实体
      • 网格
    • 程序的构建块
      • 数据
      • 数学
      • 逻辑
      • 字符串
      • 颜色
    • 使用列表进行设计
      • 什么是列表
      • 使用列表
      • 列表的列表
      • n 维列表
    • Dynamo 中的词典
      • 什么是词典
      • 词典节点
      • 代码块中的词典
      • Revit 使用案例
  • 自定义节点和软件包
    • 自定义节点
      • 自定义节点简介
      • 创建自定义节点
      • 发布到库
    • 软件包
      • 软件包简介
      • 软件包案例研究 - Mesh Toolkit
      • 开发软件包
      • 发布软件包
      • Zero-Touch 输入
  • 适用于 Revit 的 Dynamo
    • Revit 连接
    • 选择
    • 编辑
    • 创建
    • 自定义
    • 记录
  • Dynamo for Civil 3D
    • Civil 3D 连接
    • 快速入门
    • 节点库
    • 样例工作流
      • 道路
        • 灯杆放置
      • 浇口面
        • 服务设施放置
      • 公共设施
        • 重命名结构
      • 轨道
        • 间隙包络
      • 勘测
        • 点编组管理
    • 高级主题
      • 对象绑定
      • Python 和 Civil 3D
    • Dynamo Player
    • 有用的软件包
    • 资源
  • Forma Beta 版中的 Dynamo
    • 在 Forma 中设置 Dynamo Player
    • 在 Dynamo Player 中添加和共享图形
    • 在 Dynamo Player 中运行图形
    • Dynamo 计算服务与 Desktop Dynamo 的差异
  • 在 Dynamo 中编码
    • 代码块和 DesignScript
      • 什么是代码块
      • DesignScript 语法
      • 简写
      • 函数
    • 使用 DesignScript 的几何图形
      • DesignScript 几何图形基础知识
      • 几何基本体
      • 向量数学
      • 曲线:内插和控制点
      • 平移、旋转和其他变换
      • 曲面:内插、控制点、放样、旋转
      • 几何参数化
      • 相交和修剪
      • 几何布尔
      • Python 点生成器
    • Python
      • Python 节点
      • Python 和 Revit
      • 设置自己的 Python 模板
    • 语言更改
  • 最佳做法
    • 图形策略
    • 脚本编写策略
    • 脚本参考
    • 管理您的程序
    • 在 Dynamo 中高效处理大型数据集
  • 样例工作流
    • 快速入门工作流
      • 参数化花瓶
      • 吸引器点
    • 概念索引
  • 开发人员入门
    • 从源代码构建 Dynamo
      • 从源代码构建 DynamoRevit
      • 在 Dynamo 中管理和更新依赖项
    • 为 Dynamo 开发
      • 快速入门
      • Zero-Touch 案例研究 - 网格节点
      • 在 Zero-Touch 节点中执行 Python 脚本 (C#)
      • 进一步了解 Zero-Touch
      • 高级 Dynamo 节点自定义
      • 在 Dynamo 软件包中使用 COM(互操作)类型
      • NodeModel 案例研究 - 自定义 UI
      • 更新 Dynamo 2.x 的软件包和 Dynamo 库
      • 更新 Dynamo 3.x 的软件包和 Dynamo 库
      • 扩展程序
      • 为 Dynamo 2.0+ 定义自定义软件包组织
      • Dynamo 命令行界面
      • Dynamo 集成
      • 为 Dynamo For Revit 开发
      • 发布软件包
      • 从 Visual Studio 构建软件包
      • 软件包形式的扩展
    • 拉取请求
    • 测试期望
    • 示例
  • 附录
    • 常见问题解答
    • 可视化编程和 Dynamo
    • 资源
    • 发行说明
    • 有用的软件包
    • 示例文件
    • 主体集成图
    • 下载 PDF
    • Dynamo 键盘快捷键
Powered by GitBook
On this page
  • 选择 Revit 图元
  • Revit 层次结构
  • 使用 Dynamo 节点进行数据库导航
  • 练习
  • 选择体量和曲面
  • 选择梁
  • 选择桁架
Edit on GitHub
Export as PDF
  1. 适用于 Revit 的 Dynamo

选择

PreviousRevit 连接Next编辑

Last updated 1 month ago

选择 Revit 图元

Revit 是一个数据丰富的环境。这为我们提供了一系列选择功能,使其远超“点击”范围。我们可以查询 Revit 数据库,以及在执行参数化操作的同时将 Revit 图元动态链接到 Dynamo 几何图形。

UI 中的 Revit 库提供了“选择”类别,该类别允许通过多种方式选择几何图形。

Revit 层次结构

要正确选择 Revit 图元,请务必全面了解 Revit 图元层次结构。要选择项目中的所有墙?选择“按类别”。要选择您中世纪风格大厅中的每把埃姆斯椅?选择“按族”。

我们快速回顾一下 Revit 层次结构。

还记得生物学的分类法吗?界、门类、类别、等级、族、属、种?Revit 图元以类似方式分类。在基本级别上,Revit 层次结构可以分解为“类别”、“族”、“类型*”和“实例”。实例是一个模型图元(具有唯一 ID),而类别则定义常规组(如“墙”或“楼板”)。通过这种方式组织 Revit 数据库,我们可以选择一个图元,并根据层次结构中的指定级别选择所有相似图元。

*Revit 中的类型定义与编程中的类型不同。在 Revit 中,类型是指层次结构的分支,而不是“数据类型”。

使用 Dynamo 节点进行数据库导航

下面的三幅图像对 Dynamo 中 Revit 图元选择的主要类别进行了细分。这些是可结合使用的优秀工具,我们将在以下练习中介绍其中一些工具。

“点击” 是直接选择 Revit 图元的最简单方法。可以选择完整的模型图元或其一部分拓扑(如面或边)。这会保持与该 Revit 对象的动态链接,因此,当 Revit 文件更新其位置或参数时,参照的 Dynamo 图元将在图形中更新。

“下拉”菜单 在 Revit 项目中创建所有可访问图元的列表。可以使用此选项来参照在视图中不一定可见的 Revit 图元。这是一款优秀的工具,可用于查询现有图元或者在 Revit 项目或族编辑器中创建新图元。

![](../.gitbook/assets/selecting _database_navigation_with_dynamo_nodes_02.png)

还可以在 Revit 层次结构 中按特定层级选择 Revit 图元。这是一个功能强大的选项,可用于自定义大型数据阵列,以准备文档或衍生式实例化和自定义。

在上述三幅图中,我们将深入探讨一个练习,该练习从基本 Revit 项目中选择图元,为我们将在本章的其余部分创建的参数化应用程序做好准备。

练习

单击下面的链接下载示例文件。

可以在附录中找到示例文件的完整列表。

在此 Revit 文件示例中,我们有三种图元类型的简单建筑。我们将以此为例,在 Revit 层次结构的上下文中选择 Revit 图元。

  1. 建筑体量

  2. 梁(结构框架)

  3. 桁架(自适应构件)

基于 Revit 项目视图中当前的图元,我们可以得出哪些结论?我们需要在层次结构中向下行进多远来选择相应图元?当然,在处理大型项目时,这将成为一项更为复杂的任务。有许多可用选项:我们可以按“类别”、“标高”、“族”、“实例”等选择图元。

选择体量和曲面

  1. 由于我们使用的是基本设置,因此我们选择“Categories”下拉节点中的 “Mass” 来选择建筑体量。这可在“Revit”>“选择”选项卡中找到。

  2. “Mass”类别的输出只是类别本身。我们需要选择相应图元。为此,我们使用 “All Elements of Category” 节点。

请注意,此时我们在 Dynamo 中看不到任何几何图形。我们已选择 Revit 图元,但尚未将该图元转换为 Dynamo 几何图形。这是非常重要的差异。如果要选择大量图元,您不会希望在 Dynamo 中预览所有这些图元,因为这会降低所有操作的速度。Dynamo 是一款用于管理 Revit 项目的工具(无需执行几何图形操作),我们将在本章的下一部分中进行介绍。

在本例中,我们使用的是简单几何图形,因此我们希望将几何图形输入 Dynamo 预览。上述“Watch”节点中的“BldgMass”旁边有一个绿色数字。这表示该图元的 ID,指示处理的是 Revit 图元,而不是 Dynamo 几何图形。下一步是在 Dynamo 中将此 Revit 图元转换为几何图形。

  1. 使用 “Element.Faces” 节点,我们会得到一个包含曲面的列表,表示 Revit 体量的每个面。现在,我们可以在 Dynamo 视口中看到几何图形,然后开始参照相应面进行参数化操作。

以下是另一种方法。在这种情况下,我们将不会通过 Revit 层次结构 (“All Elements of Category”) 进行选择,而是改为在 Revit 中明确选择几何图形。

  1. 使用 “Select Model Element” 节点,单击*“select”*(或 “change” )按钮。在 Revit 视口中,选择所需的图元。在本例中,我们选择的是建筑体量。

  2. 我们可以使用 “Element.Geometry” 将完整体量作为一个实体几何图形进行选择,而不是使用 “Element.Faces”。这将选择该体量中包含的所有几何图形。

  3. 使用 “Geometry.Explode” ,我们可以再次获得包含曲面的列表。这两个节点的工作方式与 “Element.Faces” 相同,但提供了用于深入到 Revit 图元的几何图形的替代选项。

使用一些基本列表操作,我们可以查询关注的面。

![](images/2/selecting - exercise 05.jpg)

  1. 首先,将之前选定的图元输出到“Element.Faces”节点。

  2. 接着,“List.Count” 节点会显示我们正在处理体量中的 23 个曲面。

  3. 参照此数字,我们将整数滑块的最大值更改为 “22”。

  4. 使用 “List.GetItemAtIndex”,我们为 “index” 输入列表和整数滑块。在选定内容之间滑动,当到达 “索引 9” 并隔离将桁架用作主要外立面时,便会停止。

上一步有点麻烦。我们可以使用 “Select Face” 节点更快地完成此操作。这样,我们便可以隔离 Revit 项目中本身不是图元的面。除了我们选择曲面而非完整图元之外,与 “Select Model Element” 相同的交互也适用。

假定我们要隔离建筑的主要外立面墙。我们可以使用 “Select Faces” 节点来执行此操作。单击“Select”按钮,然后在 Revit 中选择四个主要外立面。

选择四面墙后,确保在 Revit 中单击“完成”按钮。

现在,面作为曲面输入到 Dynamo 中。

选择梁

现在,我们看一下横跨中庭的梁。

  1. 使用 “Select Model Element” 节点,选择其中一个梁。

  2. 将梁图元连接到 “Element.Geometry” 节点,现在在 Dynamo 视口中便有了梁。

  3. 我们可以使用 “Watch3D” 节点放大几何图形(如果在“Watch 3D”中看不到梁,请单击鼠标右键,然后点击“zoom to fit”)。

Revit/Dynamo 工作流中可能经常遇到的问题:如何选择一个图元并获取所有相似图元?由于选定的 Revit 图元中包含其所有层次结构信息,因此我们可以查询其族类型并选择该类型的所有图元。

  1. 将梁图元连接到 “Element.ElementType” 节点。

  2. “Watch” 节点显示,输出现在是族符号,而不是 Revit 图元。

  3. “Element.ElementType” 是一个简单查询,因此我们可以在代码块中执行此操作(就像使用 x.ElementType; 一样简单)并获得相同的结果。

  1. 要选择其余梁,我们使用 “All Elements of Family Type” (所有族类型的图元)节点。

  2. “Watch”节点显示我们已选择了五个 Revit 图元。

  1. 我们也可以将所有这五个图元都转换为 Dynamo 几何图形。

在任何情况下,如果要输入 500 个梁,我们是否需要将所有曲面都用来执行所需的参数化操作?或者,我们是否可以从梁中提取基本信息,并使用基本几何图元执行衍生式任务?在学习本章时,我们要牢记这个问题。例如,接下来让我们看一下桁架系统。

选择桁架

使用相同的节点图,选择桁架图元而不是梁图元。在执行此操作之前,请在上一步中删除“Element.Geometry”。

接下来,我们准备从桁架族类型中提取一些基本信息。

  1. 在 “Watch” 节点中,我们可以看到从 Revit 中选择的自适应构件列表。我们要提取基本信息,因此我们从自适应点开始操作。

  2. 将 “All Elements of Family Type” (所有族类型的图元)节点连接到 “AdaptiveComponent.Location” 节点。这样,我们就得到了一个包含列表的列表,每个列表都有三个点,这三个点代表自适应点的位置。

  3. 连接 “Polygon.ByPoints” 节点会返回一条复合线。我们可以在 Dynamo 视口中看到这一结果。通过此方法,我们已可视化了一个图元的几何图形,并对其余图元阵列的几何图形进行了抽象处理(其数量可能大于本示例)。

提示:如果在 Dynamo 中单击 Revit 图元的绿色数字,则 Revit 视口将缩放到该图元。

如果我们有 500 个梁,该怎样办?将所有这些图元都转换为 Dynamo 几何图形会非常慢。如果 Dynamo 计算节点需要较长时间,可能需要使用“冻结”节点功能,以便在开发图形时暂停执行 Revit 操作。有关冻结节点的详细信息,请查看“实体”章节中的“”部分。

冻结
5MB
Revit-Selecting.zip
archive
UI