編程在土木工程中有什麼應用?

編程在土木工程中有什麼應用?我開學大二也不是很了解,憑感覺可能科研中會有些應用實際工程里可能不多。

作為土木工程專業的學生有學好編程的必要嗎?


編程(IT技術)對土木工程的作用大家都很清楚,妥妥地提高生產力啊。但是對一般從業人員來說,那都是別人編的程,和我有關係么?

先說結論:以後,編程的地位會越來越像數學,成為一種高級工具。

在實際工作中,不用數學行么?好像是可以的,全都用PKPM、Ansys等軟體來算,一個公式也不寫,也許也能混日子。但是這種水平,永遠當不了高級技術人員。遇到特殊情況,要手推個公式,立馬抓瞎。比如去國外接工程,規範不一樣,如何推斷兩國規範的同類公式中相關係數的關係等。

回到編程。編程說白了就是把重複的寫成循環、把多種情況寫成判斷、把特殊的抽象成通用的、把手動的變為自動的。

會不會編程,即使是簡單的Excel處理數據(不同公司的數據格式肯定不太一樣,總會有需要處理的時候),相關函數的運用也是不一樣,效率可以差很多。極端一點就是,把能循環的部分拆開來分別處理……

再舉個例子,如果想在某招投標網上找某類招標公告並下載下來按不同的項目(如公司、地點、項目類型、項目面積等)分類整理成Excel表。不會網路爬蟲和文本處理的人只好花幾天的時間一頁頁地翻,複製粘貼並手動整理。會的話,幾個小時就能用Python做出套工具來,且一勞永逸。

最後請跟我喊十遍:人生苦短,我用Python!


謝邀,先佔坑,話說大過年的馬上都放假了,現在正在糾結年終總結的時候邀請我答題是幾個意思。。。

等我過年過的開心了,抽個時間來答題。。。土木單身IT汪,汪汪汪。。。

============我是大年初二來填坑的分割線=====================================

20/02/2015:睡眼惺忪爬起來填坑!(單身狗已被過年曬幸福的晒成重傷,我容易嘛我!)更新

首先必須要明確的一點是土木工程這個學科雖然很傳統,但是其發展必將和機械工程等學科一樣,向著自動化,工業化邁進,計算機在其中的作用很重要,那麼問題來了,編程是不是也很重要呢?廢話!當然重要!

土木工程的基礎專業知識是力學,對於簡單的靜定結構,使用對稱化簡、取出隔離體分析等手段我們能很容易的解答出來,但是遇到想房屋這種複雜的要死的超靜定結構(no zuo no die 啊),不管使用剛度法還是柔度法,隨便取個剛度矩陣,你用筆算算,是不是得瘋?(要是老師想為難你的話,隨便來個題就能讓你算一天。。。現在想想當年考試還是挺簡單的,多謝老師不掛之恩)。。。這時候計算機君告訴你,找我啊,我最擅長這個了。。。之後有限單元法誕生了。。。(有限單元法這種牛逼的不行不行的方法就是起源於土木工程醬)從此抗震設計、抗風設計等等就成為一種常態而在實際中出現啦。。。隨著力學學科的發展計算的複雜程度也不斷提升(從近些年以來的奇奇怪怪的建築就能看出,哪怕就只提前個十年,也造不出來啊)這種紅利就我而言與計算機計算性能的提升是完完全全分不開的。。。

羅里吧嗦的說了半天歷史,會用計算機就好了啊,有現成的計算軟體比如:PKPM,SAP2000,Midas,Robot Structure Analysis等,都編號了調參數嘛,幹嘛用編程?

如果只限於普通的建築結構的設計或者施工,有人給你做好編程的鋪墊工作,軟體會用就好了!但是如果你有更大的野心呢?你有更大的抱負呢?

那麼下面就來從科研角度和實際角度分別說說學習編程的必要性!

科研角度

(來來來,快跳到科研的坑裡來~~~)

1、(結構、岩土)力學實驗:大家對於結構分析肯定不陌生,舉個簡單的栗子,做個新型牆體的滯回曲線(往複循環作用下的荷載變形曲線),做完實驗,你會得到成噸的數據,你怎麼分析呢?用EXCEL?當然也可以(只要你有耐心)。。。有人會用matlab等分析軟體進行數據處理,這不就是簡單編程么。

