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

使用清單

Previous什麼是清單Next清單的清單

Last updated 2 months ago

使用清單

現在我們已建立清單,接下來討論可以對清單執行哪些作業。將清單想像為一副紙牌。這副紙牌是清單,而其中每張紙牌都代表一個項目。

查詢

我們可以對清單執行哪些查詢?這將存取既有性質。

  • 這副紙牌有多少張?52 張。

  • 有幾種花色?4 種。

  • 用哪種材料製成?紙。

  • 長度是多少?3.5" 或 89mm。

  • 寬度是多少?2.5" 或 64mm。

動作

我們可以對清單執行哪些動作?這會根據指定的作業變更清單。

  • 我們可以重新洗牌。

  • 我們可以根據點數對紙牌排序。

  • 我們可以根據花色對紙牌排序。

  • 我們可以拆分紙牌。

  • 我們可以雙手各握一部分紙牌。

  • 我們可以選取其中特定的某張牌。

以上列示的所有作業都有類似的 Dynamo 節點,供您使用一般資料的清單。以下課程將展示我們可以對清單執行的一些基本作業。

練習

清單作業

按一下下方的連結下載範例檔案。

附錄中提供完整的範例檔案清單。

以下影像是基礎圖表,我們在兩個圓之間繪製線以表示基本清單作業。我們將探究如何管理清單內的資料,並透過以下清單動作示範視覺結果。

  1. 首先使用一個 Code Block,值為 500;

  2. 插入 Point.ByCoordinates 節點的 x 輸入。

  3. 將上一步驟的節點插入 Plane.ByOriginNormal 節點的 origin 輸入。

  4. 使用 Circle.ByPlaneRadius 節點,將上一步驟的節點插入 plane 輸入。

  5. 使用 Code Block,為 radius 指定 50; 的值。這是我們要建立的第一個圓。

  6. 使用 Geometry.Translate 節點,在 Z 方向將圓上移 100 個單位。

  7. 使用 Code Block 節點,透過以下程式碼定義 10 個 0 和 1 之間的數字:0..1..#10;

  8. 將上一步驟的 Code Block 插入兩個 Curve.PointAtParameter 節點的 param 輸入。將 Circle.ByPlaneRadius 插入頂部節點的 curve 輸入,將 Geometry.Translate 插入下方節點的 curve 輸入。

  9. 使用 Line.ByStartPointEndPoint,連接兩個 Curve.PointAtParameter 節點。

List.Count

按一下下方的連結下載範例檔案。

附錄中提供完整的範例檔案清單。

List.Count 節點很簡單:它會對清單中的值進行計數,並傳回該數量。使用清單的清單時,此節點將更為精細,不過我們將在後續章節示範該內容。

  1. **List.Count ****** 節點會傳回 Line.ByStartPointEndPoint 節點中的線數。在此案例中,該值為 10,這與從原始 Code Block 節點建立的點數一致。

List.GetItemAtIndex

按一下下方的連結下載範例檔案。

附錄中提供完整的範例檔案清單。

List.GetItemAtIndex 是對清單中的項目進行查詢的基本方式。

  1. 首先,在 Line.ByStartPointEndPoint 節點上按一下右鍵以關閉其預覽。

  2. 使用 List.GetItemAtIndex 節點,我們將選取索引 0 或線清單中的第一個項目。

變更介於 0 到 9 之間的滑棒值,以使用 List.GetItemAtIndex 選取其他項目。

List.Reverse

按一下下方的連結下載範例檔案。

附錄中提供完整的範例檔案清單。

List.Reverse 會反轉清單中所有項目的順序。

  1. 若要正確顯示反轉的線清單,請將 Code Block 變更為 0..1..#50; 以建立更多條線

  2. 複製 Line.ByStartPointEndPoint 節點,在 Curve.PointAtParameter 與第二個 Line.ByStartPointEndPoint 之間插入 List.Reverse 節點

  3. 使用 Watch3D 節點可預覽兩個不同的結果。第一個節點顯示無反轉清單的結果。線垂直連接至相鄰的點。但是,反轉清單會以另一個清單中的相反順序連接所有點。

List.ShiftIndices

按一下下方的連結下載範例檔案。

附錄中提供完整的範例檔案清單。

List.ShiftIndices 是建立扭轉或螺旋樣式或任何其他類似資料處理的良好工具。此節點會將清單中的項目移位指定數量的索引。

  1. 採用對反轉清單的相同程序,將 List.ShiftIndices 插入 Curve.PointAtParameter 與 Line.ByStartPointEndPoint。

  2. 使用 Code Block,指定值「1」將清單移位一個索引。

  3. 請注意,變更很小,但下方 Watch3D 節點中所有的線在連接至其他組點時已移位一個索引。

將 Code Block 變更為較大的值 (例如 30),我們發現對角線有顯著不同。在此範例中,此移位的作用類似於相機的光圈,對原始圓柱形產生了扭轉。

List.FilterByBooleanMask

按一下下方的連結下載範例檔案。

附錄中提供完整的範例檔案清單。

List.FilterByBooleanMask 將根據一系列布林值或者「True」或「False」值移除某些項目。

為了建立一系列「True」或「False」值,我們需要多做一些工作...

  1. 使用 Code Block,採用以下語法定義表示式:0..List.Count(list);。將 Curve.PointAtParameter 節點連接至 list 輸入。我們將在 Code Block 一章中更詳細地講解此設置,但此案例中的程式碼行將產生代表 Curve.PointAtParameter 節點每個索引的清單。

  2. 使用 _ % _ ** (模數)** 節點,將 Code Block 的輸出連接至 x 輸入,將值 4 連接至 y 輸入。這會產生索引清單除以 4 時的餘數。模數在建立樣式時是非常有用的節點。4 的所有可能餘數包括:0、1、2、3。

  3. 從 %** (模數)** 節點,我們知道值 0 表示索引可由 4 整除 (0、4、8 等)。使用 == 節點,我們可以測試餘數的值是否為 0,以測試是否能整除。

  4. Watch 節點顯示此狀況:True/False 樣式為:true,false,false,false...。

  5. 使用此 True/False 樣式,連接至兩個 List.FilterByBooleanMask 節點的 mask 輸入。

  6. 將 Curve.PointAtParameter 節點連接至 List.FilterByBooleanMask 的每個 list 輸入。

  7. Filter.ByBooleanMask 的輸出為 in 與 out。in 表示遮罩值為 true 的值,而 out 表示遮罩值為 false 的值。透過將 in 輸出插入 Line.ByStartPointEndPoint 節點的 startPoint 與 endPoint 輸入,我們建立出經過篩選的線清單。

  8. Watch3D 節點顯示出線比點少。我們只篩選了 True 值,因此只選取了 25% 的節點。

相片由 拍攝

Christian Gidlöf
7KB
List-Operations.dyn
8KB
List-Count.dyn
8KB
List-GetItemAtIndex.dyn
8KB
List-Reverse.dyn
8KB
List-ShiftIndices.dyn
11KB
List-FilterByBooleanMask.dyn
紙牌
計數
練習
練習
練習
練習