曹 勇,蘇曉慧,孫夢夢,吳海亮
(1.黃河勘測規劃設計研究院有限公司,河南 鄭州 450003;2.黃河水利科學研究院,河南 鄭州 450003)
BIM的英文全稱是Building Information Modeling,即建筑模型信息化。BIM技術的理念是將信息化技術與建筑行業相結合,運用建筑信息模型作為項目核心來貫穿整個項目,將設計、施工、管理各個環節的圖紙、資料等信息進行整合,建立BIM平臺,持續更新工程建設過程中的各階段信息,從而實現設計到施工、運營的全壽命周期管理[1-2]。
目前,我國BIM技術在水利工程行業仍處于起步階段,但從近年來實踐應用情況來看,BIM在水利工程的設計、可視化、施工管理、運行維護等方面都取得了快速發展[3-16]。
BIM軟件是實現BIM技術的重要工具,其中商業BIM軟件具有功能齊全、針對性強、售后服務好等優點,但其使用成本較高,對于許多中小型設計和施工企業,形成較高的門檻,阻礙了BIM技術的廣泛應用和推廣。本文以一款免費開源三維建模軟件,實現了商業軟件的建模和結構計算等功能,是開源三維建模軟件在水利工程BIM領域中一次成功嘗試和探索,對于BIM技術在水利行業的普遍推廣和應用具有重要意義。
BIM技術的核心是信息,所有構件或建筑物的幾何尺寸、物理特性、成本和施工要求等信息都可以通過參數方式來表達,并運用3D運算和空間拓撲關系將這些信息進行整合,集中存放在數據庫中,形成一個數字化BIM模型.
1.1.1參數化
以數字技術為依托,模型中構件的屬性都可以用參數確定,具有面向對象化的特點,能夠接收數據、處理數據,并將數據傳達給其他對象;也可以接受信息的反饋,通過信息處理使模型更加完善。模型的參數化特點是其他功能的基礎。
1.1.2可視化
將二維線條式構件通過三維立體實物圖形象展現出來,相關構件之間還能夠形成互動性和反饋性的可視,實現視覺上的可視化,使項目從設計至運營整個過程中的溝通、討論都能夠在可視化的狀態下進行。
1.1.3模擬性
可以模擬設計出的建筑模型,進行施工進度模擬、節能模擬、日照模擬等在實際生活中不易操作的模擬。
1.1.4可協調性
BIM 模型可以模擬項目實際情況,便于及早發現各專業間的沖突及存在問題,及時協調解決,降低工作過程中變更的次數。
1.1.5可輸出性
BIM 數據庫是由參數化數據構成,可以通過多種方式導出,例如建筑物不同角度的各種二維圖形信息,工程量清單、設備表等電子表格信息等。
BIM軟件的種類眾多,可依據專業類別做不同選擇。
選擇一款實用性強、性價比高、拓展性廣的BIM建模軟件往往是進入BIM領域的第一步。當前,市場常見的商業三維建模軟件如下:
1.2.1Revit
Revit軟件是Autodesk公司軟件,最重要的特點是所有組件、視圖和注釋之間的關系模式,使得任何組件的改變會自動傳播,保持模型內容的一致性。Revit提供團隊協作的機制,建立共享數據庫,可以多人同時開啟后,以工作集控制編輯權,避免對象被不同的用戶同時編輯。
1.2.2Civil 3D
Civil 3D是Autodesk公司以AutoCAD為平臺開發的BIM軟件,以3D地形為基礎,提供鐵公路定線、路廊、整地、土石方、重力管線、壓力管線等3D設計環境。利用Civil 3D可將傳統的測量數據或地形圖等高線轉換為3D地形,作為土木工程設計的基本數據。
1.2.3MicroStation
MicroStation是Bentley 工程軟件系統有限公司在建筑、土木工程、交通運輸、加工工廠、離散制造業、政府部門、公用事業和電訊網絡等領域解決方案的基礎平臺。
1.2.4CATIA
CATIA是法國達索系統公司開發的跨平臺商業3維CAD設計軟件。CATIA作為達索系統產品生命周期管理軟件平臺的核心,主要應用在航空工業和汽車工業。隨著CATIA已移植到建筑業,應用于大型而具有自由曲面的現代建筑,未來亦具有很大的市場潛力。
傳統三維建模多采用Autodesk公司的AutoCAD軟件,首先需畫出二維平面圖,通過拉伸、旋轉、合并、求交等步驟,生成三維實體,其優點是設計人員在掌握二維繪圖技能的基礎上,能夠快速上手三維建模方法,目前大多數中小型設計院仍采用這種建模方式。
AutoCAD軟件在三維建模時存在以下缺點:
(1)三維建模完成以后,一個細小的零件尺寸的調整,會影響到相關建筑物構件的尺寸與位置,需要從頭開始繪制二維平面圖,重新建模。
(2)AutoCAD軟件的強項是二維平面制圖,三維建模屬于后期新增功能,軟件的基礎框架仍側重于二維,當建筑物龐大、細部結構過多時,就會頻繁卡死,儲存文件也很大。
(3)AutoCAD不能直接給物體賦屬性值,難以實現建筑模型信息化。
(4)AutoCAD輸出的三維文件格式種類有限,很難被結構計算軟件、動畫制作軟件識別,常常需要導入其他軟件進行轉換。
BIM建模軟件很好地彌補了以上的不足,其參數化建模功能可以讓模型的修改更加便捷、高效,物體的屬性值可以儲存在模型數據庫中,文件輸出格式的多樣化。
市場上的商業BIM軟件具備功能齊全、針對性強、專業化定制、售后服務及時、學習資料齊全等優點,但同時其價格昂貴,且有許多功能模塊采取綁定式銷售,實際應用價值不大。對于許多中小型設計企業,僅在價格上就已經形成了很高的門檻,后期的培訓、二次開發等則需花費更多的費用,已阻礙了BIM技術的廣泛推廣及應用。
此外,商業BIM軟件都完全封裝其源代碼,我國大多數企業購買BIM軟件后,只擁有其使用權,缺乏對于軟件的實現方法、基本原理等深層次研究。隨著西方國家在軟件版權、芯片技術等高科技領域的對我國的限制,長此以往,未來BIM軟件將會處于受制于人的局面。
FreeCAD是一款通用開源免費的三維建模軟件,既能用于機械工程與工業產品設計,也面向更廣泛的工程應用如建筑或其他工程領域。它基于OpenCasCade之上,采用Coin 3D提供的與Open Inventor兼容的三維場景模型,提供豐富的Python API接口,支持簡體中文,并且跨平臺支持Windows、Mac 及 Linux系統。
FreeCAD具有與Catia、SolidWorks軟件相類似的工具,它基于功能的參數化建模器,具有模塊化軟件體系結構,可輕松開發附加功能,而無需修改核心系統,具有許多2D組件以草繪2D形狀或從3D模型中提取設計細節以創建2D生產圖形。
FreeCAD擁有科學計算領域中所有出色的開源庫,包括功能強大的CAD內核OpenCascade、UI框架Qt和Python腳本語言。FreeCAD本身也可以被其他程序用作庫。FreeCAD提出了工作臺的概念,工作臺是適用于特定任務的工具集合,比較常用的有用于處理建筑的Arch工作臺、有限元分析FEA工作臺、零件建模的PartDesign工作臺、建立幾何約束的Draft草圖工作臺、SpreadSheet電子表格工作臺等。
最核心的是FreeCAD是一款完全開源的三維建模程序,基于C++語言開發,能夠在官方網站上下載到其全部源代碼;同時以 Python語言作為宏語言,可以通過編程可以實現三維建模,便于二次開發。
作為一款免費開源的建模軟件,FreeCAD具有較強的靈活度和拓展性。以往該軟件多用于機械工程與工業產品設計,近年來也逐漸向建筑工程領域發展,但在水利行業尚無相關的研究成果。
FreeCAD軟件提供了三種具體的建模方式,通過建立一個長為10mm,寬為5mm,高為1.5mm的長方體為例,具體步驟如下:
(1)繪制圖形后,利用限定約束直接給尺寸賦值
首先建立一個Body實體,新建草圖Sketch,繪制一個長方形,長邊設定水平約束參數值為30mm,將其命名為Length;其次對寬邊添加約束,值設為Sketch.Constraints.Length/2,名稱設為Width,此時就建立了長寬邊之間的函數約束關系,即寬邊是長邊的0.5倍;然后對草圖進行拉伸,拉伸高度值設為(Sketch.Constraints.Length+Sketch.Constraints.Width)/10,即可建立長方體高度與長、寬約束值的函數,使三種產生約束關系,生成三維實體圖。
(2)建立Spreadsheet表格,調用表格中的參數值
新建Spreadsheet表格,將其命名為Parameters,在表格中分別輸入長寬高,并設置A2、B2、C2的單元格屬性中“別名”分別是Length、Width和Height;在表格A2中輸入30(mm),在表格B2中輸入“Parameters.Length/2”,在表格C2中輸入“=(Parameters.Length+Parameters.Width)/10”,即在表格中建立長方體的長寬高約束函數關系。在繪制草圖過程中調用Parameters的單元格的別名,作為長方體的約束值,建立三維模型。
(3)利用Python語言通過編程生成三維實體
#導入模塊
import FreeCAD
隨著我國鐵路的不斷發展,鐵路在運行過程中的安全性問題日益凸顯,視頻監控在鐵路交通安全中起著至關重要的作用。通過攝像頭監控、互聯網的傳播,監控畫面實時顯示,鐵路部門可以利用視頻中的有效圖像信息,對視頻流進行處理,從而有效地保證鐵路系統的正常運營。因此,如何快速有效地提取鐵路視頻圖像中的關鍵幀信息,是本文研究的重點。
import PartDesign
import PartDesignGui
import Sketcher
#新建文件
App.activeDocument().addObject(′PartDesign::Body′,′Body′)#生成空實體
App.activeDocument().Body.newObject(′Sketcher::SketchObject′,′Sketch′)#建立新草圖
#設定作圖平面
App.activeDocument().Sketch.Support=(App.activeDocument().XY_Plane,[″])App.activeDocument().Sketch.MapMode=′FlatFace′
#設定長方體的長(Length)、寬(Width)、高(Height),可以根據需要任意設定長寬高值
Length=30.0
Width=Length/2.0
Height=(Length+Width)/10.0
#生成草圖
geoList=[]#生成長方體的草圖繪制參數列表
geoList.append(Part.LineSegment(App.Vector(0,0,0),App.Vector(Length,0,0)))
geoList.append(Part.LineSegment(App.Vector(Length,0,0),App.Vector(Length,Width,0)))
geoList.append(Part.LineSegment(App.Vector(Length,Width,0),App.Vector(0,Width,0)))
geoList.append(Part.LineSegment(App.Vector(0,Width,0),App.Vector(0,0,0)))
App.ActiveDocument.Sketch.addGeometry(geoList,False)
#由草圖拉伸成實體
App.activeDocument().Body.newObject("PartDesign::Pad","Pad")
App.activeDocument().Pad.Profile=App.activeDocument().Sketch
App.activeDocument().Pad.Length=Height
App.ActiveDocument.recompute()
#隱藏草圖繪制模式
Gui.getDocument("").getObject("Sketch").Visibility=False
以上三種建模方式,前兩種比較相似,即建立不同約束間的函數關系,建立不同參數之間的函數關系,其中第二種Spreadsheet表格方式較為直觀地表示了各單元格間的函數關系,也便于備注、保存和數據共享,對于熟悉Excel的工程人員,上手速度很快。第三種Python程序建模的方式,不顯示各步驟的渲染過程,可直接生成模型,極大地提高了計算機的運算速度,但需掌握Python語言,有一定的學習難度。通過對比,本次選用第二種方式Spreadsheet表格進行三維參數化建模。
彭樓穿堤閘工程位于河南范縣境內,閘址相應黃河左岸大堤樁號為106+600,為一聯5孔鋼筋混凝土箱型涵洞式水閘,凈寬3.0m,孔口高度3.5m,中、邊墩厚度均為1.2m,閘室順水流方向長15m,閘室后接10m長涵洞14節,水閘平面布置圖及縱剖面圖如圖1所示。