2、(結構、岩土)模擬實驗:由於土木工程的特殊性,總不可能每次都是實體實驗,即使縮比例也很燒錢啊。。。聰明的研究人員就用計算機進行模擬,省錢還方便想什麼時候做就什麼時候做。。。有的人用ABAQUS,有的人用OPENSEES,(做科研不能用工程軟體。。。不是說軟體不好,而是裡面運算核心不透明,不能很好的重複模擬、運算不精確等一些原因):如果是新材料,你得重新定義裡面的材料變化參數吧,如果碰巧沒有你材料的模型,只能通過編程解決;如果是新載入制度,自帶的程序里沒有,那也只有通過編程解決;如果你很懶(懶人推動世界進步。。。),想一鍵操控,對於以後重複的載入不用重複調整參數,那麼編個簡單的小程序也是棒棒噠!

3、(結構、岩土)計算理論:這個就不多說了,百分百要自己編程解決。

4、(項目管理)建築信息:這個和計算機結合最緊密,你看《Automation in Construction》里有很多都是自己編程實現的功能,不僅需要三維圖像處理、模式識別等,還需要模擬模擬。。。有關虛擬樣機等,哪一個不需要自己編程?

5、(管理)設備管理FM和運維管理:為了方便的管控建築能耗等,科研工作者們提出很多計算方法和功能樣機,都需要編程實現。

實際工程角度

1、設計方面:(因為我們討論土木工程,所以不討論建築用軟體)結構工程用PKPM等,貌似不需要編程,繪製施工圖的TSSD等,貌似都有人做好了,你拿來用即可。。。但是對於特殊一點的建築結構呢?特殊一點的結構節點呢?要麼筆算,要麼慢慢畫。。。如果這個時候你會點編程,效率大大的提高。。。舉個栗子,某學長經常使用LISP語言在CAD中添加一些小功能,方便設計繪圖和統計工程量。。。

2、施工方面:表面上看來施工好像不需要編程,但是實際上如果能利用好編程就能夠大大的提高效率,但是就目前來看,還需要提高。。。木有栗子。。。

3、新技術方面:不能不提近些年來如火如荼的BIM技術啊,Revit等一系列軟體,首先是一種通用行軟體,就目前而言,其建模效率比不上二位CAD的出圖效率,但是你想想CAD上有多少方便作圖的插件啊。。。BIM軟體還在不斷發展中,編製一個牛逼的程序指不定還能撈一桶金(這可比過年搶紅包更實在。。。)舉個栗子,機械六院就針對Revit自家編製了很多關於設備的插件,有效提高其設計質量縮短畫圖時間成本。。。

4、房地產方面:我會告訴你房地產一般有錢的都是直接找碼農做編程實現他們想要的功能嘛。。。舉個栗子,各種房地產大佬們都開始關注互聯網思維了,你可想而知。。。房地產互聯網思維啟示錄:地產大佬在行動這個可以看看。。。(好想轉碼農。。。)

最後,隨便說點別的。。。大學的課程安排就需要學習編程的好嗎?土木工程學習Fortran,工程管理是VB和資料庫,設備是C或者C++。。。你想學校設置課程必然有緣由。。。所以在以後就能幫助你許多,比如Revit二次開發的時候要用C#,用於實時監控施工現場數據化表達的D3(JavaScript),用於工程數據挖掘處理的一些編程(Python),施工現場圖像處理和識別的C++和matlab,現在研究應用數學模型預測的mathematica等等。。。當然編程的語言各式各樣,重要的是形成良好的編程習慣和思維方式。。。

暫時就想到這麼多,零零碎碎的,歡迎評論補充。。。

=============我是過年單身汪,請愛護我們====================================

由於我們行業的從業門檻低,我國的人工暫時還沒有到國外那麼高,因此在這個傳統的行業里,編程還沒開始嶄露頭角,不過我看好未來的高科技土木工程,那麼我們現在就可以做準備,準備迎接新時代。。。

21/02/2015:補充

碰巧看見在芬蘭學習的同學發來的感慨,現在連芬蘭高中生的核心課程中都添加編程(參考:Coding soon to be part of Finnish schoolchildren core curriculum),可想而知未來編程在生活中的重要性已經被越來越多的人注意到,私以為十幾年前英語、汽車、計算機是大學生的熱門技藝,如今已不能用於炫耀而成為基本技能,如今編程現狀及未來亦如此。。。無論哪個行業。。。


我的觀點一直很偏激:

工科生連編程都不會,和文科生有什麼區別?


不請自來

本人2012年畢業,畢業後先做了一年民用建築,然後轉做火力發電的土建結構設計。雖然資歷不深,但是看到這個問題覺有想法。

