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
  • 在 GitHub 上查找 Dynamo 存储库
  • 使用 Git 拉取 Dynamo 存储库
  • 使用 Visual Studio 构建存储库
  • 运行本地构建
  • 使用 Visual Studio 调试本地构建
  • 拉取最新构建
Edit on GitHub
Export as PDF
  1. 开发人员入门

从源代码构建 Dynamo

Previous开发人员入门Next从源代码构建 DynamoRevit

Last updated 1 month ago

Dynamo 的源代码托管在 GitHub 上,可供任何人克隆并参与修改。在这一章中,我们将漫游如何使用 git 克隆存储库、使用 Visual Studio 编译源文件、运行和调试本地构建,以及从 GitHub 中拉取任何新更改。

在 GitHub 上查找 Dynamo 存储库

GitHub 是一种基于 的托管服务,它是一个版本控制系统,可用于跟踪更改并协调用户之间的工作。Git 是一种工具,我们可以利用它来下载 Dynamo 的源文件,并可以通过几条命令来保持更新这些源文件。通过使用此方法,将避免每次更新时下载和手动替换源文件这一不必要的固有混乱工作。Git 版本控制系统将跟踪本地和远程代码存储库之间的任何差异。

Dynamo 的源代码托管在 DynamoDS GitHub 上的以下存储库中:

Dynamo 源文件。

  1. 克隆或下载整个存储库

  2. 查看其他 DynamoDS 存储库

  3. Dynamo 的源文件

  4. Git 特定文件

使用 Git 拉取 Dynamo 存储库

我们需要一个 Dynamo 存储库的 URL,以通过其进行克隆。这可以在存储库页面上的“克隆或下载”按钮中找到。复制要粘贴到命令提示中的 URL。

  1. 选择“Clone or download”

  2. 复制 URL

在完成安装 Git 后,我们就可以克隆 Dynamo 库。首先打开命令提示。然后,使用更改目录命令 cd,以导航到要将源文件克隆到的目标文件夹。在本例中,我们在 Documents 中已创建了一个名为 Github 的文件夹。

cd C:\Users\username\Documents\GitHub

将“username”替换为您的用户名

在下一步中,我们将运行一个 git 命令,以将 Dynamo 存储库克隆到我们指定的位置。通过单击 GitHub 上的“克隆或下载”按钮,可获取命令中的 URL。在命令终端中运行此命令。请注意,这将克隆 Dynamo 存储库主分支(它是 Dynamo 的最新代码),并将包含到最新版本的 Dynamo 代码。此分支每天都会发生变化。

git clone https://github.com/DynamoDS/Dynamo.git

如果克隆操作成功完成,则我们知道 Git 工作正常。在文件资源管理器中,导航到克隆的目录以查看源文件。目录结构看起来应与 GitHub 上 Dynamo 存储库的主分支相同。

  1. Dynamo 的源文件

  2. Git 文件

使用 Visual Studio 构建存储库

在源文件现已克隆到我们的本地计算机后,我们可以为 Dynamo 构建可执行文件。为此,我们需要设置 Visual Studio IDE,并确保已安装 .NET Framework 和 DirectX。

  • 从本地 Dynamo 存储库 (Dynamo\tools\install\Extra\DirectX\DXSETUP.exe) 安装 Microsoft DirectX

可能已安装 .NET 和 DirectX。

在完成所有安装后,我们就可以启动 Visual Studio,然后打开位于 Dynamo\src 中的 Dynamo.All.sln 解决方案。

  1. 选择 File > Open > Project/Solution

  2. 浏览到 Dynamo 库并打开 src 文件夹

  3. 选择 Dynamo.All.sln 解决方案文件

  4. 选择 Open

在可以构建解决方案之前,应先指定一些设置。我们应该先构建调试版本的 Dynamo,以便 Visual Studio 可以在调试期间收集更多信息来帮助我们开发,并且我们希望以 AnyCPU 为目标。

这些将成为 bin 文件夹内的文件夹

  1. 在本例中,我们选择 Debug 作为解决方案配置

  2. 将解决方案平台设置为 Any CPU

在项目打开后,我们可以构建解决方案。此过程将创建一个我们可以运行的 DynamoSandbox.exe 文件。

通过构建项目,将恢复 NuGet 依存关系。

  1. 选择 Build > Build Solution

  2. 在“输出”窗口中确认构建是否已成功,其内容应类似于 ==== Build: 69 succeeded, 0 failed, 0 up-to-date, 0 skipped ====

运行本地构建

如果 Dynamo 构建成功,则会在 Dynamo 存储库中创建一个 bin 文件夹,其中包含 DynamoSandbox.exe 文件。在我们的案例中,我们使用“调试”选项进行构建,因此可执行文件位于 bin\AnyCPU\Debug 中。运行此文件会打开 Dynamo 的本地构建。

  1. 我们刚刚构建的 DynamoSandbox 可执行文件。运行此文件以启动 Dynamo。

现在,我们几乎已完全准备好开始为 Dynamo 开发。

使用 Visual Studio 调试本地构建

对于单机版 Dynamo 应用程序 DynamoSandbox,我们会介绍两个用于调试的选项:

  • 直接从 Visual Studio 构建并启动 Dynamo

  • 将 Visual Studio 附加到正在运行的 Dynamo 进程

