• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于C#的裝配式BIM構(gòu)件庫(kù)二次開(kāi)發(fā)★

      2021-02-01 06:11:06張曉丹毛燕紅
      山西建筑 2021年4期
      關(guān)鍵詞:二次開(kāi)發(fā)插件繪制

      黃 巖 張曉丹 毛燕紅

      (江蘇建筑職業(yè)技術(shù)學(xué)院,建筑工業(yè)化與信息應(yīng)用技術(shù)研究所,江蘇 徐州 221116)

      0 引言

      建筑工業(yè)化和信息化正在引領(lǐng)著建筑業(yè)的發(fā)展,裝配式建筑和BIM又是工業(yè)化和信息化在建筑工程的重要體現(xiàn),通過(guò)BIM技術(shù)實(shí)現(xiàn)裝配式構(gòu)件的建立和修改是關(guān)鍵內(nèi)容之一,基于BIM的裝配式生產(chǎn)發(fā)展模式已經(jīng)成為建筑行業(yè)發(fā)展的必然趨勢(shì)[1]。裝配式構(gòu)件庫(kù)作為BIM的一個(gè)重要組成部分,對(duì)于企業(yè)和高校都有重要意義。對(duì)于企業(yè)而言,逐步在建模過(guò)程中建立自己的構(gòu)件庫(kù),對(duì)于今后的BIM應(yīng)用是一個(gè)極大的積累,可以大量的節(jié)約時(shí)間和金錢成本。對(duì)于高校而言,建立自己的構(gòu)件庫(kù),不僅對(duì)教學(xué)的可視化帶來(lái)幫助,使同學(xué)們可以直觀控制參數(shù)來(lái)調(diào)節(jié)構(gòu)件,而且也能明顯提高服務(wù)企業(yè)時(shí)的建模的速度和準(zhǔn)確性。

      國(guó)內(nèi)在2015年后逐步開(kāi)始對(duì)Revit二次開(kāi)發(fā)進(jìn)行研究。2016年,肖貝利用Revit二次開(kāi)發(fā)程序,結(jié)合基坑開(kāi)挖工程案例,實(shí)現(xiàn)開(kāi)挖模型建立,相應(yīng)的土方量也可以同時(shí)準(zhǔn)確計(jì)算得到[2]。2017年,劉濟(jì)凡和靳鳴對(duì)基于Revit的裝配式建筑項(xiàng)目深化設(shè)計(jì)插件進(jìn)行研究開(kāi)發(fā),使用BIM軟件Revit對(duì)某裝配式建筑項(xiàng)目進(jìn)行深化設(shè)計(jì)的過(guò)程中,遇到軟件沒(méi)有裝配式專用模塊、效率低下的問(wèn)題,通過(guò)對(duì)Revit軟件的二次開(kāi)發(fā),減少了大量重復(fù)性的工作,使深化設(shè)計(jì)工作如期完成[3]。2019年,喬恩懋和丁琦基于Revit二次開(kāi)發(fā)對(duì)空間網(wǎng)架結(jié)構(gòu)BIM建模技術(shù)進(jìn)行研究,通過(guò)對(duì)數(shù)據(jù)庫(kù)接口進(jìn)行二次開(kāi)發(fā),使建模流程自動(dòng)化,進(jìn)行干涉和遺漏自動(dòng)檢查,大大提高了鋼結(jié)構(gòu)空間網(wǎng)架的建模效率[4]。陶婉婉對(duì)BIM模型數(shù)據(jù)進(jìn)行二次開(kāi)發(fā)研究,有效的提取模型構(gòu)件的基本屬性、層次以及關(guān)聯(lián)關(guān)系等相關(guān)數(shù)據(jù)信息[5]。

      然而,現(xiàn)階段的BIM軟件對(duì)裝配式建筑的支持還處于初始階段,開(kāi)發(fā)人員正在努力開(kāi)發(fā)適應(yīng)裝配式的BIM軟件,雖然市面上已經(jīng)出現(xiàn)了很多相關(guān)軟件,但由于裝配式建筑發(fā)展迅速,現(xiàn)有軟件不能完全適應(yīng)裝配式需求。作為主要的BIM軟件Revit,本身沒(méi)有單獨(dú)的裝配式模塊,建模效率低下,導(dǎo)致裝配式模型BIM模型建立和使用較常規(guī)現(xiàn)澆模型困難很多,建立的族參數(shù)化受限,鋼筋等信息不能完全體現(xiàn),沒(méi)有令人滿意的裝配式插件可供用戶使用,需要探索準(zhǔn)確方便的Revit構(gòu)件庫(kù)插件來(lái)幫助裝配式建模。

      1 程序基本原理

      本程序二次開(kāi)發(fā)采用C#和Revit API。C#作為一款面向?qū)ο蟮木幊陶Z(yǔ)言,繼承了C和C++的強(qiáng)大功能,同時(shí)和Java一樣具有易用性,在編程語(yǔ)言排行榜常年位居前五,有大量編程案例。C#具有大量的函數(shù)和類庫(kù),調(diào)用十分方便,功能非常強(qiáng)大,且使用難度較C和C++低,面向?qū)ο蟮木幊陶Z(yǔ)句友好,非常適合Revit軟件的二次開(kāi)發(fā)[6]。

      Revit API是AutoCAD為Revit二次開(kāi)發(fā)專門提供的類庫(kù),包含了創(chuàng)建、刪除、修改構(gòu)件和構(gòu)件信息,批量化操作構(gòu)件,導(dǎo)入外部數(shù)據(jù)文件,執(zhí)行第三方程序,自動(dòng)分析BIM模型信息等幾乎所有Revit操作。Revit API和C#有良好的接口,通過(guò)Visual Studio等集成開(kāi)發(fā)環(huán)境可以靈活進(jìn)行裝配式構(gòu)件庫(kù)二次開(kāi)發(fā)。

      2 軟件開(kāi)發(fā)過(guò)程

      2.1 需求分析和深化設(shè)計(jì)

      遵循軟件開(kāi)發(fā)的一般過(guò)程,首先是需求分析,以較為復(fù)雜的疊合板為例,三維模型需要基本的參數(shù)來(lái)控制,這些參數(shù)要滿足工程實(shí)際。然后是深化設(shè)計(jì),將疊合板的每一個(gè)控制參數(shù)細(xì)化見(jiàn)表1。每個(gè)變量需要有一個(gè)唯一的名稱作為區(qū)分,變量類型根據(jù)實(shí)際需要確定為整形、浮點(diǎn)型等,取值區(qū)間為變量的范圍,是否可以為空值,防止不合理的數(shù)據(jù)帶來(lái)軟件錯(cuò)誤。給每個(gè)變量定義合適的初始默認(rèn)值,方便用戶使用。

      表1 疊合板控制變量參數(shù)表 mm

      2.2 程序入口模塊

      Revit API提供了外部命令(IExternal Command)的形式來(lái)調(diào)用類庫(kù),最后生成DLL動(dòng)態(tài)鏈接庫(kù)文件,通過(guò)外部工具調(diào)用繪圖命令,需要調(diào)用System,System.Collections.Generic,System.Text,System.Diagnostics,Autodesk.Revit,Autodesk.Revit.DB,Autodesk.Revit.UI等類庫(kù)。

      2.3 三維圖形繪制模塊

      裝配式構(gòu)件繪制的實(shí)質(zhì)是Revit中的族的建立。Revit API提供了Family類來(lái)管理族類型和族參數(shù),包括FamilyManager,F(xiàn)amilyType,F(xiàn)amilyParameter等若干類。

      Revit族有五種常見(jiàn)的繪制方式,包括拉伸、融合、旋轉(zhuǎn)、放樣、放樣融合等,三維圖形繪制模塊正是采用這五種基本方法進(jìn)行模型建立。通過(guò)族的五種方式創(chuàng)建的模型,可以進(jìn)行移動(dòng)、旋轉(zhuǎn)、鏡像、復(fù)制等方法來(lái)繪制和調(diào)整。本程序疊合板創(chuàng)建核心代碼如下:

      CurveArrArray caay = new CurveArrArray();

      CurveArray cay1 = new CurveArray();

      Autodesk.Revit.DB.XYZ nor1 = BasisZ;

      SketchPlane skp = CreateSketchPlane(nor1, XYZ.Zero);

      XYZ pt0 = XYZ.Zero;

      XYZ pt1 = new XYZ(dhbl, 0, 0);

      XYZ pt2 = new XYZ(dhbl, dhbk, 0);

      XYZ pt3 = new XYZ(0, dhbk, 0);

      Line linep1 = Line.CreateBound(pt0, pt1);

      Line linep2 = Line.CreateBound(pt1, pt2);

      Line linep3 = Line.CreateBound(pt2, pt3);

      Line linep4 = Line.CreateBound(pt3, pt0);

      cay1.Append(linep1);

      cay2.Append(linep2);

      cay3.Append(linep3);

      cay4.Append(linep4);

      curveArrArray.Append(cay1);

      Extrusion rion = creationFamily.NewExtrusion(true, caay, skp, dhbg);

      XYZ trans1 = new XYZ(0, 0, 0);

      ElementTransform.Move(familyDocument, rion.Id, trans1);

      2.4 圖形界面交互模塊

      要友好的運(yùn)行軟件,必須有合理的GUI(Graphical User Interface),圖形界面使用戶更加利于接受軟件,使用常用的Ribbon界面模式,設(shè)計(jì)較為合理的圖標(biāo),包含在Ribbon UI庫(kù)中,使用Ribbon界面調(diào)出對(duì)話框。

      以繪制疊合板為例,用戶交互界面如圖1所示。

      2.5 注冊(cè)程序

      Revit調(diào)用插件時(shí),需要提供插件的ID,才能正確加載,程序完成后,需要在Revit的addin文件中定義如下語(yǔ)句,進(jìn)行程序注冊(cè)。

      3 裝配式參數(shù)構(gòu)件繪制

      打開(kāi)Revit 2019,創(chuàng)建項(xiàng)目模型或者族模型,使用外部程序加載裝配式構(gòu)件庫(kù)插件后,提示繪制構(gòu)件。根據(jù)提示可以繪制裝配式構(gòu)件,輸入合適的參數(shù),可以進(jìn)行相應(yīng)圖元的繪制。如圖2所示為Revit中布置的疊合板。

      以疊合板為例,根據(jù)右側(cè)圖形界面提示,需要輸入疊合板的長(zhǎng)度、寬度、高度、桁架高度、上弦鋼筋直徑、下弦鋼筋直徑、腹桿鋼筋直徑、定尺長(zhǎng)度以及桁架間距等參數(shù),并注意系統(tǒng)提示的輸入單位,點(diǎn)擊確定按鈕,系統(tǒng)會(huì)根據(jù)輸入?yún)?shù)在Revit模型繪制界面自動(dòng)繪制疊合板構(gòu)件,并把相應(yīng)參數(shù)傳遞到Revit族類型和族參數(shù)中,以方便下次修改。

      圖3為Revit中布置的疊合梁,包括疊合梁長(zhǎng),寬、高、頂部和底部鋼筋直徑、箍筋間距、箍筋直徑、鋼筋保護(hù)層厚度等參數(shù)。

      圖4為Revit中布置的預(yù)制剪力墻。包括剪力墻長(zhǎng)、寬、高、墻洞數(shù)量和位置、墻洞長(zhǎng)、寬、高、縱向和橫向鋼筋直徑和間距、鋼筋保護(hù)層厚度等。

      開(kāi)發(fā)環(huán)境采用Visual Studio 2019社區(qū)版開(kāi)發(fā),NetFramework 4.7版本,i5-4210u CPU,8G內(nèi)存,Autodesk Revit采用2019版。

      4 結(jié)論

      本文采用C#對(duì)Revit進(jìn)行裝配式BIM構(gòu)件庫(kù)二次開(kāi)發(fā),得到以下結(jié)論:1)基于C#的Revit二次開(kāi)發(fā)擴(kuò)充了BIM裝配式族庫(kù),減少了重復(fù)性工作,在一定程度上解決了Revit沒(méi)有單獨(dú)的裝配式模塊,建模效率低下的問(wèn)題。2)基于C#的Revit二次開(kāi)發(fā)可以較好的實(shí)現(xiàn)疊合板、疊合梁、預(yù)制柱、預(yù)制剪力墻、預(yù)制樓梯等常見(jiàn)裝配式構(gòu)件的參數(shù)化繪制和修改,形成參數(shù)化構(gòu)件庫(kù)。3)可以在此二次開(kāi)發(fā)基礎(chǔ)上進(jìn)一步開(kāi)發(fā)Revit裝配式插件,進(jìn)行裝配式建筑整體建模,統(tǒng)計(jì)鋼筋和混凝土量,基于Revit的裝配式算量和造價(jià),計(jì)算構(gòu)件預(yù)制率,裝配式5D施工動(dòng)畫(huà)制作等。

      猜你喜歡
      二次開(kāi)發(fā)插件繪制
      Art on coffee cups
      淺談基于Revit平臺(tái)的二次開(kāi)發(fā)
      甘肅科技(2020年20期)2020-04-13 00:30:02
      自編插件完善App Inventor與樂(lè)高機(jī)器人通信
      電子制作(2019年22期)2020-01-14 03:16:34
      淺談Mastercam后處理器的二次開(kāi)發(fā)
      模具制造(2019年3期)2019-06-06 02:11:02
      放學(xué)后
      童話世界(2018年17期)2018-07-30 01:52:02
      西門子Easy Screen對(duì)倒棱機(jī)床界面二次開(kāi)發(fā)
      MapWindowGIS插件機(jī)制及應(yīng)用
      基于Revit MEP的插件制作探討
      在轉(zhuǎn)變中繪制新藍(lán)圖
      基于Pro/E二次開(kāi)發(fā)的推土鏟參數(shù)化模塊開(kāi)發(fā)
      沭阳县| 乐清市| 石门县| 平果县| 忻城县| 佛教| 张北县| 金坛市| 陇南市| 溆浦县| 邹平县| 建阳市| 桓仁| 共和县| 淮滨县| 宝应县| 彝良县| 南皮县| 遵义县| 方城县| 定西市| 额济纳旗| 始兴县| 巴林右旗| 泰兴市| 裕民县| 高邮市| 江达县| 禄劝| 潞城市| 电白县| 广宗县| 井陉县| 丹东市| 宁海县| 百色市| 藁城市| 崇仁县| 邓州市| 呈贡县| 淮北市|