在結構設計中,通用的結構設計軟體比如PKPM、MIDAS、STAAD這些可以計算整個結構體系,有理正、世紀旗雲這種軟體可以計算單個構件。

但是!!!總會有意想不到的各種小東西出現,而現有的計算程序不能完成,必須手算,如果可以自己通過mathcad之類的程序編一個小程序,不僅可以解決計算書的問題,還可以留著在以後的項目中使用。尤其在海外項目的時候,非誠好用。國外的諮詢公司對計算書的檢查非常仔細。

再有就是繪圖的工具,現在AUTOCAD的外掛插件已經很豐富,如果可以開發出解決通用問題的插件,會非常方便。比如最近正在畫各種大樣圖畫到吐血。。。。


看到這個問題,突然有一種不能不答的衝動,實在是因為平時和同學交流這個問題太多。當然,這可能只是一家之言,所以僅供參考,歡迎拍磚。。。

首先表明立場:在土木工程領域裡,編程非常重要,相當重要,而且會越來越重要!為什麼這麼肯定以及強調呢?當然是因為有切身經驗和體會啦。順便介紹下本人經歷和現狀,土木工程本科畢業,現就讀交通物流工程研究生。

為了更直接具體地回答,下面我把土木工程大致分為結構工程、交通工程和工程管理三個領域,分別解釋其中編程可能扮演的重要角色以及一併闡述自己的感受。

結構工程:如果我沒猜錯,題主一定正在上或即將上結構力學,與各種桿件、桁架剛架、力力矩打交道。當你辛辛苦苦手算兩個小時,卻不小心瞥到身邊學霸的答案跟你不一樣時,你一定有把寫滿自己勞動「成果」的作業紙撕掉的衝動。其實你應該知道有一種東西叫做結構力學求解器(這真的不是廣告),把你的題目結構及參數輸進去,輕點按鍵,計算結果甚至過程都直接輸出出來,然後你便可以直接深切體會到編程成果的好處(聲明一點,在學會基礎方法之前,這類軟體應該只做結果驗證用,基礎永遠是最重要最應該掌握的)。我想說的是,計算機及其科學如今發展這麼迅速,如果不能跟隨時代潮流利用它可以帶來的便利和好處,那簡直是我們土木工程人暴殄天物。如果一個PKPM軟體兩個小時可以設計出一棟規則安全的樓房,那為什麼還要辛苦工程師花費數天時間進行手算還不能保證結果足夠精確?如果計算機程序可以代替人做那些繁雜又重複的類體力勞動,那為什麼不節約出那些睿智的大腦來思考一些更深入嚴肅的工程問題?

從另一個角度來說,結構工程領域自身的發展也越來越需要計算機的參與和協助,包括做實驗需要的數據記錄軟體,分析實驗數據的分析軟體,做模擬實驗的模擬模擬軟體、各種結構大數據的收集與分析等等。沒有編程,還真難以想像怎麼樣可以實現這些功能,總不能為了做地震實驗每次都特意去模擬震垮一些現實的建築物吧。。。

由於我不怎麼接觸結構這一塊已經一年多了,所以可能最近有一些最新的行業進展,也許你可以比我了解得更多更直接,平常多關注 :)

交通工程:這是我現在正在研讀的專業,平時也做與之相關的research。說起編程與這個領域的聯繫就更是難以言盡了。像我做的物流相關的研究,需要建立各種各樣的數學模型,這些數學模型沒有辦法人工求解,只有通過編程利用計算機進行求解,這其中又涉及到各種各樣的演算法,都是編程方面重要的知識,所以我現在修的課程也多與數學,計算機編程相關。此外,最近發展起來的ITS(Intelligent transportation system),更是與計算機編程無法分割,其中一些核心的技術和發展方向,包括無線感測信號檢測與傳輸、無人駕駛汽車、智能交通控制系統等等,都是基於計算機技術的,也是編程在交通領域應用並給人們生活帶來極大便利的極好的例子。想想你平時出行利用百度或Google地圖查詢路線或公交換乘,如果沒有那些用起來那麼順手的APP,是不是挺捉急的連出門左轉還是右轉都不知道了。。。(此外,夾帶一點。。^^),我本科期間和導師寫了一篇新型交通信號燈控制的論文,裡面編寫了數學模型,利用計算機編程語言編寫了程序求解得到結果,並藉助最新交通模擬軟體TransModeler(這是個很fancy的交通模擬軟體,特別推薦就是太貴。。。) 進行了現實情況模擬和結果驗證(視頻),個人認為這些應該都可以算作編程在交通領域的重要性體現吧。