如果需要,从 Visual Studio 启动 Dynamo 会为每个调试会话重新构建解决方案;因此,如果我们对源代码进行更改,则在调试时将合并这些更改。在 Dynamo.All.sln 解决方案仍打开的情况下,从下拉菜单中选择 Debug、AnyCPU 和 DynamoSandbox,然后单击 Start。这将构建 Dynamo 并启动一个新进程 (DynamoSandbox.exe),然后将 Visual Studio 的调试器附加到该进程。

直接从 Visual Studio 构建和启动应用程序

  1. 将配置设置为 Debug

  2. 将平台设置为 Any CPU

  3. 将启动项目设置为 DynamoSandbox

  4. 单击 Start 以开始调试过程

或者,我们可能希望调试已在运行的 Dynamo 进程,以解决特定图形打开或打包的问题。为此,我们将在 Visual Studio 中打开项目的源文件,然后使用 Attach to Process 调试菜单项附加到正在运行的 Dynamo 进程。

将正在运行的进程附加到 Visual Studio

  1. 选择 Debug > Attach to Process...

  2. 选择 DynamoSandbox.exe

  3. 选择 Attach

在这两种情况下,我们都会将调试器附加到要调试的进程。我们可以在启动调试器之前或之后在代码中设置断点,这将导致进程在执行该行代码之前立即暂停。如果在调试期间引发未捕获的异常,则 Visual Studio 会跳转到源代码中发生异常的位置。这是一种用于查找简单崩溃、未处理的异常以及了解应用程序执行流的有效方法。

在调试 DynamoSandbox 期间,我们在 Color.ByARGB 节点的构造函数中设置一个断点,这会导致 Dynamo 进程在节点实例化时暂停。如果此节点抛出异常或导致 Dynamo 崩溃,则我们可以单步调试构造函数中的每一行,以查找出现问题的位置。

  1. 断点

  2. 显示当前正在执行的函数和以前的函数调用的调用堆栈。

在下一节(从源代码构建 DynamoRevit)中,我们将漫游一个特定的调试示例,并说明如何设置断点、单步调试代码和读取调用堆栈。

拉取最新构建

由于 Dynamo 源代码托管在 GitHub 上,因此保持更新本地源文件的最简单方法是使用 Git 命令拉取更改。

使用命令行,将当前目录设置为 Dynamo 存储库:

cd C:\Users\username\Documents\GitHub\Dynamo

将 "username" 替换为您的用户名

使用以下命令,可拉取最新更改:

git pull origin master

  1. 在此处,我们可以看到本地存储库已使用远程存储库中的更改进行了更新。

除了拉取更新外,还有四个 Git 工作流需要熟悉。

  • 分叉 Dynamo 存储库,以创建一个独立于原始存储库的副本。此处所做的任何更改都不会影响原始存储库,并且可以使用拉取请求来获取或提交更新。分叉不是一个 Git 命令,而是 GitHub 添加的一个工作流 - 分叉、拉取请求模型是用于在线参与开源项目的最常见工作流之一。如果您要参与 Dynamo,它是值得学习的。

  • 分支 - 与分支中的其他工作隔离的实验工作或新功能。这使发送拉取请求更容易。

  • 在完成一个工作单元之后和在可能需要撤消的更改之后,经常进行提交。提交会记录对存储库的更改,并将在向主 Dynamo 存储库发出拉取请求时可见。

  • 当更改准备好正式提交给主 Dynamo 存储库时,创建拉取请求。

Dynamo 团队会提供有关创建拉取请求的具体说明。请参见本文档中的“拉取请求”部分,以了解要解决的更详细项目。

在可以克隆存储库之前,我们需要先安装 Git。请跟随此来了解安装步骤,以及如何设置 GitHub 用户名和电子邮件地址。在本例中,我们将在命令行中使用 Git。本手册假定您将使用的是 Windows,但也可以在 Mac 或 Linux 中使用 Git 来克隆 Dynamo 源代码。

下载并安装 ,这是一个功能齐全的免费 IDE(集成开发环境 - 更高版本也可以使用)

下载并安装 或更高版本

有关为其他平台(例如,Linux 或 OS X)构建 Dynamo 的说明,请访问此 。

调试是一个识别、隔离和更正错误或问题的过程。在从源代码成功构建 Dynamo 后,我们可以使用 Visual Studio 中的多款工具来调试正在运行的应用程序(例如,DynamoRevit 附加模块)。我们可以分析它的源代码来查找问题的根源,也可以观察当前正在执行的代码。有关如何在 Visual Studio 中调试和导览代码的更详细说明,请参见 。

有关 Git 命令的参照列表,请参见此。

简短手册
Microsoft Visual Studio Community 2015
Microsoft .NET Framework 4.5
Wiki 页面
Visual Studio 文档
文档页面
Git
https://github.com/DynamoDS/Dynamo
Dynamo 源文件
克隆存储库
命令提示
Git 克隆操作的结果
Dynamo 的源文件
打开解决方案文件
解决方案设置
构建解决方案
DynamoSandbox 可执行文件
从 Visual Studio 构建和启动应用程序
“附加到进程”对话框
设置断点
更新的本地存储库