【16集全】【含源文件】Dyanmo進階教學 P15 - 15-異形橋樑綜合運用-橋樑橫斷面參數化
1 次觀看·2026年11月13日
AI 生成·可能包含錯誤
視頻概述
AI 生成本影片為 Dynamo 進階系列課程的第一課,重點講解如何將 Dynamo 與外部 Excel 表格數據互通,詳細示範從 Excel 讀取數據並將其應用於 Dynamo 中創建幾何點的完整流程。
大家好,今天我們開始我們 Dynamo 的一個進階系列課程
那這一課是我們進階系列課程的第一部分的第一課
那我們第一部分講解的主要是 Dynamo
與外部 Excel 表格數據的一個互通
比如說我們要去從我們的 Dynamo
裡面去讀取 Excel 表格裡面的數據
或者是說從 Dynamo 裡面去
把數據寫出到我們的 Excel
就是這樣的一個過程的一個講解
那今天我們這一課的主要內容是講解的是
我們怎麼樣從我們的單位裡面去讀取數據
那在我的課程裡面我一直都強求的是我們不要
去在這個電池圖這個庫裡面去一個個的去找
我強調的就是我們去搜索關鍵詞的方式去找
這樣更有效率更快
這是第一點
那第二點就是我一直強調的是我們
不用去每一個一個的去學習我們
詞曲李宗盛
電池圖或者是代碼塊的命令
每一個都去學習一下了解它的作用是怎麼能做什麼作用
我一直不會這麼去強調
那我們的
一直的一個思路是
我們首先要有
對我們的一個事情
或者解決問題的一個邏輯
有一個初步的一個
設想
然後再去根據我們的這個設想去找相應的
我們需要的
一些
代碼塊或者是電池圖
那我現在要去做一個
外部Excel表格數據的讀取
那這樣的一個功能的一個組合的吧電池
那我們怎麼去開始呢
首先我們想一想第一步
我們要去讀取一個Excel表格
對,那這個時候我們可以
去直接右鍵搜索這裏
搜索有關Excel
所有的一個電池圖
關鍵詞Excel
對,好
那首先我們就看到了第一個
readfromfile
我們點擊它
那英文熟悉的我們很簡單,這個就是
很好理解,或者說我們可以從Excel讀取我們的文件數據
它有三個輸入,一個是File
一個是Sheet Name
一個是Read as String
輸出是Data 就是輸出我們的Excel表格裡面的數據
好那我們首先關注一下第一個輸入,第一個輸入條件是
放在身邊有提示
表示Excel電子
表格的文件
那這個時候我要去找到電腦上某個地方的一個Excel文件
我們設想這個步驟可能涉及到路徑
對
然後另外一個關鍵詞就是file
檔案
路徑
路徑
那我們搜索一下
第一個
這個時候我去找到,因為我剛才已經預設好了一個
我可以打開看一下
我們一個srb表格裡面的東西
那這樣我直接給到他行不行呢
好像可以
雖然說現在還沒有出現這個我們
讀取的數據
那因為我們輸入還沒給全嘛
再給
sheet name
這個意思是工作表名稱
在這個地方
對,這個就是工作表的名字
當然我們可以進行重命名修改
我們只需要在裡面與它一致
就可以讀當前的工作表裡面的內容
那它的類型我們看一下String
所以這個時候我們要有一個String類型的電池圖
當然這個地方
SitneySH
但大小寫我們要注意,要一模一樣
它這個時候出現了一個警告
StringStringBall
它這裡需要的是,這裡也是
String, string, bool
我們看一下
它這裡代表的就是我們這個
Excel Read From
file的三個輸入的
三個類型
它必須要類型統一
我們才能保證電池的順利
第一個它是String
第二個是String,那沒問題
第一個也要是字符串類型的
第三個是bool
就是布爾值true false這種
這種
所以說那我們去關注一下這個地方的輸出
它可能會有問題
它的輸出不是一個字符串類型的
或者是說它這只是一個路徑
我們要把它轉換成一個file文件
讓我們這個代碼能識別的這種類型的
這個時候我們要有一個轉換的過程
當然我是
知道的
但是所以我就直接搜了
Filefrompath
我們連接一下
這個時候它的輸出就是一個file類型的
我們定義一下
我們再看一看
好它已經有了
已經讀取好了
對,那第三個我們可寫可不寫,如果要寫的話,
我們直接用一個布爾值,布爾值就行
對,true false,
這個是它,是把它的輸出是否是當作字符串
當然有些數據類型的
這是數據,數字
我們如果當成字符串的話,我們後面去
做一些點線面的這種操作可能會有問題
所以通常情況下,這個我們不用去管它
如果你有特殊要求要把我們的
這個Excel表格裏面的都讀取爲這個字符串類型的
那你可以用這個然後把它調整到true就可以了
OK 讀取了之後我們會發現
假如說我這個Excel表格裏面有些點座標
比如說XY 我要基於這些創建一些點那怎麼辦呢
我們可以看到它的讀取這個順序是
list1 list0裏面 list1裏面
關注一下,它是橫向讀取
它把每一橫行放到一個列表裏面去
好,那這個時候不是我們想要的結果
我們想要的是把每一列放到一個子列表裏面去
這個時候我們要對這個列表進行一個轉置的一個操作
transpose
那我們再來關注一下我們的這個
OK,好,它現在是轉成了列了
對,我們找到第四列X開始的X值
還有第五列Y值
假如說我要去利用這個數字進行一個點的創建
那這個時候我們去把第四列第五列單獨提取出來
當然我們在 list 裡面有
一些相關的一些特定的一些
提取我們列表某一子列表的這種功能這種方式
但是在這裡我推薦的一個用 code block 直接寫
更為直接直觀和方便
比如說這個 a 我們是隨便寫
你是b c d都行
這是一個名稱而已
列表的名稱代表輸入列表的名稱
這個地方是個地方我們可以寫 4
這時候我們看一看
它就把第四列單獨提取出來
同樣的道理
我們可以
寫 5
這是 Y
X
Y
通常情況下我們
要把第一個
列表裡面的第一項給它刪除掉
因為這個
X Y 它不可能去作為一個坐標值來去使用它
這個時候怎麼辦呢我們有幾種方式
第一種方式是同樣的道理
我們可以直接用 code block
我在這裡就直接用 code block 了
我說這個列表從第一項
當然它裡面還有一些空值
空值的話
我看一看它應該讀取了
超過了這一部分那這個時候
我們把空值給它去掉
它讀了 63 項
看一看它
讀到了這裡
是不是因為這裡我們之前
有做過輸入
做個輸入所以這裡
他給記錄住了
我們框選一下 63 號
給它
刪除
保存一下看有
沒有效果
大家可以看到我們
它已經刪除了
刪除了一些
還有一個 39 號
39 號是空
不對
它這裏39是指的40
因爲它有一個0
保存
一下
再來看一看
OK
好
那這個時候把我們的空值給它去掉了
當然如果是空值有
有空值後面
那我們也可以用我們的這種方式
把空值部分給它去掉
就是
我們可以從第一項到第38項讀
38 那這個
時候看到沒
它有一個單獨去掉某些項的一個作用
當然在這個地方如果只是首列有一個我們要去掉的話
首項我們有一個要去的話
我們在list裏面也有相關的一些命令去掉
頭部尾部這樣的
在這裏我們不做過多的講解
大家下去可以去
尋找一下
刪除first item
同樣的
我把這個給
它複製一下
它把Y刪掉了
那麼有了這兩個基礎的時候
我們可以去創建我們的這個
點 point
基於XY
比如說它是x,它是y
哦,這個時候會有問題
它要超出範圍
那這個時候是因爲我們通常
這個
當我們工作的時候它有一個範圍的一個設置
在設置裏面有一個集合工作範圍
我們點開
我們寫特大
嗯好那這個時候就沒問題了
看一看我們生成的點在哪裏
好
3
對
對
因爲它距離這個
呃原點可能太遠了
所以
嗯它也有一群點在這個地方
假如說我們還要提取一下
因爲我們現在這個點是我們的地質勘測點
它在Z方向也有一個高程的值
那我們可以把我們的這個高程值給它提取出來
比如說這個地面高程值提取出來
那我們可以再提取一列
和這個類似的
然後把它給到Z
在這裏我就不做具體的說明了
大家下去可以自己去嘗試一下
很簡單
操作跟這一樣
創建那些點
那我們可以看到這是大體的一個
Excel表格數據的一個讀取的過程
那我們下面再說一點
就是說這個過程可能
有的時候這個通常會用到
或者是說還有一些精細化的一些
這種
這種
需求吧
這個時候怎麼辦呢我們要去讀取
特定的一個區域裏面的數據或者是從
從Excel表格裏面去
比如說我們要讀取這一部分的
對那這個時候
可能有些這樣的需求
這樣的需求
那我們在我們的代碼裏
其實沒有直接的一個這樣的一個命令
但是我們可以通過我們的一些上傳的一些軟件擴展包
在這個地方去下載一些他們已經做好
的一些預設的一些命令包吧
其實有相關的一些功能的
比如說我們來搜索一下,因爲我已經裝了
我已經裝了
一個,對我裝了一個這個
大家可以去,如果是需要的話,可以去軟件包搜索一下
它這裏裏面是一個擴展包,它也有
readexcel,對
我們看一看它
它可以幹什麼
它也有
發派,嗯,發派我們
可以給他
這個時候我們就不需要這個
轉換這個過程了
然後還有它
他寫的名字
我們把這個給到它
看有沒有輸出
還沒有
我來執行它
它是布朗之舞
那我們可以給到它
大家可以看到它已經有了
所以我們通常如果要在後面去做我們的項目的時候
爲了簡化一些操作
我們可以直接去下載一些相應的這個軟件包
這樣就方便我們去進行這個數據的處理
就不需要那麼多的步驟去做我們的這個數據
當然這邊還有 By Clone
就是說我們是否是把列和橫行讀取了
因爲我們在這邊做了一個轉置
纔去把我們的以橫行讀取的方式改爲一列讀取
那這個地方我們看一看
假如我把這個給到它
那這個時候就變了
它就現在是以列的方式出現了
很方便哦
當然這邊還有 origin
就是說我們是否是從
表格的第一個開始
有了這些擴展包
我們就很方便的去讀取我們的一些東西
包括還有一些很多
大家可以自己去
去多下載一些軟件包
然後去搜索一下
看一看相關的一些 Excel 讀取啊
或者是寫入這種
這種相關的一些東西的擴展
下面我們再說的是
另外一個通過
直接 code block 我們去怎麼樣去
實現我們下面的這一個過程
左鍵雙擊一下
code block 就是我們的這個
直接寫代碼它允許你
那麼這裡是簡單的一個帶過的
一個內容假如說
我現在要指定一個
sheet name 比如說
我說 T1 字符串類型的
我們加雙引號
這是第一個值,第二個值
T2
當然這個 T1 T2 我們可以自己隨便寫
這是代號而已
Excel
點
我們要去讀取它
Read From
File
那這個時候
我們可以在這邊寫
輸入
當然這個 A B C D
或者其他的什麼字母你可以自己寫都好
T
E
好這個時候當然它還是需要
用一個 file
我們可以看一看它已經有一個輸出了
對
那這是什麼意思呢?
第一個是相當名的 sheet name
就是我們的這個
工作表的一個名稱吧
第二個就是我們的這個代碼
就是從我們的
從我們的 A
A 呢這是個輸入
就是從我們的這個
這裡面讀取
工作表名稱為 sheet1 裡面的數據
就出來了這些
跟我們剛才這個是一樣的
假如我們要做一個轉制在這裡面怎麼辦
這個時候
我們可以直接
再寫一行代碼
比如說
我們在這裏提示
那麼作爲列表的轉置
那麼首先是一個主的函數列表list
我們再搜索一下
lst
第一個
list
transpose
對這樣寫
括號我們在這裏寫T
看到沒這個時候
我們這第三個
輸出
就剛好是轉置後的
轉置後的數據
如果大家嫌這個地方比較麻煩也可以這樣去寫
一個
一個code block可以解決我們
一些
比較複雜的一些邏輯關係啊這樣的一些東西
大家下去如果是對代碼沒有什麼瞭解的可以
稍微瞭解一下就行了
不用仔細去深究這個
這個地方的
內容當然我們在這簡單的讀取一下
第一行就代表
我們這個T1
我們把這個sheet1這個
工資表的名稱
賦予給T1
那第二個就是T2 T2的這個地方
它通常情況下這個是一個變量吧
我們把一個值賦予給一個變量
那這個是從那個Excel表格讀取
讀取從哪個Excel表格
A 那我們叫Excel表格BCD都行
它要一個輸入
我們把這個就是讀取這個
讀取這個A
那讀取這個Excel表格裡面的哪個工作表呢
那就是T1這個名稱的工作表
那這裡這一步操作完了它的數據已經讀取了
當然我們還做一個轉置的話
那T4
T5 T6都行
這是自己命名的名稱
然後這邊有個list
list下面的一個
操作方式就是transpose
就是一個轉置
我們要轉置誰?
轉置T2,因爲
T2的結果是一個直接讀取Excel表格數據啊,
放到這個地方
進行一個轉置,那這個輸出
這個輸出
轉置後的
這個輸出,轉置前的
那今天我們這個有關Excel
數據的讀取的就講到這個地方
謝謝大家

