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
Edit on GitHub
Export as PDF
  1. 附录

可视化编程和 Dynamo

Previous常见问题解答Next资源

Last updated 1 month ago

什么是可视化编程?

设计工作经常涉及在设计的各部分之间建立视觉、系统或几何关系。多数情况下,这些关系由工作流开发,工作流按一定规则实现从概念到结果的形成。也许并不了解,其实我们是按一定算法进行工作的 - 定义一组循序渐进的操作,这些操作遵循输入、处理和输出的基本逻辑。编程让我们可以继续通过这种方式进行工作,但采用的方法是对算法进行规范化。

现有算法

尽管提供了一些强大机会,但算法这一术语本身可能会带来一些误解。算法可能会产生意想不到、疯狂或酷炫的效果,但它们并不是魔术。实际上,它们本身平淡无奇。让我们使用一个实例,如折纸鹤。我们从一张正方形纸开始(输入)、遵循一系列折叠步骤(处理操作),然后完成折叠一张纸鹤(输出)。

折纸鹤

算法存在于何处?它是抽象的步骤集,我们可以通过两种方式来表示它们 - 文字或图形。

文字说明:

  1. 从一张正方形纸开始,有颜色的一面朝上。对折,然后打开。换另一方向对折。

  2. 翻转纸张,白色一面朝上。将纸张对折、折出折痕并打开,然后换另一方向再次对折。

  3. 使用折出的折痕,将模型的 3 个顶角向下折到底角。展平模型。

  4. 向中心折叠顶部三角形翼片,然后展开。

  5. 向下折叠模型顶部、折出折痕,然后展开。

  6. 打开模型最上方的翼片、将它向上翻折,同时向内按压模型两侧。向下展平,折出折痕。

  7. 翻转模型,然后对另一侧重复步骤 4-6。

  8. 向中心折叠顶部翼片。

  9. 对另一侧重复上述操作。

  10. 向上折叠模型的两条“腿”、折出折痕,然后展开。

  11. 沿刚才折出的折痕向内反向折叠“腿”。

  12. 向内反向折叠一侧以制作头部,然后向下折叠翅膀。

  13. 现在,已完成制作一个纸鹤。

图形说明:

编程已定义

使用其中任一组说明都应该可以完成纸鹤制作;如果您按照自己的方式制作,那么您已应用了一种算法。唯一的区别是我们读取该组说明的形式化的方式,该方式会引导我们进行编程。编程(通常是 计算机编程 的简写)是将一系列操作的处理规范化为可执行程序的行为。如果我们将上述用于制作纸鹤的说明转换为计算机可以读取和执行的格式,那么我们就是在编程。

编程的关键及我们会遇到的第一个障碍是:必须依靠某种形式的抽象形式,才能与计算机进行有效通信。采用任何数量的编程语言(如 JavaScript、Python 或 C)形式。如果我们可以写出一组可重复的说明(如用于折纸鹤),我们只需为计算机转换它即可。我们正在努力让计算机能够制作纸鹤,甚至众多不同的纸鹤(其中每个纸鹤都略微不同)。这就是编程的力量 - 计算机将重复执行我们分配给它的任何任务或任务集,而不会出现延迟和人为错误。

可视化编程已定义

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

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

如果您的任务是为折叠纸鹤编写说明,您将如何处理?您要使用图形、文字还是两者的某种组合来制作它们?

如果您的回答中包含图形,那么可视化编程绝对适合您。编程和可视化编程的过程基本相同。它们利用相同的规范化框架;但是,我们通过图形(或“可视化”)用户界面定义程序的说明和关系。我们将预打包的节点连接在一起,而不是键入语法约束的文字。下面是对同一算法(即“通过点画圆”)的比较,分别用节点和代码编程:

可视化程序:

文本程序:

myPoint = Point.ByCoordinates(0.0,0.0,0.0);
x = 5.6;
y = 11.5;
attractorPoint = Point.ByCoordinates(x,y,0.0);
dist = myPoint.DistanceTo(attractorPoint);
myCircle = Circle.ByCenterPointRadius(myPoint,dist);

我们的算法结果:

以此类方式进行编程的可视化特性降低了入门门槛,无需与设计师经常沟通。Dynamo 属于可视化编程范例,但正如我们稍后所见到的,我们仍可以在应用程序中使用文本编程。

折纸鹤说明
12KB
Visual Programming - Circle Through Point.dyn