「此 Wiki 是用於學習使用 Dynamo API 進行開發的資源,支援資源庫和工具」。
https://github.com/DynamoDS/Dynamo/wiki
此部落格包含 Dynamo 團隊撰寫的最新文章集合,討論新功能、工作流程和所有 Dynamo 相關資訊。
程式設計語言的目的在於表達創意,通常涉及到邏輯和計算。除了這些目標外,Dynamo 文字語言(以前稱為 DesignScript)的目的在於表達設計意圖。人們通常認為計算設計具有探索性,Dynamo 嘗試支援此觀點:我們希望為您提供的語言能夠靈活快速地幫助您透過反覆運算實現從概念到最終形式的設計。本手冊的結構旨在為沒有相關程式設計或建築幾何圖形知識的使用者提供有關這兩個相交領域的各種主題。
http://dynamobim.org/wp-content/links/DesignScriptGuide.pdf
Dynamo Primer 是一個開放原始碼專案,由 Autodesk 的 Matt Jezyk 和 Dynamo 開發團隊所發起。第一個版本的手冊由 Mode Lab 開發。若要做出貢獻,請對儲存庫建立分支、新增您的內容,然後提出推送要求。
https://github.com/DynamoDS/DynamoPrimer
此頁面概述使用「Zero Touch」介面在 C# 中開發自訂 Dynamo 節點的程序。在大多數情況下,可以匯入 C# 靜態方法和類別,而不進行修改。如果您的資源庫僅需要呼叫函數,而不需要建構新物件,使用靜態方法可以很輕鬆地實現此目的。當 Dynamo 載入您的 DLL 時,會除去您類別的名稱空間,並將所有靜態方法顯示為節點。
https://github.com/DynamoDS/Dynamo/wiki/Zero-Touch-Plugin-Development
Python 是具有解譯性、互動性及物件導向的程式設計語言。它包含模組、例外、動態輸入、非常高級的動態資料類型和類別。Python 兼具功能強大且語法清晰的優點。它具有針對許多系統呼叫和資源庫以及各種窗系統的介面,並可在 C 或 C++ 進行延伸。它也可用作需要可程式化介面之應用程式的延伸語言。最後,Python 是可攜式程式設計語言:可在許多 UNIX 變式、Mac 及 Windows 2000 和更高版本上執行。Python 初學者指南連結至其他介紹自學課程和資源以用於學習 Python。
https://www.python.org/about/gettingstarted
AForge.NET 是一個開放原始碼的 C# 架構,專門針對電腦視覺和人工智慧 (影像處理、神經網路、遺傳演算法、模糊邏輯、機器學習、機器人科學等) 領域的開發人員和研究人員而設計。
http://www.aforgenet.com/framework/
MathWorld 是一種線上數學資源,由 Eric W. Weisstein 在數以千計貢獻者的協助下建立。由於其內容於 1995 年第一次發佈於線上,MathWorld 自此成為數學和教育社群中共有的數學資訊連結。各教育層次的雜誌和書籍中都廣泛參考其條目。
「這些貼文主要關於 Revit 平台,並提供有關如何使用該平台的建議。」
「此筆記本嘗試在設計工作流程環境中學習和應用 Revit API 時補救一些『資源不足』的問題」
http://wiki.theprovingground.org/revit-api
「RevitPythonShell 在 Autodesk Revit 和 Vasari 中新增 IronPython 解釋器。」 此專案的建立日期在 Dynamo 之前,是 Python 開發的重要參考。RPS 專案:
https://github.com/architecture-building-systems/revitpythonshell
開發人員的部落格:
http://darenatwork.blogspot.com/
由 BIM 其中一位頂尖專家開發、功能強大的 Revit API 工作流程。
在本部分中,您可以找到有關 Dynamo 的其他資源。在本手冊中,我們還新增了重要節點的索引、有用套件的集合以及範例檔案的儲存庫。請隨時新增到這部分...記住,Dynamo Primer 是開放原始碼!
以下是 Dynamo 社群中一些較常用套件的清單。開發人員,請加入清單!請記住, 是開放原始碼!
設計經常會涉及在設計的各環節之間建立視覺、系統或幾何關係。大多數狀況下,這些關係由工作流程制定,這些工作流程會透過規則方式讓我們完成從概念到結果的流程。您可能不知道,我們以演算法方式工作,會定義遵循輸入、處理與輸出基本邏輯的一組逐步動作。藉由程式設計,我們可以繼續使用此方式,但要對演算法進行形式化。
雖然演算法提供一些強大的機會,但這個詞也可能會帶來一些錯誤觀念。演算法可以產生非預期、瘋狂或很酷的結果,但並非無所不能。實際上,演算法本身很普通。接下來我們使用紙鶴的實際範例進行說明。我們先使用一張方形紙 (輸入),然後按照一系列折紙步驟 (處理動作),最後折成紙鶴 (輸出)。
演算法在哪裡?演算法是一組抽象步驟,可以採用一系列方式 (文字或圖形) 來表示。
文字說明:
先使用一張方形紙,有顏色的一面朝上。對折然後展開。然後沿另一方向對折。
將紙翻轉到白色的一面。對折,折好後展開,然後再次沿另一方向對折。
使用已產生的折痕,將模型頂部的 3 個角向下折至底部的角。展平模型。
將頂部的三角形片折至中心,然後展開。
將模型頂部向下折,折好後展開。
展開模型最上方的片,將其向上折,同時向內按壓模型的兩側。展平,折好。
翻轉模型,在另一面重複步驟 4-6。
將頂部的片折至中心。
在另一面重複上述步驟。
向上折疊模型的兩條「腿」,折好然後展開。
沿剛剛產生的折痕對「腿」進行內側反向折疊。
對一面進行內側反向折疊以產生頭,然後向下折疊翅膀。
現在紙鶴就折好了。
圖形說明:
使用其中任何一組說明應該都會折成紙鶴,如果您讓自己按照說明,就是套用了一個演算法。唯一的差異在於,我們閱讀了該組說明的形式進行的方式,這也導致我們進行了程式設計。程式設計常用作 電腦程式設計 的簡稱,是將一系列動作形式化並處理為可執行程式的反應。如果我們將上述折紙鶴的說明轉化為電腦可以閱讀並執行的格式,就是在進行「程式設計」。
程式設計的關鍵與第一個障礙,是我們必須依賴某些抽象形式與電腦進行有效通訊。這需要採用多種形式的程式設計語言 (例如 JavaScript、Python 或 C)。如果我們能寫出一組可重複的說明 (例如紙鶴折疊說明),只需針對電腦轉換說明即可。我們的電腦將會折疊紙鶴,甚至會折疊彼此略有不同的多種紙鶴。這是程式設計的力量所在,電腦將重複執行我們為其指定的任何單一工作或一組工作,而不會延遲或出現人為錯誤。
定義的視覺程式設計
按一下下方的連結下載範例檔案。
附錄中提供範例檔案的完整清單。
如果您承擔的工作是編寫紙鶴折疊說明,您會如何執行?您要使用圖形、文字或兩者的組合來編寫嗎?
若您的回答包含圖形,則視覺程式設計毫無疑問適合您。不論是程式設計還是視覺程式設計,過程在本質上是相同的。它們會利用相同的形式化架構,但是,我們會透過圖形 (即「視覺」) 使用者介面定義程式的說明與關係。我們不是鍵入受語法約束的文字,而是將預先封裝的節點連接在一起。以下是相同演算法 (繪製一個通過某點的圓) 的比較,分別使用節點與程式碼進行程式設計:
視覺程式:
文字程式:
我們的演算法結果:
採用視覺特性進行程式設計的方式,可減少入門以及與設計人員頻繁溝通的障礙。Dynamo 是視覺程式設計的範例,但我們稍後將看到,在設計應用程式時仍可使用文字程式設計方式。
archi-lab 收集了超過 50 種自訂套件,可大幅提升 Dynamo 與 Revit 互動的能力。archi-lab 套件中包含的節點各不相同,從基本清單作業到 Revit 進階的分析視覺化架構節點,不一而足。archi-lab 可從 Package Manager 取得
BimorphNodes 收集各種功能強大的公用程式節點。此套件的重點功能包括非常有效率的衝突偵測和幾何圖形相交節點、ImportInstance (CAD) 曲線轉換節點,以及可解決 Revit API 局限性的連結元素收集器。若要瞭解可用的完整節點範圍,請造訪 BimorphNodes 字典。BimorphNodes 可從 Package Manager 取得。
Bumblebee 是提供 Excel 與 Dynamo 之間互通性的外掛程式,可大幅提升 Dynamo 讀取及寫入 Excel 檔案的能力。
Clockwork 收集適用於 Dynamo 視覺程式設計環境的自訂節點。它不但包含許多 Revit 相關節點,還包含許多適用於諸如以下各種其他用途的節點:清單管理、數學作業、字串作業,單位轉換、幾何作業 (主要是邊界框、網格、平面、點、曲面、UV 與向量) 及面板化。
DataShapes 是一個套件,目標是延伸 Dynamo 指令碼的使用者功能。其聚焦在為 Dynamo 播放器加入更強大的功能。如需更多資訊,請造訪 https://data-shapes.net/。想建立精彩的 Dynamo 播放器工作流程?那就使用這個套件。
DynamoSAP 是一個以 Dynamo 為基礎建置,適用於 SAP2000 的參數式介面。藉由該專案,設計師與工程師能以高生產力的方式建立及分析 SAP 中的結構系統,同時使用 Dynamo 來驅動 SAP 模型。該專案指定了一些常見工作流程 (在隨附的範例檔案中對這些工作流程有所描述),並提供在 SAP 中自動執行典型工作的諸多機會。
藉由此資源庫,使用者可以展開曲面與 polysurface 幾何圖形,從而延伸 Dynamo/Revit 的功能。藉由該資源庫,使用者可以先將曲面轉換為平面嵌合拓樸,然後使用 Dynamo 中的 ProtoGeometry 工具將其展開。此套件還包括一些實驗節點與一些基本範例檔案。
使用 .svg 從 Illustrator 或網路匯入向量作品。您可藉此將手動建立的圖面匯入 Dynamo 以執行參數式作業。
Energy Analysis for Dynamo 允許在 Dynamo 0.8 中進行參數式能源塑型和整棟建築的能源分析工作流程。藉由 Energy Analysis for Dynamo,使用者可以在 Autodesk Revit 中設定能源模型,提交至 Green Building Studio 進行 DOE2 能源分析,然後深入研究分析傳回的結果。此套件的開發者是 Thornton Tomasetti 的 CORE Studio。
Firefly 收集了許多節點,藉由這些節點,Dynamo 可以與輸入/輸出裝置 (例如 Arduino 微控制器) 通訊。由於會「即時」發生資料流動,因此 Firefly 會為透過網路攝影機、行動電話、遊戲控制器、感應器等在數位與實體環境之間進行互動式原型開發帶來許多機會。
Genius Loci 是適用於 Dynamo 的節點編譯。它包含有用的節點,可讓 Revit 使用者受益。安裝套件可探索某些功能,例如輕鬆與連結的檔案和 Revit 文件互動。
Mantis Shrimp 是互通性專案,您可藉此將 Grasshopper 及/或 Rhino 幾何圖形輕鬆匯入 Dynamo。
Dynamo Mesh Toolkit 提供許多對網格幾何圖形進行處理的有用工具。此套件的功能包括匯入外部檔案格式的網格、根據預先存在的 Dynamo 幾何圖形物件產生網格,以及根據頂點與連接資訊手動建置網格。此外,該工具套件還包括用於修改及修復網格幾何圖形的工具。
🧐 MONOCLE
Monocle 是適用於 Dynamo 2.0.x 的一個檢視延伸。Monocle 包含一組有用的工具,可用於套件識別、圖表清理等!Monocle 的目標是以一種無縫方式將功能加入 Dynamo UI,您會覺得:「這是內建在 Dynamo 中嗎?」。Monocle 可從 Package Manager 取得。
藉由 Optimo,Dynamo 使用者可以使用各種演化演算法,以最佳化自己定義的設計問題。使用者可以定義問題目標或一組目標,以及特定的適合度函數。
藉由 Rhynamo 節點資源庫,使用者可以在 Dynamo 內,讀取及寫入 Rhino 3DM 檔案。Rhynamo 透過使用 McNeel 的 OpenNURBS 資源庫,可以採用能在 Rhino 與 Revit 之間順利交換幾何圖形及資料的新工作流程,從而將 Rhino 幾何圖形轉換為可使用的 Dynamo 幾何圖形。此套件也包含一些實驗節點,藉此可「即時」存取 Rhino 指令行。
Rhythm 是一組有用的節點,可協助您的 Revit 專案與 Dynamo 維持良好的節奏。基本上,它可以執行一些非常好的作業。Rhythm 是開放原始碼,主要內建 C#,並在 Dynamo 中加入 Revit 節點、核心節點和檢視延伸。Rhythm 可從 Package Manager 取得。
Spring Nodes 主要焦點是改善 Dynamo 與 Revit 的互動。更廣泛的目標是探索所有有助於加速以 BIM 為重點之工作流程的方法。許多節點使用 IronPython 或 DesignScript,是學習這兩種語言特定語法和進階特點的好起點。Spring Nodes 可從 Package Manager 取得。
ARCHI-LAB
BIMORPH NODES
BUMBLEBEE FOR DYNAMO
CLOCKWORK FOR DYNAMO
DATA|SHAPES
DYNAMO SAP
DYNAMO UNFOLD
DYNASTRATOR
ENERGY ANALYSIS FOR DYNAMO
FIREFLY FOR DYNAMO
GENIUS LOCI
MANTIS SHRIMP
MESH TOOLKIT
OPTIMO
RHYNAMO
RHYTHM
Spring Nodes