圖1 彭樓穿堤閘平面布置圖及縱剖面圖
本次以水閘閘室為例進行參數化建模,具體步驟如下:
(1)首先建立Spreadsheet表格并命名為SluiceParameters,將閘墩、閘底板等詳細參數值填入單元格中,并設置每個賦值的單元格的屬性名稱。
(2)在草圖模式下繪制閘底板的平面二維草圖,通過屬性名稱調用SluiceParameters表格中單元格的值,給閘底板每條邊的尺寸賦值,繪制閘底板二維草圖,并通過拉伸生成閘底板三維實體。
(3)依次繪制閘室的其他結構,最后合并為一個實體,如圖2所示。

圖2 水閘閘室三維實體圖
以上基本完成閘室的三維建模,初次建模過程較為繁瑣。但如需新建一個不同孔數的涵洞式水閘,或者對已建模型的細部結構尺寸調整,則需直接修改SluiceParameters表格中單元格的數值即可,三維模型將根據新的數值,通過已建立的函數關系計算每個約束的值,重新生成模型,極大地簡化了模型修改的工作量。
穿堤閘進口兩側的擋土墻墻身高7.5m,墻厚0.6m,墻趾長1.5m,墻踵長7.5m,底板厚1.0m,扶壁厚0.6m,扶壁間距3.5m。
擋土墻建模過程與水閘建模類似,首先建立名為WallParameters的參數表格,各個尺寸調用WallParameters中的參數生成約束的函數關系,繪制草圖并拉伸,生成擋土墻三維實體,如圖3所示。擋土墻三維模型建立后,可通過修改WallParameters中的參數值,完成模型的自動更新。

