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
  • 创建 Visual Studio 项目
  • Dynamo 读取类和方法的方式
  • 添加 Dynamo NuGet 软件包参照
Edit on GitHub
Export as PDF
  1. 开发人员入门
  2. 为 Dynamo 开发

快速入门

Previous为 Dynamo 开发NextZero-Touch 案例研究 - 网格节点

Last updated 2 months ago

在开始开发之前,请务必为新项目打下坚实基础。Dynamo 开发人员社区中的多个项目模板是绝佳的起点,但了解如何从头开始构建项目更有价值。通过从头开始构建项目,将能够更深入地了解开发过程。

创建 Visual Studio 项目

Visual Studio 是一个功能强大的 IDE,我们可以在其中创建项目、添加参照、构建 .dlls 和调试。在创建新项目时,Visual Studio 还会创建一个解决方案,即用于组织项目的结构。多个项目可以存在于一个解决方案中,并可以一起构建。要创建 ZeroTouch 节点,我们需要开始一个新的 Visual Studio 项目,我们将在该项目中编写一个 C# 类库并构建一个 .dll。

Visual Studio 中的“新建项目”窗口

  1. 首先打开 Visual Studio 并创建一个新项目:File > New > Project

  2. 选择 Class Library 项目模板

  3. 为项目命名(我们已将项目命名为“MyCustomNode”)

  4. 设置项目的文件路径。在本例中,我们将其保留在默认位置

  5. 选择 Ok

Visual Studio 将自动创建并打开一个 C# 文件。我们应为其指定一个合适名称、设置工作空间,并将默认代码替换为以下乘法方法。

 namespace MyCustomNode
 {
     public class SampleFunctions
     {
         public static double MultiplyByTwo(double inputNumber)
         {
             return inputNumber * 2.0;
         }
     }
 }
  1. 从 View 打开“解决方案资源管理器”和“输出”窗口。

  2. 在右侧的“解决方案资源管理器”中,将 Class1.cs 文件重命名为 SampleFunctions.cs。

  3. 为乘法函数添加上述代码。我们稍后会介绍 Dynamo 将如何读取您的 C# 类的详情。

  4. 解决方案资源管理器:该资源管理器使您能够访问项目中的所有内容。

  5. “输出”窗口:我们稍后会需要使用该窗口来查看构建是否已成功。

下一步是构建项目,但在构建之前,我们需要检查一些设置。首先,确保已选择 Any CPU 或 x64 作为平台目标,并确保在“项目特性”中未选中 Prefer 32-bit。

  1. 通过选择 Project > "ProjectName" Properties 打开项目特性

  2. 选择 Build 页面

  3. 从下拉菜单中选择 Any CPU 或 x64

  4. 确保未选中 Prefer 32-bit

现在,我们可以构建项目以创建 .dll。要执行此操作,请从 Build 菜单中选择 Build Solution,或使用快捷键 CTRL+SHIFT+B。

  1. 选择 Build > Build Solution

  2. 可以通过检查“输出”窗口来确定您的项目是否已成功构建

如果项目已成功构建,则项目的 bin 文件夹中会有一个名为 MyCustomNode 的 .dll。在本例中,我们已将项目的文件路径保留为 Visual Studio 的默认路径:c:\users\username\documents\visual studio 2015\Projects。让我们来看一下项目的文件结构。

  1. bin 文件夹包含从 Visual Studio 构建的 .dll。

  2. Visual Studio 项目文件。

  3. 类文件。

  4. 由于我们的解决方案配置已设置为 Debug,因此将在 bin\Debug 中创建 .dll。

现在,我们可以打开 Dynamo 并输入 .dll。使用“添加”功能时,导航到项目的 bin 位置,然后选择要打开的 .dll。

  1. 选择“添加”按钮以输入 .dll

  2. 浏览到项目位置。我们的项目位于 Visual Studio 的默认文件路径:C:\Users\username\Documents\Visual Studio 2015\Projects\MyCustomNode

  3. 选择要输入的 MyCustomNode.dll

  4. 单击 Open 以载入 .dll

如果在名为 MyCustomNode 的库中创建了一个类别,则表示 .dll 已成功输入!但是,Dynamo 创建了两个节点,而我们希望这两个节点成为单个节点。在下一节中,我们将解释发生这种情况的原因,以及 Dynamo 读取 .dll 的方式。

  1. Dynamo 库中的 MyCustomNode。“库”类别由 .dll 名称确定。

  2. 画布上的 SampleFunctions.MultiplyByTwo。

Dynamo 读取类和方法的方式

