在開始前,讓我們先來了解何謂API,API全名為(Application Programming Interface ),
稱為應用程式介面,舉例而言,當你要搭乘電梯上五樓快活時,你要去五樓,電梯可以運送你上去,
但你需要與電梯溝通,就是透過電梯內的按鈕,這個按鈕就如同API,讓你能與電梯溝通的橋樑。
所以當我們想要Revit可以進行我們要的動作時,會撰寫要執行運作的程式碼,製作成一個按鈕,
當你按下這個按鈕時,讓Revit幫你進行期望執行的動作。
為什麼要進行Revit二次開發?
- 提高工作效率,減少重工的反覆動作
- 擴展Revit不足的功能
- 與其他系統的對接,匯出、匯入模型資訊,並轉換另一系統可辨識之格式等…
我想要進行Revit二次開發,可以有哪些選擇?
- 巨集(C#、VB.NET、Ruby、Python)
- Dynamo(Python)
- Revit API (Visual C#、VB.NET)
巨集、 Dynamo與Revit API差異在哪裡?
巨集(Marco)其實也就等同於Revit API,只是它使用了Revit內建的介面,故我們在此就先不多著墨。
(對不起巨集,只用一句話就把你省略了… >O<)
大多數人都比較想知道,Dynamo與Revit API差異在哪裡?如果我要學習,該要選誰呢?
以我個人的認知,兩者並沒有誰特別的好壞,因為多數的開發外掛功能,兩者皆可達成。
真要比較的話,我認為最大的差異點是,Dynamo的優點在,擁有介面可在開發過程中即看到成果,
缺點在於運行的效果較差;Revit API的優點則是開發較不被受限(Ex. 與其他系統對接、開發介面等…),
運行效率較Dynamo快上數倍,缺點則是入門較Dynamo難入手,較難預先於開發中看到成果。
但其實Dynamo到了後期二次開發進階功能,依然是得熟悉Python語法,並且引用Revit API,所以要學習程式語言這回事,似乎也沒誰較難入手的差別,遲早得面對啊~~
我想對於二次開發這件事有個想法,那就是,只要能夠完成我們期望的結果,減少使用者的工時,提高工作效率,無論選擇何者二次開發,都是好方法!
個人經驗分享
最後,在此提供我的個人學習經驗給各位參考,開始的我並不會Revit,對程式語言也多年未接觸,
最開始的問題就是,我要選擇哪個語言入手二次開發?選擇Visual C#最主要的原因為,原廠所提供或網路上查詢等資源,多數都為 Visual C# ,可以讓學習的過程較容易找到支援。
問我為何沒選擇Dynamo,我得說當年在二次開發時Dynamo還沒有普及,所以我選擇了Visual C#,在Dynamo開始時我也去使用過,但因為許多想要開發的功能,後來還是都得引用Revit API的RevitAPI.dll與RevitAPIUI.dll(日後會開新文章說明),所以我最後還是選擇用Visual C#來開發。
近期Revit新增了許多功能,例如路徑分析需要耗費大量時間來運算,我慶幸當時是選擇Revit API,在現今需要大量數據運算結果時,可以減少許多運算時間。
接下來我會分享我在學習Revit API的過程中,透過哪些資源學習、遇到哪些問題、如何排除等經驗,希望對你在未來學習Revit API的路程中有所幫助,能縮短學習與排除問題的時間。