圖3 扶壁式擋土墻三維圖
FreeCAD軟件自帶的FEM工作臺,具有有限元分析計算功能,可通過設定模型的約束和外部受力條件,完成有限元結構內力分析計算,操作方法簡單、便捷。具體步驟如下:
(1)從PartDesign工作臺切換至FEM工作臺;
(2)建立計算分析容器Analysis,設定模型為鋼筋混凝土材質;
(3)在閘底板下部設置固定約束;
(4)給定閘室的外部作用力,包括:閘后填土側向土壓力、閘后填土自重、啟閉機房、啟閉機重量;
(5)根據計算精度要求剖分網格,如圖4所示;

圖4 閘室結構有限元網格劃分圖
(6)進行結構計算分析,生成應力分布圖,如圖5所示,閘墩剖面應力分布圖,如圖6所示。

圖5 閘室應力分布圖

圖6 閘墩剖面應力分布圖
按照以上步驟,對扶壁式擋土墻劃分網格,并做受力計算分析,應力分布圖如圖7—8所示。

圖7 扶壁式擋土墻應力分布圖

圖8 扶壁式擋土墻水平截面應力分布圖
將水閘和擋土墻的有限元結構計算結果與傳統手算結果進行對比,可知同部位的有限元計算成果與手算成果的應力差值在1%~3%之間,其中有限元計算成果應力值偏小于手算成果。
將FreeCAD切換至TecDraw工作臺,選定三維實體后,根據指定的投向生成平面二維圖形,結構尺寸會自動標注。當調整參數后,三維模型發生調整的同時,平面二維圖形和標注尺寸也會自動更新。FreeCAD還可以將圖紙導出生成DWG文件,在AutoCAD中打開進行細化調整,如圖9所示。

圖9 閘室縱向剖面圖二維圖
本文以水閘工程為例,以免費開源三維建模軟件FreeCAD替代商業BIM軟件,實現三維參數化建模、有限元結構計算等重要功能,極大地降低了BIM軟件的使用成本。本次主要側重于水利工程的建模應用,下一步還需在FreeCAD軟件的二次開發、基本原理和源代碼等方面展開深入研究。開源三維建模軟件在水利工程BIM領域的應用是一次成功的探索,一旦推廣,可以讓更多的人員參與到開源建模軟件的使用、設計和研發中,從根本上改變核心技術受制于人的被動局面,更好地促進我國BIM技術的創新發展。