工程管理:這應該是我最為不熟悉的一個領域了,有幸的是本科期間一門課程上跟隨導師做了一個學期的小項目,主要是BIM軟體相關的子軟體編寫和調試,成果就不提了,但卻是真真切切感受到了計算機軟體技術在工程管理上的極致應用,感興趣可以看看Autodesk公司的Building Design Software。BIM概念上就是統籌管理建築施工的整套流程:從設計規劃、到施工建築、再到運營管理以及此後的維護。傳統的工程管理各個階段相對來說比較獨立,導致需要投入的人力成本比較大,尤其是花費在協調統籌上的成本。而BIM的應用,將這些階段有機地統籌到了一起,大大降低了項目成本並使得整個過程流程化、規範化。現在很多企業公司在大力發展BIM技術並編寫相關管理軟體,而這些我這裡舉出這樣一個例子,同樣是為了表明編程在工程管理領域的重要應用。

零零碎碎說了這麼多,只是從自己的體會和經驗出發,認同一下編程在土木工程領域的廣泛應用以及重要性。我想既然你提出這個問題,表明你對編程是有一定接觸和想法的。所以我非常建議你在平時學好專業理論知識的基礎上,多接觸早接觸計算機和編程,多嘗試、多練習,把平常別人花費在無聊上的時間用來辛勤地碼啊碼,你一定會獲益匪淺,並覺得人生充滿了樂趣。

何況,技不壓身,萬一以後你想不開,想當碼農了,也不至於無路可走嘛。(純屬玩笑,其實我也想當碼農!!!)


掙大錢的領導基本都50+連CAD都不會用,但不影響工程界的地位.

參不透這一點, 永遠只能當個畫圖編程狗..


作為一名地道的岩土隧道狗,各種笨狗模型,你會列舉一大堆軟體:ANSYS, FLAC、 3D-σ, Plaxis, Gts, Abaqus等等,有限元有木有?

但是,答主08小碩工作至今很少再用這些鳥軟體分析,更是想做個貼合規範計算,輸入參數就可以給出計算結果,或者計算書,你又說理正岩土啦,當然可以,規範一直都在更新,軟體更新還是慢很多!

於是,正在撬Python的大門,希望有一天可以自己寫一個類似於理正的東東,或者可以更牛逼些,呵呵...

PS:隧道一鍵設計,生成計算書、CAD圖,豈不是吊炸天?其他類似...


別聽他們亂講,他們多半以後會直接去當程序員,不會留在土木這一行當的


編程超有用的,在土木研究裡面。

還是身邊的栗子:搞工程力學的用的fortran,搞結構的有用ANSYS裡面的APDL的,還有岩土裡面也有abaqus,還有matlab都是非常有可能用到的,這是都是實際的應用了。


可以學好編程。不過對於實際工程,編程並沒有畫圖快有用。而且,在設計院成為碼農並不會比成為圖農受更多優待,也不會被認為是「解決問題能力強」


好多好多年前,姥爺靠按計算器驗算一遍項目都要好多天,他可是有最高級結構的那個章子的。

到了我小時候,開始出現電腦的時候,當年的386電腦算一個項目只需要半天,驚為天人。

到了486的時候,已經縮為幾個小時,

後來奔騰電腦的時候,半個小時。

現在的情況大家都知道了。


我們學校教我們力學的一個教授,他以前讀碩的時候就已經在我們學校跟著一個導師進修。結果吧那個導師看他蠻有前途的,就慫恿他繼續讀博。而讀博的一大半時間就是在幫這個導師開發一個軟體叫做Response 2000。


可以寫一些cad插件,被設計院採用的話很賺錢的...


讀書的時候可以好好學學編程,反正閑著也是閑著,以後真的會用得到。但是要注意學這個不是為了轉行,而是用來輔助學習與工作。你再牛恐怕也很難牛過計算機專業的,雖然你可能對這個很感興趣,充滿無限想像。工作後主業是專業工作,而不是編程,在上面花很多時間一般說來是不值得的。可能那時你同事看你會編程覺得你牛,但其實可能他們掙得比你多,你會編程但專業能力不強什麼都白搭。當然了你都還沒開始學就和你講這些未免合適。


推薦閱讀:

文獻檢索(4):是時候認識一下Web of Science了

TAG:編程 | 科研 | 土木工程 | 土木工程專業 |