你好,這里是BIMBOX。
這兩年我們明顯看到,學(xué)習(xí)二次開發(fā)成了很多BIMer突破職場瓶頸的一條道路,BOX也出過不少相關(guān)的學(xué)習(xí)課程。目前Revit二次開發(fā)也形成了大大小小的社區(qū)文化,從Github、Stack Overflow、Autodesk 開發(fā)論壇、再到QQ技術(shù)交流群、微信技術(shù)交流群等。
大家討論的問題大部分都是:
Revit有沒有提供XX相關(guān)的API ?
Revit這個(gè)XXAPI怎么用?
不過,這些都是「術(shù)」的問題,而鮮少有人去關(guān)心那些「道」的問題,比如:
? 代碼框架
? 設(shè)計(jì)模式
? 設(shè)計(jì)原則
雖然計(jì)算機(jī)科學(xué)的發(fā)展和技術(shù)更迭日新月異,但是這些基礎(chǔ)理論卻是幾十年沒有變化。
有許多小伙伴寫了挺久的代碼,但還是沒有形成對代碼結(jié)構(gòu)和設(shè)計(jì)原則的認(rèn)知,設(shè)計(jì)模式這些也知之甚少,往往是想到哪寫哪,久而久之,這筆亂賬本就越堆越多。
不過這也很正常,特別是只涉及二次開發(fā)方向的研發(fā)人員,更容易缺乏這方面的學(xué)習(xí)和訓(xùn)練。去網(wǎng)上搜相關(guān)資料,在Revit二次開發(fā)這方向就很少有相關(guān)內(nèi)容,所以就只能自己去學(xué)習(xí)基礎(chǔ)知識(shí)再融合應(yīng)用到Revit二次開發(fā)項(xiàng)目中。
隨著行業(yè)的發(fā)展,Revit二次開發(fā)已經(jīng)不是BIM軟件廠商的專職工作?,F(xiàn)在工程各個(gè)領(lǐng)域都意識(shí)到了兩個(gè)問題:
? 軟件的開發(fā)需求本身也是一種企業(yè)無形資產(chǎn);
? 在數(shù)字化進(jìn)程中,企業(yè)增強(qiáng)技術(shù)壁壘最有效的方式就是根據(jù)自身業(yè)務(wù)、流程和標(biāo)準(zhǔn)開發(fā)自有平臺(tái)和工具。
所以這兩年從施工單位、到設(shè)計(jì)單位、再到業(yè)主方,只要是有一定基礎(chǔ)的企業(yè)都在組建開發(fā)團(tuán)隊(duì),解決企業(yè)內(nèi)部的技術(shù)問題。
由于市場人才缺口的存在,我們也可以看到身邊不斷有工程領(lǐng)域相關(guān)人員躍躍欲試,成為計(jì)算機(jī)和工程行業(yè)的跨界達(dá)人。并且有越來越多的軟件開發(fā)知識(shí)分享官,在分享自己跨界、轉(zhuǎn)行、學(xué)習(xí)和工作的心路歷程。
這些感悟都是出自一位行業(yè)里的老朋友,是初一不是十五,之前和BOX合作出過一門《Revit樣板課程》,這門課程獲得了大家的一致好評,大家都叫他十五。
別再重復(fù)干活兒了,Revit樣板了解一下
2020-11-16
十五作為一名土木學(xué)子,大學(xué)畢業(yè)后,抱著對BIM的熱愛,滿腔熱血的進(jìn)入了這個(gè)行業(yè)。一開始,做的更多的是需求的分析和整理、寫標(biāo)準(zhǔn)、寫文檔;后來他想,既然我可以寫需求,為什么我不能自己實(shí)現(xiàn)需求。
抱著這么一個(gè)想法,十五從軟件公司辭職,專心在家自學(xué)軟件開發(fā)。
或許興趣就是學(xué)習(xí)最好的老師,入門學(xué)習(xí)階段并沒有給他造成太大的阻礙,第一階段的學(xué)習(xí)目標(biāo)很快就達(dá)成了,但是對于計(jì)算機(jī)基礎(chǔ)知識(shí)了解的匱乏,明顯感覺到學(xué)習(xí)中期的無力,算是吃了沒基礎(chǔ)的虧。
勿在浮沙筑高臺(tái),跨界學(xué)習(xí)最多的方式就是碎片化的學(xué)習(xí)。雖然可以快速見成效,但是許多知識(shí)點(diǎn)都處于一知半解的狀態(tài)。
好在運(yùn)氣算好,十五新的工作碰到了一個(gè)情投意合的領(lǐng)導(dǎo),對他的放權(quán)管理讓他有了更大的想象空間和發(fā)揮空間,他的工作內(nèi)容從技術(shù)研發(fā),轉(zhuǎn)到軟件開發(fā),工作成果也從企業(yè)數(shù)字化整體解決方案的制定,到方案的具體落實(shí)。
在這幾年的項(xiàng)目開發(fā)過程中,讓他印象最深刻的就是第一次的項(xiàng)目重構(gòu)。重構(gòu)的原因主要是:
? 研發(fā)團(tuán)隊(duì)擴(kuò)張,從單兵作戰(zhàn)模式要轉(zhuǎn)成協(xié)同工作模式;
? 舊的項(xiàng)目架構(gòu)無法適應(yīng)新的產(chǎn)品需求,再寫下去也只是在堆積「祖?zhèn)鞔a」。
重新推翻自己是一個(gè)痛苦的過程,但是好在付出的代價(jià)也有了不錯(cuò)的回報(bào)。
從項(xiàng)目層面,代碼更加「干凈」,提高了復(fù)用性、擴(kuò)展性和可維護(hù)性,讓項(xiàng)目可以繼續(xù)承受未來需求的加入;
從個(gè)人層面,第一次有了對技術(shù)的全局性思考,無論是業(yè)務(wù)架構(gòu),還是代碼架構(gòu),都有了一個(gè)更深層次的認(rèn)識(shí)。
重構(gòu)代碼的同時(shí),也在不斷重塑十五對技術(shù)的敬畏之心。
于是,十五和BOX再度合作,把他這幾年的積累經(jīng)驗(yàn)都融到了一門新的課程里,希望能幫助到和他一樣想在二次開發(fā)領(lǐng)域進(jìn)一步發(fā)展的伙伴們。
課程介紹
接下來帶你了解一下這門新課。
在Revit開發(fā)過程中,通常我們會(huì)使用WinForms(Windows Forms)或者WPF(Windows Presentation Foundation)技術(shù)進(jìn)行圖形界面編程,相對于WinForms,WPF更具有優(yōu)勢和前景。
所以,更推薦使用WPF技術(shù)進(jìn)行Revit開發(fā)。而使用WPF編程,必不可少的就是要了解MVVM開發(fā)模式。
這門課程提供了一個(gè)基于MVVM開發(fā)模式的Revit多版本開發(fā)框架,課程會(huì)教給你下面這些知識(shí):
? 如何進(jìn)行多版本開發(fā),讓你更加了解csproj的項(xiàng)目配置;
? 如何進(jìn)行模塊化開發(fā),而不是一個(gè)類寫上千行代碼;
? 如何進(jìn)行數(shù)據(jù)驅(qū)動(dòng),讓你擺脫窗體事件驅(qū)動(dòng)的束縛;
? 如何進(jìn)行規(guī)范化的代碼編寫,真正了解面向?qū)ο蟮木幊趟枷?,讓你有一個(gè)更加清晰的項(xiàng)目結(jié)構(gòu);
課程內(nèi)容
本課程一共有22節(jié)課,包括Revit多版本開發(fā),MVVMLight框架、設(shè)計(jì)原則、架構(gòu)設(shè)計(jì)等內(nèi)容,經(jīng)過BOX的后期精剪,總時(shí)長5個(gè)多小時(shí),在這個(gè)課程結(jié)束后,你將學(xué)會(huì)以下的內(nèi)容:
1.多版本開發(fā)框架
目前網(wǎng)上的Revit開發(fā)多版本兼容方案,大多是教你通過復(fù)制多個(gè)項(xiàng)目去實(shí)現(xiàn),這種配置方式靈活性差,不利于標(biāo)準(zhǔn)化的項(xiàng)目模板開發(fā)。
這門課程教你不用去復(fù)制項(xiàng)目,而是通過MSBuild開發(fā)SDK Style的項(xiàng)目,從而實(shí)現(xiàn)一個(gè)項(xiàng)目、多目標(biāo)框架、多Revit版本的開發(fā)項(xiàng)目配置。
SDK Style風(fēng)格的項(xiàng)目對比以往項(xiàng)目,有以下優(yōu)勢:
? 使用Visual Studio即可編輯項(xiàng)目文件
? 具備代碼智能提示
? 程序集管理變成了更直觀的依賴項(xiàng)管理
整個(gè)配置文件采用的是XML格式,配置后,你可以得到一個(gè)簡潔清晰的項(xiàng)目配置文件。
2.Addin加載調(diào)試
日常開發(fā)過程中,我們一般會(huì)使用Addin-Manager進(jìn)行功能測試,如果需要在多個(gè)功能間、或者在軟件打開過程中添加服務(wù)再進(jìn)行集中軟件測試,就需要使用Addin調(diào)試,這套課程教你如何在項(xiàng)目中進(jìn)行多版本的Addin加載調(diào)試。
3.設(shè)計(jì)模式
這門課程教你如何基于MVVM架構(gòu)對項(xiàng)目進(jìn)行分層,通過MVVM設(shè)計(jì)模型使代碼UI和業(yè)務(wù)邏輯進(jìn)行分離。
4.設(shè)計(jì)原則
C#是面向?qū)ο蟮恼Z言,作為使用C#程序員,就必須要了解的是,面向?qū)ο蟮幕驹O(shè)計(jì)原則,讓你從一個(gè)全新的視角去進(jìn)行程序設(shè)計(jì)。
5.控制反轉(zhuǎn)
課程會(huì)引入IOC(Inversion Of Control)的思想,讓你明白什么是高內(nèi)聚、低耦合。教你如何進(jìn)行模塊化設(shè)計(jì)。
學(xué)習(xí)成果
Programs are meant to be read by humans and only icidentally for computers to execute
—Donald Ervin Knuth
這句話告訴我們,代碼不僅僅是要讓計(jì)算機(jī)可執(zhí)行,更重要的是要讓人可以讀懂你寫的每一行代碼。
而提高代碼的可讀性除了注釋以外,關(guān)鍵的是要有一個(gè)規(guī)范、科學(xué)的代碼編寫習(xí)慣、以及合理的代碼架構(gòu)。
課程學(xué)習(xí)結(jié)束,你將掌握一個(gè)專門為Revit開發(fā)設(shè)計(jì)的代碼框架。
課程亮點(diǎn)
課程不是照本宣科的理論基礎(chǔ),那些晦澀難懂的名詞,都會(huì)結(jié)合代碼和業(yè)務(wù)、讓你更好的理解。
由淺入深,一個(gè)案例貫穿全課程掌握所有知識(shí)點(diǎn)。
課程難易程度
這個(gè)課程適合希望提高自己開發(fā)水平的小伙伴,希望學(xué)會(huì)MVVM的小伙伴。學(xué)習(xí)建議是:
? 有基本的C# 語言基礎(chǔ)
? 有一定的Revit二次開發(fā)基礎(chǔ)
? 有一定的WPF基礎(chǔ)
如果沒有Revit二次開發(fā)基礎(chǔ),可以先學(xué)習(xí)一下Kevin的二次開發(fā)小白入門課。
6年經(jīng)驗(yàn)大牛,帶你一起打開 Revit 二次開發(fā)的新世界大門
2020-06-12
BIMBOX小伙伴的評語
十五的這門課程被群里的小伙伴催了很久,十五也是在年初的時(shí)候就錄制完成了,后來還進(jìn)行了課程的改進(jìn),重新錄制了一次。我們提前找來了幾位小伙伴學(xué)習(xí)這套課程,分別從不同的學(xué)習(xí)視角給出了建議和評語,十五又針對大家給出的建議進(jìn)行了調(diào)整,后面有新的變動(dòng)也會(huì)同步到課程里。
下面是幾位小伙伴給的評語:
@ Brick Miao:
我是個(gè)對二開、編程徹徹底底的小白,也是一個(gè)對BIM未來技術(shù)發(fā)展十分關(guān)切的公司管理者。對于這門課程我有以下幾點(diǎn)感悟和收獲:
1、這門課針對的人群應(yīng)該是公司管理人員、在學(xué)習(xí)編程方向的學(xué)生、有基礎(chǔ)想要入坑的BIMer、專業(yè)BIM開發(fā)人員。
對于公司管理人員,擔(dān)心自己公司族庫的安全性,或者是有二開的招人需求,還是多少要懂如何提高你的需求和相關(guān)技術(shù)。
在學(xué)習(xí)編程方向的學(xué)生,未來對軟件開發(fā)的需求不單單是軟件公司的需求,同時(shí)也是例如咨詢單位、設(shè)計(jì)院、造價(jià)公司的需求,有基礎(chǔ)想要入坑的BIMer,抓住機(jī)會(huì)用二開推動(dòng)BIM技術(shù)的發(fā)展。
專業(yè)BIM開發(fā)人員,可以說「不為別的,交個(gè)朋友」,十五絕對是我在這個(gè)圈子里最高興認(rèn)識(shí)的一個(gè)朋友之一,希望你能因課結(jié)緣,在群里認(rèn)識(shí)不止一個(gè)「十五」。
2、作為小白我還是很容易接受這門課的學(xué)習(xí),前七節(jié)課講基礎(chǔ)問題,如多版本配置、多目標(biāo)框架,從第八節(jié)課開始以材質(zhì)增刪改查為講課的開發(fā)案例貫穿始終,帶領(lǐng)學(xué)習(xí)者在開發(fā)的過程中了解和認(rèn)識(shí)事件命令、消息傳遞等,不過這個(gè)過程中建議先快速看一遍整個(gè)課程講了什么,理清講了那幾個(gè)板塊,哪塊有不理解,然后帶著這些問題從頭再跟著細(xì)細(xì)的學(xué)習(xí)一遍
3、如果你實(shí)在聽不懂建議不妨在努力一下,入坑BOX「Revit二次開發(fā)小白入門 進(jìn)階」這門課程,希望你和我一樣永遠(yuǎn)青春,永遠(yuǎn)激情,永遠(yuǎn)熱淚盈眶。
@人物:
課程從一個(gè)非常簡單的功能,詳細(xì)描述了如何用相對簡潔的代碼來實(shí)現(xiàn),講解了很多常用的思路。對于企業(yè)來講可以私人定制一些更加貼合實(shí)用的小插件,同時(shí)解決市場上一些大廠開發(fā)的大鍋飯插件的問題,也給立志于在BIM道路上走下去的從業(yè)人員一些的動(dòng)力,原來BIMer不僅僅是建模,還能這樣玩。
對于講師十五,應(yīng)該是屬于被小伙伴白嫖最多的老師之一,不僅帥氣而且也很耐心。如果你是喜歡研究二開的小伙伴,強(qiáng)烈建議你購買這套課程,十五老師知道的遠(yuǎn)比課程多得多。如果想更深入的了解,和我一起加入十五老師的Revit開發(fā)課程群,一起卷起來。
@ BIMCoder梁老師:
很高興參與本課程的評審工作。課程安排合理,內(nèi)容豐富。特別是使用了SDK-Style項(xiàng)目文件創(chuàng)建二次開發(fā)應(yīng)用,同時(shí)還詳細(xì)介紹了MVVM模式的WPF開發(fā)及Revit二次開發(fā)程序的架構(gòu)思路。很多人在二次開發(fā)群里詢問哪里有好的Revit二次開發(fā)課程可以學(xué)習(xí),那么本課程將是大家不容錯(cuò)過的好課程。我極力推薦!
希望這些小伙伴們學(xué)完之后的點(diǎn)評,可以給你一些參考,喜歡就私信我們學(xué)習(xí)拿下吧。
有態(tài)度,有深度,這里是BIMBOX,我們下次再見!
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。