Dynamo
Primer for v2.0
繁體中文
繁體中文
  • 關於
  • 簡介
    • 什麼是 Dynamo?它如何運作?
    • Primer 使用者指南、Dynamo 社群與平台
  • 安裝 Dynamo
  • 使用者介面
    • 工作區
    • 資源庫
  • 節點和線路
  • 基本節點和概念
    • 節點的索引
    • 用於計算設計的幾何圖形
      • 幾何圖形概述
      • 向量、平面和座標系統
      • 點
      • 曲線
      • 曲面
      • 實體
      • 網格
    • 程式的建置區塊
      • 資料
      • 數學
      • 邏輯
      • 字串
      • 顏色
    • 使用清單設計
      • 什麼是清單
      • 使用清單
      • 清單的清單
      • n 維清單
    • Dynamo 中的字典
      • 什麼是字典
      • 字典節點
      • Code Block 中的字典
      • Revit 使用情況
  • 自訂節點和套件
    • 自訂節點
      • 自訂節點簡介
      • 建立自訂節點
      • 發佈至資源庫
    • 套件
      • 套件簡介
      • 套件案例研究 - Mesh Toolkit
      • 開發套件
      • 發佈套件
      • Zero-Touch 匯入
  • 適用於 Revit 的 Dynamo
    • Revit 連接
    • 選取
    • 編輯
    • 建立
    • 自訂
    • 記錄
  • Dynamo for Civil 3D
    • Civil 3D 連接
    • 入門
    • 節點資源庫
    • 範例工作流程
      • 道路
        • 燈柱放置
      • 面
        • 服務放置
      • 公用程式
        • 更名結構
      • 鐵路
        • 間隙包絡線
      • 測量
        • 點群組管理
    • 進階主題
      • 物件併入
      • Python 和 Civil 3D
    • Dynamo 播放器
    • 有用的套件
    • 資源
  • 在 Dynamo 中撰寫程式碼
    • Code Block 和 DesignScript
      • 什麼是 Code Block
      • 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 案例研究 - 自訂使用者介面
      • 針對 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