在 Dynamo 载入 .dll 后,它会将所有公有静态方法显示为节点。构造函数、方法和特性将分别转换为 Create、Action 和 Query 节点。在我们的乘法示例中,MultiplyByTwo() 方法会在 Dynamo 中成为 Action 节点。这是因为节点已根据其方法和类进行命名。

  1. 根据方法的参数名称,输入命名为 inputNumber。

  2. 输出默认命名为 double,因为这是要返回的数据类型。

  3. 节点命名为 SampleFunctions.MultiplyByTwo,因为这些是类和方法名称。

在上面的示例中,创建了额外的 SampleFunctions Create 节点,因为我们没有显式地提供构造函数,因此自动创建了一个构造函数。我们可以通过在 SampleFunctions 类中创建一个空的私有构造函数,来避免出现这种情况。

namespace MyCustomNode
{
    public class SampleFunctions
    {
        //The empty private constructor.
        //This will be not imported into Dynamo.
        private SampleFunctions() { }

        //The public multiplication method. 
        //This will be imported into Dynamo.
        public static double MultiplyByTwo(double inputNumber)
        {
            return inputNumber * 2.0;
        }
    }
}
  1. Dynamo 已将我们的方法输入为 Create 节点

添加 Dynamo NuGet 软件包参照

乘法节点非常简单,不需要参照 Dynamo。例如,如果我们要访问 Dynamo 的任何功能来创建几何图形,则我们需要参照 Dynamo NuGet 软件包。

要在 Visual Studio 项目中参照这些软件包,请通过上述链接从 NuGet 中下载软件包并手动参照 .dll,或者在 Visual Studio 中使用 NuGet 软件包管理器。首先,我们可以漫游如何在 Visual Studio 中使用 NuGet 安装它们。

  1. 通过选择 Tools > NuGet Package Manager > Manage NuGet Packages for Solution... 来打开 NuGet 软件包管理器

这是 NuGet 软件包管理器。此窗口会显示已为项目安装的软件包,并允许用户浏览其他软件包。如果发布了新版本的 DynamoServices 软件包,则可以从此处更新软件包或将其恢复为早期版本。

  1. 选择“浏览并搜索 DynamoVisualProgramming”以显示 Dynamo 软件包。

  2. Dynamo 软件包。选择一个软件包即会显示其当前版本,以及内部内容的描述。

  3. 选择所需的软件包版本,然后单击“安装”。这将为您要处理的特定项目安装一个软件包。由于我们使用的是 Dynamo 的最新稳定版本 1.3,因此请选择相应的软件包版本。

要手动添加从浏览器下载的软件包,请从“解决方案资源管理器”打开“参照管理器”,然后浏览到该软件包。

  1. 在 References 上单击鼠标右键,然后选择 Add Reference。

  2. 选择 Browse 以导航到软件包位置。

现在,Visual Studio 已正确配置,并且我们已成功将 .dll 添加到 Dynamo,这样我们就为后续概念奠定了坚实基础。这仅仅是一个开始,因此请继续学习,以详细了解如何创建自定义节点。

- 用于为 Dynamo 构建 Zero Touch 节点库的软件包,其中包含以下库:DynamoUnits.dll、ProtoGeometry.dll

- 用于为在 WPF 中有自定义 UI 的 Dynamo 构建节点库的软件包,其中包含以下库:DynamoCoreWpf.dll、CoreNodeModels.dll、CoreNodeModelWpf.dll

- Dynamo 的 DynamoServices 库

- Dynamo 的单位和系统测试基础结构,其中包含以下库:DSIronPython.dll、DynamoApplications.dll、DynamoCore.dll、DynamoInstallDetective.dll、DynamoShapeManager.dll、DynamoUtilities.dll、ProtoCore.dll、VMDataBridge.dll

- Dynamo 的单位和系统测试基础结构,其中包含以下库:DynamoCoreTests.dll、SystemTestServices.dll、TestServices.dll

- 用于为 Dynamo 构建核心节点的软件包,其中包含以下库:Analysis.dll、GeometryColor.dll、DSCoreNodes.dll

ZeroTouchLibrary
WpfUILibrary
DynamoServices
核心
测试
DynamoCoreNodes
Visual Studio
在 Visual Studio 中创建新项目
在 Visual Studio 中配置新项目
使用解决方案资源管理器
Visual Studio 构建设置
构建解决方案
项目的文件结构
打开项目的 dll 文件
自定义节点
图形中的 SampleFunction.MultiplyByTwo 节点
作为 Create 节点输入的方法
打开 NuGet 软件包管理器
NuGet 软件包管理器
参照管理器