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 for Civil 3D
  2. 样例工作流
  3. 浇口面

服务设施放置

Previous浇口面Next公共设施

Last updated 1 month ago

典型住宅开发的工程设计涉及使用多个地下公共设施(如生活污水管、雨水排水、饮用水等)。本例将演示如何使用 Dynamo 来绘制从配水总管到给定小块土地(即地块)的服务设施连接。每个地块都需要连接服务设施,这会导致放置所有服务设施的工作非常繁琐。Dynamo 可以通过自动精确绘制必要的几何图形,并提供可调整以符合当地机构标准的灵活输入,从而加快该过程。

目标

关键概念

  • 使用 Select Object 节点进行用户输入

  • 使用坐标系

  • 使用几何操作(如 Geometry.DistanceTo 和 Geometry.ClosestPointTo)

  • 创建块参照

  • 控制对象绑定设置

版本兼容性

此图形将在 Civil 3D 2020 及更高版本上运行。

数据集

首先下载下面的样例文件,然后打开 DWG 文件和 Dynamo 图形。

解决方案

下面概述了此图形中的逻辑。

  1. 获取配水总管的曲线几何图形

  2. 获取用户选定地块线的曲线几何图形,必要时反转

  3. 生成服务设施计量表的插入点

  4. 获取配水总管上距服务设施计量表位置最近的点

  5. 在模型空间中创建块参照和线

开始吧!

获取配水总管几何图形

我们的第一步是将配水总管的几何图形输入到 Dynamo 中。我们将改为获取特定图层上的所有对象,并将这些对象一起连接为 Dynamo PolyCurve,而不是选择单条直线或多段线。

如果您对使用 Dynamo 曲线几何图形不熟悉,请参见 曲线 部分。

获取地块线几何图形

接下来,我们需要将选定地块线的几何图形输入到 Dynamo 中,以便我们可以使用该几何图形。适合该作业的合适工具是 Select Object 节点,该节点使图形的用户能够拾取 Civil 3D 中的特定对象。

我们还需要处理可能会出现的潜在问题。地块线有起点和终点,这意味着它有方向。为了使图形能够生成一致的结果,我们需要所有地块线都有一致的方向。我们可以直接在图形逻辑中考虑此情况,这会使图形更具弹性。

  1. 获取地块线的起点和终点。

  2. 测量每个点到配水总管的距离,然后确定哪个距离更大。

  3. 所需结果是该线的起点距离配水总管最近。如果不是这种情况的话,则我们反转地块线的方向。否则,我们只需返回原始地块线。

生成插入点

现在应该确定服务设施计量表将放置的位置。通常情况下,放置位置由当地机构的要求确定,因此我们只需提供可以更改以适应各种情况的输入值。我们会将沿地块线的坐标系用作创建点的参照。这使得定义相对于地块线的偏移非常容易,而无需考虑地块线的方向。

如果您对使用坐标系不熟悉,请参见 向量、平面和坐标系 部分。

获取连接点

现在,我们需要获取配水总管上距服务设施计量表位置最近的点。这将使我们能够在模型空间中绘制服务设施连接,以便它们始终垂直于配水总管。Geometry.ClosestPointTo 节点是完美解决方案。

  1. 这是配水总管 PolyCurve

  2. 这些是服务设施计量表插入点

创建对象

最后一步是在模型空间中实际创建对象。我们将使用之前生成的插入点来创建块参照,然后使用配水总管上的点来绘制到服务设施连接的线。

结果

当运行图形时,您应该会在模型空间中看到新的块参照和服务设施连接线。尝试更改某些输入,并观察所有内容自动更新!

小贴士:启用连续放置

您可能会注意到,在为一条地块线放置对象后,选择其他地块线会导致对象被“移动”。

这是 Dynamo 的默认行为,在许多情况下非常有用。但是,您可能会发现需要按顺序放置多个服务设施连接,并让 Dynamo 使用每个管路创建新对象,而不是修改原始对象。可以通过更改对象绑定设置来控制此行为。

有关详细信息,请参见对象绑定 部分。

更改此设置会强制 Dynamo“忘记”它使用每个管路创建的对象。以下是一个使用 Dynamo 播放器运行图形(其对象绑定已关闭)的示例。

如果您对使用 Dynamo 播放器不熟悉,请参见 Dynamo Player 部分。

想法

以下是一些有关如何扩展此图形功能的想法。

同时放置 多个服务设施连接,而不是选择每条地块线。

调整输入以改为放置 污水管清扫口,而不是放置水表。

添加开关,以允许在地块线的特定侧(而不是两侧)放置单个服务设施连接。

将水表块参照放置在距地块线的指定偏移处,并为垂直于配水总管的每个服务设施连接绘制一条线。

任务完成!

🎯
🎉
108KB
Land_ServicePlacement.dyn
842KB
Land_ServicePlacement.dwg
从 Civil 3D 获取对象并将所有对象一起连接为单个 PolyCurve
选择地块线并确保其方向正确
创建服务设施计量表的插入点
获取配水总管上的垂直点
在 Dynamo 中调整输入参数,并立即查看在 Civil 3D 中的结果
对象绑定时的行为处于启用状态
Dynamo 的对象绑定设置
使用 Dynamo 播放器运行图形并在 Civil 3D 中查看结果