亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Revit二次開發(fā)在水閘工程擋土墻設(shè)計中的應(yīng)用

        2021-03-05 01:47:08遠(yuǎn),牛偉,張宇,李
        人民長江 2021年2期
        關(guān)鍵詞:二次開發(fā)擋土墻插件

        朱 致 遠(yuǎn),牛 志 偉,張 宇,李 同 春

        (河海大學(xué) 水利水電學(xué)院,江蘇 南京 210098)

        Autodesk Revit 作為實現(xiàn)BIM技術(shù)使用最為廣泛的軟件之一[1],因其操作簡單、易于開發(fā)、兼容性好,在建筑行業(yè)占據(jù)了巨大的市場[2]。但目前我國水利行業(yè)對BIM技術(shù)的應(yīng)用尚淺[3],因Revit缺乏水工結(jié)構(gòu)計算、穩(wěn)定計算功能,導(dǎo)致其無法滿足水利設(shè)計的需求,傳統(tǒng)水利設(shè)計還是常采用CAD繪圖,Excel表格、理正、PKPM等軟件輔助結(jié)構(gòu)穩(wěn)定計算,普遍存在可視化程度低、與BIM軟件結(jié)合度差、重復(fù)性工作繁瑣等缺點(diǎn)[4]。通過Revit API結(jié)合C#混合編程,對Revit軟件進(jìn)行二次開發(fā),訪問、操作三維模型,實現(xiàn)自主添加結(jié)構(gòu)穩(wěn)定計算功能模塊,為解決上述問題提供了新的思路。國內(nèi)對于Revit軟件二次開發(fā)的研究起步較晚,綜合來看,主要集中在土木工程的結(jié)構(gòu)計算、施工管理、便捷式模型建立及工程量的統(tǒng)計等幾個領(lǐng)域,在水利工程結(jié)構(gòu)、穩(wěn)定計算方面的研究仍有待深入[5]。朱紅光等[6]通過對Revit API接口的調(diào)用,實現(xiàn)了在Revit平臺下整體預(yù)應(yīng)力裝配式板柱體系的結(jié)構(gòu)計算二次開發(fā);鄧?yán)誓莸萚7]使用Revit API開放數(shù)據(jù)接口創(chuàng)建基于Revit軟件安全管理模塊,實現(xiàn)了工程施工危險源的安全管理;馬佰鈺等[8]通過Revit二次開發(fā),實現(xiàn)了對索塔及其主要構(gòu)件的快速建模。肖貝[9]在Revit平臺上為土方工程開發(fā)了計算模快,方便基坑開挖土方的計算。本文通過Revit API與C#語言相結(jié)合的編程方式,采用WPF界面開發(fā)模式和MVVM程序開發(fā)模式,進(jìn)行水閘工程擋土墻穩(wěn)定計算程序的開發(fā),力求為水利行業(yè)擴(kuò)展BIM技術(shù)應(yīng)用進(jìn)行有益探索。

        1 開發(fā)工具及開發(fā)模式

        1.1 Revit API工具包

        Revit API(Application Programming Interface)是Revit提供給第三方開發(fā)者用來集成自建應(yīng)用程序到Revit產(chǎn)品的工具包,通過Revit API,開發(fā)者可以實現(xiàn)訪問模型的圖形數(shù)據(jù)、參數(shù)數(shù)據(jù),集成第三方應(yīng)用,創(chuàng)建插件等工作[10]。Revit API里面包含了大量二次開發(fā)可以使用的命名空間,以及命名空間下的類和類中包含的函數(shù)和屬性,極大程度上減小了二次開發(fā)的難度,使Revit二次開發(fā)成為可能。

        1.2 WPF界面開發(fā)模式

        WPF(Windows Presentation Foundation)是微軟新一代的界面開發(fā)技術(shù),是微軟開發(fā)技術(shù)未來10 a的主要方向[11]。WPF包含了數(shù)據(jù)驅(qū)動、DataBinding、XAML語言等概念,有效地將UI界面設(shè)計和邏輯設(shè)計分開,加上DirectX底層接口帶來的優(yōu)秀圖形向量渲染引擎,相比上一代GDI/GDI+編程模型有了質(zhì)的飛躍,也使得WPF在界面開發(fā)模式中占據(jù)了重要的位置。

        1.3 MVVM程序開發(fā)模式

        MVVM模式(Model-View-View Model)充分利用了WPF中的XAML和DataBinding功能,將程序的結(jié)構(gòu)分為Model層、View層和ViewModel層[12]。分層開發(fā)實現(xiàn)了功能模塊化,降低各個模塊之間的耦合度,從而使程序的架構(gòu)清楚、功能明確,同時便于團(tuán)隊協(xié)同開發(fā)[13]?;贛VVM模式的水閘擋土墻穩(wěn)定計算插件二次開發(fā)流程如圖1所示。

        圖1 基于MVVM模式的Revit二次開發(fā)流程Fig.1 Revit secondary development flow based on MVVM mode

        2 擋土墻穩(wěn)定計算插件開發(fā)

        Revit API提供兩種方式來擴(kuò)展其功能:一種方式是創(chuàng)建一個外部命令(IExternal Command),這種方式由用戶點(diǎn)擊添加的命令按鈕來啟動二次開發(fā)生成的相應(yīng)命令;另一種方式是加一個外部應(yīng)用(IExternal Application),即添加菜單或工具條,在Revit啟動和關(guān)閉時自動執(zhí)行[14]。

        通過對Revit API提供的模型選擇和訪問方法的研究,實現(xiàn)了對擋土墻模型參數(shù)的自動識別與獲取。通過對WPF和MVVM架構(gòu)的研究,使用C#語言編寫功能模塊,完成了用戶輸入?yún)?shù)、后臺程序計算、計算結(jié)果反饋的界面開發(fā)和人機(jī)交互功能。最后,使用外部應(yīng)用調(diào)用外部命令的方式實現(xiàn)了擋土墻穩(wěn)定計算插件的二次開發(fā)。插件開發(fā)流程結(jié)構(gòu)如圖2所示。

        圖2 擋土墻穩(wěn)定計算插件結(jié)構(gòu)框圖Fig.2 Structure diagram of retaining wall stability calculation plug-in

        2.1 界面開發(fā)

        本文主要通過外部應(yīng)用(IExternal Application)重載OnStartup()和OnShutdown()兩種方法實現(xiàn)功能區(qū)擴(kuò)展。

        (1) 首先在菜單欄中創(chuàng)建一個名為“水閘插件”的工具欄(RibbonTab),其下設(shè)一個名為“擋土墻”的面板(RibbonPanel),面板內(nèi)置一個名為“穩(wěn)定計算”的按鈕(Button),如圖3所示。

        圖3 Revit功能區(qū)擴(kuò)展效果圖Fig.3 Functional area expansion in Revit

        (2) 然后使用外部應(yīng)用調(diào)用外部命令的方式,實現(xiàn)點(diǎn)擊Button后跳出穩(wěn)定計算的交互窗口。

        (3) 交互窗口使用XAML語言編寫,其架構(gòu)如圖4所示,最外層由“參數(shù)輸入”和“獲取參數(shù)”兩個TabControl控件組成;參數(shù)輸入頁面包含了“物理參數(shù)”“水位參數(shù)”“地震參數(shù)”和“基本參數(shù)”4個GropBox控件,用來實現(xiàn)用戶手動輸入工程環(huán)境參數(shù)的功能;參數(shù)獲取頁面包含了“獲取擋土墻尺寸”和“計算結(jié)果”2個GropBox控件,用來自動獲取擋土墻模型參數(shù)和計算結(jié)果判別與顯示的功能。

        圖4 窗口控件構(gòu)架圖Fig.4 Frame diagram of window control

        2.2 用戶參數(shù)輸入模塊

        用戶參數(shù)輸入模塊開發(fā)由WPF界面開發(fā)和ViewModel類庫開發(fā)組成。

        (1) 在WPF界面開發(fā)中,本文針對不同類型的參數(shù)設(shè)置不同的輸入方式:對于數(shù)字(double類型)參數(shù),提供TextBox控件,并已預(yù)設(shè)了默認(rèn)值,簡化用戶操作流程;對于文字(string類型)參數(shù),提供ComboBox控件,用戶可以通過下拉按鈕選擇的方式設(shè)置荷載組合、擋土墻級別、地基土質(zhì),使參數(shù)管理趨于規(guī)范化。

        (2) ViewModel類庫的開發(fā),通過繼承INotifyPropertyChanged接口,在屬性的set語句中激發(fā)PropertyChanged事件實現(xiàn),當(dāng)界面上的值改變時,自動通知并修改后臺對應(yīng)參數(shù)值,當(dāng)后臺參數(shù)值變化時,自動更改UI界面上的值,最終達(dá)到人機(jī)交互的效果。

        2.3 模型參數(shù)獲取模塊

        模型參數(shù)的獲取模塊由WPF界面、ViewModel類庫和IExternal Command命令組成。

        (1) WPF界面使用TextBox控件顯示獲取的模型參數(shù)值,通過雙向綁定,實現(xiàn)了用戶在已取得模型參數(shù)的基礎(chǔ)上手動修改參數(shù)值。

        (2) ViewModel作為連接界面和命令的橋梁,將后臺命令程序獲取的參數(shù)與TextBox控件的Text屬性進(jìn)行綁定(Binding)。

        (3) IExternal Command命令使用RevitAPI中Selection.PickObject()和GetElement()的方法,通過手動點(diǎn)選擋土墻模型,將其轉(zhuǎn)化為程序中FamilyInstance類型的對象,然后通過遍歷該擋土墻實例對象的所有類型屬性,根據(jù)屬性名稱(parameter.Definition.Name)獲取需要的類型參數(shù),并賦值給ViewModel中對應(yīng)的屬性。擋土墻參數(shù)包括前趾板寬、豎墻寬、空腔寬、后趾板寬、豎墻高、底板厚、扶壁頂寬、扶壁底寬、扶壁厚、扶壁高等。

        插件可智能識別不同類型的擋土墻樣式(空腔式、扶壁式),如圖5所示,獲取對應(yīng)參數(shù),并自動采用相對應(yīng)的計算方法進(jìn)行穩(wěn)定計算。在此基礎(chǔ)上,還可進(jìn)一步增加擋土墻樣式,以擴(kuò)展插件的適用性。

        圖5 擋土墻參數(shù)化三維模型Fig.5 Parametric 3D model of retaining wall

        2.4 計算與結(jié)果分析模塊

        計算與結(jié)果分析模塊是擋土墻穩(wěn)定計算插件的核心,使用C#語言編程,對擋土墻規(guī)范設(shè)計流程進(jìn)行抽象封裝,完成了擋土墻自重計算方法、擋土墻穩(wěn)定計算方法和結(jié)果分析方法的編寫。

        (1) 擋土墻自重計算方法。由于各類型擋土墻穩(wěn)定計算均需要自重荷載值,故將自重計算過程獨(dú)立計算,以此減少重復(fù)代碼量。該方法需傳入擋土墻模型的尺寸參數(shù)集合和物理參數(shù)集合,然后根據(jù)式(1)~(2)計算得擋土墻總自重值、總自重彎矩值。

        G=K×V×υ

        (1)

        M=G×L

        (2)

        式中:G為構(gòu)件自重荷載,kN;K為截面系數(shù),矩形取1,三角形取0.5;V為構(gòu)件體積,m3;υ為混凝土容重,N/m3;M為構(gòu)件自重彎矩值,kN·m;L為構(gòu)件力臂,m。

        (2) 擋土墻穩(wěn)定計算方法。該方法需傳入擋土墻尺寸參數(shù)集合、物理參數(shù)集合、水位參數(shù)集合和地震參數(shù)集合,然后根據(jù)規(guī)范[15]要求及荷載類型,分別計算擋土墻自重荷載、主動土壓力、靜水壓力、揚(yáng)壓力、底板上土重、底板前挑水重等荷載,豎向荷載向下為正,橫向荷載向墻后為正,彎矩以向墻后傾覆為正。最后由式(3)~(5)計算擋土墻底應(yīng)力不均勻系數(shù)η、抗滑穩(wěn)定安全系數(shù)Kc和抗傾覆穩(wěn)定安全系數(shù)K0。

        η=Pmax/Pmin

        (3)

        式中:η為擋土墻底應(yīng)力不均勻系數(shù);Pmax為擋土墻底應(yīng)力最大值,kPa;Pmin為擋土墻底應(yīng)力最小值,kPa。

        (4)

        式中:Kc為擋土墻底面的抗滑穩(wěn)定安全系數(shù);f為擋土墻底面與地基之間的摩擦系數(shù);∑G為作用在擋土墻上的全部豎向荷載,kN;∑H為作用在擋土墻上的全部水平向荷載,kN。

        (5)

        式中:K0為擋土墻抗傾覆穩(wěn)定安全系數(shù);∑MV為對擋土墻前趾的抗傾覆力矩,kN·m;∑MH為對擋土墻前趾的傾覆力矩,kN·m。

        (3) 結(jié)果分析方法。根據(jù)用戶選擇的荷載組合、擋土墻級別、地基土質(zhì),選取規(guī)范[15]規(guī)定的擋土墻底應(yīng)力不均勻系數(shù)η、擋土墻底面的抗滑穩(wěn)定安全系數(shù)Kc和擋土墻抗傾覆穩(wěn)定安全系數(shù)K0允許值,通過與計算結(jié)果進(jìn)行比對,判斷擋土墻穩(wěn)定設(shè)計的合理性,并將判定結(jié)果與TextBox控件的BackGround屬性進(jìn)行綁定,當(dāng)計算結(jié)果不滿足規(guī)范要求時,TextBox控件底色變紅,如圖6所示。

        圖6 計算結(jié)果分析模塊Fig.6 Calculation results analysis module

        3 擋土墻穩(wěn)定計算插件在水閘設(shè)計中的應(yīng)用

        針對上述研究成果,本文以定波水利樞紐水閘工程的擋土墻為例,測試其有效性。

        (1) 建立參數(shù)化模型。使用Revit軟件對定波水利樞紐水閘工程進(jìn)行三維建模,并為擋土墻模型設(shè)置完整的類型參數(shù),如圖7所示。

        圖7 參數(shù)化水閘模型Fig.7 Parametric sluice model

        (2) 用戶輸入?yún)?shù)。根據(jù)該水閘工程所處的環(huán)境條件以及設(shè)計要求,輸入對應(yīng)的物理參數(shù)、水位參數(shù)、地震參數(shù)和基本參數(shù),如圖8所示。

        圖8 用戶輸入?yún)?shù)窗口Fig.8 User input parameter window

        (3) 獲取模型參數(shù)。點(diǎn)擊“請選擇一個擋土墻”按鈕,單擊擋土墻模型,插件自動獲取計算所需的擋土墻模型參數(shù),如圖9所示。

        圖9 獲取模型參數(shù)及計算結(jié)果Fig.9 Model parameters and calculation results acquisition

        (4) 計算。點(diǎn)擊“計算”按鈕,在結(jié)果框中顯示計算結(jié)果,根據(jù)計算結(jié)果底色尚未變紅,判斷在該環(huán)境條件下,擋土墻設(shè)計滿足穩(wěn)定要求,如圖9所示。

        通過將擋土墻穩(wěn)定計算插件和傳統(tǒng)的Excel表格、理正、PKPM軟件對比可以發(fā)現(xiàn),插件能在較短時間內(nèi)實現(xiàn)高精度的擋土墻穩(wěn)定計算,并自動對結(jié)果的合理性進(jìn)行判斷,大大減少了設(shè)計人員前期計算、后期復(fù)核,在多平臺多軟件來回切換、重復(fù)建模的繁瑣工作。與傳統(tǒng)方法相比,插件可視化程度高,提高了設(shè)計人員的工作效率的同時,也彌補(bǔ)了Revit缺少擋土墻穩(wěn)定計算功能的不足。

        4 結(jié) 語

        筆者團(tuán)隊充分利用BIM技術(shù)在水利工程行業(yè)設(shè)計、展示中的優(yōu)勢,開發(fā)了基于Autodesk Revit平臺的水閘擋土墻穩(wěn)定計算插件。該插件不僅實現(xiàn)了高精度、高效率的穩(wěn)定計算功能,高可視化、低操作難度的人機(jī)交互,還將工程設(shè)計規(guī)范與插件相結(jié)合,實現(xiàn)了計算結(jié)果的實時判別,在彌補(bǔ)Revit缺少水工結(jié)構(gòu)穩(wěn)定計算功能不足的同時,提高了水利設(shè)計人員的工作效率,為進(jìn)一步擴(kuò)展BIM技術(shù)在水閘結(jié)構(gòu)設(shè)計中的應(yīng)用奠定了良好的基礎(chǔ)。

        猜你喜歡
        二次開發(fā)擋土墻插件
        淺談基于Revit平臺的二次開發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        自編插件完善App Inventor與樂高機(jī)器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        淺談Mastercam后處理器的二次開發(fā)
        模具制造(2019年3期)2019-06-06 02:11:02
        淺談選廠常見擋土墻設(shè)計
        西門子Easy Screen對倒棱機(jī)床界面二次開發(fā)
        仰斜式重力擋土墻穩(wěn)定計算復(fù)核
        地震作用下加筋擋土墻穩(wěn)定性分析
        MapWindowGIS插件機(jī)制及應(yīng)用
        基于Revit MEP的插件制作探討
        基于Pro/E二次開發(fā)的推土鏟參數(shù)化模塊開發(fā)
        亚洲成人免费久久av| 亚洲美国产亚洲av| 亚洲伊人久久成人综合网| 人妻熟女中文字幕在线视频| 人妻少妇满足中文字幕| 国产精品视频免费播放| 精品久久综合亚洲伊人| 一区二区三区在线视频免费观看 | 亚洲小少妇一区二区三区| 女同同性av观看免费| 开心五月激情综合婷婷色| 天天狠狠综合精品视频一二三区| 亚洲精品国产熟女久久| 日本一区二区视频高清| 内射欧美老妇wbb| 丁香综合网| 日韩精品成人一区二区在线观看| 精品在线观看一区二区视频| 亚洲图片日本视频免费| 国产欧美乱夫不卡无乱码| 亚洲蜜桃视频在线观看| 亚洲一区二区三区内裤视| 国产色秀视频在线播放| 在线亚洲AV成人无码一区小说| 在线观看国产自拍视频| 亚洲一区二区三区尿失禁| a国产一区二区免费入口| 中文字幕日本熟妇少妇| 亚洲美女毛片在线视频| 377p日本欧洲亚洲大胆张筱雨| 国产成人久久精品二区三区牛| 午夜精品一区二区三区av免费| 亚洲视频一区二区三区视频 | 久久久精品国产性黑人| 亚洲成a v人片在线观看| 亚洲无码夜夜操| 中文字幕人妻精品一区| 人人爽人人爽人人片av| 特级黄色毛片视频| 日本加勒比一道本东京热| 久久精品国产亚洲av无码偷窥|