国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Revit的自錨試樁族參數(shù)化研究

2023-10-27 07:19:44壽燁玲馬海龍
關(guān)鍵詞:族庫試樁二次開發(fā)

壽燁玲,馬海龍

(浙江理工大學(xué) 建筑工程學(xué)院,浙江 杭州 310018)

隨著現(xiàn)代信息技術(shù)的發(fā)展,計(jì)算機(jī)在輔助建筑設(shè)計(jì)方面的應(yīng)用越來越廣泛,滿足了建筑設(shè)計(jì)的現(xiàn)代化需求,具有較大的發(fā)展?jié)摿?。建筑領(lǐng)域作為我國經(jīng)濟(jì)發(fā)展的重要產(chǎn)業(yè)之一,已將計(jì)算機(jī)輔助設(shè)計(jì)技術(shù)廣泛應(yīng)用于設(shè)計(jì)和生產(chǎn)實(shí)踐。BIM作為一種建筑行業(yè)新興的計(jì)算機(jī)輔助工具,可以建立清晰、系統(tǒng)的信息數(shù)據(jù)庫,提供數(shù)字化、三維化的建筑設(shè)計(jì)信息,提高設(shè)計(jì)效率,因此,被廣泛應(yīng)用于建筑領(lǐng)域[1]。

近年來,國內(nèi)外學(xué)者對(duì) Revit 的二次開發(fā)逐漸增多。張振宇[2]對(duì) Revit 進(jìn)行二次開發(fā),利用插件實(shí)現(xiàn)建模軟件和模型計(jì)算軟件的互通,豐富了有限元計(jì)算建模的手段。宋杰等[3]運(yùn)用 Revit API 技術(shù)的模型轉(zhuǎn)換方法將結(jié)構(gòu)模型的參數(shù)數(shù)據(jù)整理為 ANSYS APDL 命令流格式,將Revit 模型直接轉(zhuǎn)換為 ANSYS 分析模型,成功提升了有限元計(jì)算效率。Seidenschnur等[4]開發(fā)了一種稱為 VC 平臺(tái)的 CDE,用來進(jìn)行與實(shí)際建筑空間相關(guān)的 HVAC 系統(tǒng)的高級(jí)模擬,實(shí)現(xiàn)了從基于專有文件的 BIM 模型到基于Web數(shù)據(jù)庫 BIM 模型的轉(zhuǎn)變,增加了 BIM 模型的普適性。董卯等[5]開發(fā)的接口程序,通過對(duì) Revit 模型信息進(jìn)行提取并生成 MCT 文件,實(shí)現(xiàn)模型由 Revit 向 MIDAS/CIVIL 的快速直接轉(zhuǎn)換。Choi等[6]開發(fā)了一個(gè)能將NXTM設(shè)計(jì)的三維 MCAD 數(shù)據(jù)轉(zhuǎn)換為RevitTM的程序,把機(jī)械設(shè)計(jì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化后合并到 Revit 族庫中。Barazzetti等[7]基于BIM對(duì)復(fù)雜結(jié)構(gòu)橋梁使用激光掃描技術(shù),開發(fā)識(shí)別異型結(jié)構(gòu)的算法,創(chuàng)建精細(xì)的參數(shù)化構(gòu)件,并搭建了精準(zhǔn)的建筑信息模型。Aljebory等[8]開發(fā)了一個(gè)將 Revit 與 Primavera 軟件連接的程序,它能自動(dòng)生成具有控制功能的項(xiàng)目調(diào)度方案和制訂項(xiàng)目建設(shè)進(jìn)度計(jì)劃,以提高項(xiàng)目建設(shè)效率。Martins等[9]通過 Navisworks 和 BIM-Revit 之間的集成,以可視化手段展現(xiàn)項(xiàng)目建設(shè)施工全過程,便于各方了解項(xiàng)目進(jìn)程,提高了各方溝通效率,證實(shí)了實(shí)現(xiàn)四維 BIM 的實(shí)用性。以上研究大都基于 Revit 自帶的族庫進(jìn)行建模,并對(duì)該模型進(jìn)行參數(shù)化設(shè)置,實(shí)現(xiàn)建模軟件與數(shù)值模擬軟件的交互。然而,現(xiàn)階段 Revit 族庫中樁族種類單一,參數(shù)化建模受限,無法滿足新型試樁的建模需求,需要探索新型試樁族的快速創(chuàng)建方法。

在目前的設(shè)計(jì)過程中,常常因建設(shè)主體行為、計(jì)劃不完善、不可預(yù)見事件等引起工程變更,需要對(duì)模型結(jié)構(gòu)進(jìn)行調(diào)整。因此,信息聯(lián)通在整個(gè)建筑生命周期里發(fā)揮著重要作用。族構(gòu)件的參數(shù)化設(shè)置解決了部分設(shè)計(jì)問題,對(duì)新型樁進(jìn)行參數(shù)化建模,提高了建模的效率,從而更好地服務(wù)于整個(gè)建筑生命周期。本研究采用C++語言,對(duì) Revit 進(jìn)行自錨試樁族的二次開發(fā),可實(shí)現(xiàn)自錨試樁的創(chuàng)建、刪除和參數(shù)修改等批量化操作。這在一定程度上為新型試樁的設(shè)計(jì)與應(yīng)用做出了有益探索,也為基礎(chǔ)結(jié)構(gòu)的設(shè)計(jì)提供了新思路,使自錨試樁在未來項(xiàng)目建設(shè)中發(fā)揮出更為巨大的應(yīng)用價(jià)值。

1 族庫及其參數(shù)化設(shè)計(jì)

1.1 Revit族與族庫

Revit族始終貫穿項(xiàng)目本身,它既是組成項(xiàng)目的構(gòu)件,又是構(gòu)件參數(shù)信息的重要載體,其參數(shù)信息可包括尺寸、材質(zhì)等。Revit中的族可以分為系統(tǒng)族、可載入族、內(nèi)建族三類[10]。系統(tǒng)族由Revit預(yù)定義,無法將其作為外部文件導(dǎo)入或輸出,只能在項(xiàng)目中進(jìn)行參數(shù)調(diào)整。如軸網(wǎng)標(biāo)高、墻、樓板等就是較為常用的系統(tǒng)族,只能在項(xiàng)目中進(jìn)行屬性編輯;可載入族可在項(xiàng)目外進(jìn)行創(chuàng)建,被載入到項(xiàng)目后可進(jìn)行修改,如門窗、梁柱等可以自行創(chuàng)建并載入使用的屬于可載入族,是用戶最常使用的族;內(nèi)建族是通過“內(nèi)建體量”命令得到的,只能存在并存儲(chǔ)于當(dāng)前項(xiàng)目文件中,不能保存在別的項(xiàng)目中,是Revit族中最不常用的種類。

族庫是由不同屬性(參數(shù)、種類等)的Revit族組成的數(shù)據(jù)庫,它的主要作用是對(duì)BIM中族構(gòu)件的信息數(shù)據(jù)進(jìn)行儲(chǔ)存和管理,便于各參與方進(jìn)行合作協(xié)同化管理[11]。常見的族庫為Revit內(nèi)置族庫和第三方插件族庫[12]。內(nèi)置族庫是歐特克公司對(duì)不同專業(yè)類型進(jìn)行分類,通過文件夾進(jìn)行歸類并存儲(chǔ)的,存在于Autodesk Revit Content Libraries模塊中。第三方插件族庫是通過Revit提供的應(yīng)用程序接口(API)進(jìn)行二次開發(fā)的族庫插件,以完成Revit對(duì)新族的參數(shù)化構(gòu)建。隨著 BIM 技術(shù)的逐步發(fā)展與推廣,越來越多的企業(yè)正逐漸建立自己內(nèi)部的族庫,并將族庫視為公司的重要財(cái)產(chǎn)。

1.2 Revit的參數(shù)化設(shè)計(jì)

參數(shù)化的設(shè)計(jì)是Revit最中心的思想。在實(shí)際項(xiàng)目中,樁尺寸往往與族庫初設(shè)參數(shù)有所不同,因此需要對(duì)載入的樁族進(jìn)行尺寸調(diào)整。樁族可通過其內(nèi)置程序進(jìn)行自動(dòng)修改,改變?nèi)魏我粋€(gè)數(shù)據(jù),其他相應(yīng)數(shù)據(jù)便會(huì)隨之變動(dòng)。這樣,一方面可以確保該模型包含每一個(gè)構(gòu)件的幾何尺寸、材質(zhì)等信息;另一方面,Revit之間的信息交互是基于屬性和構(gòu)件之間的邏輯關(guān)系而進(jìn)行的,通過邏輯關(guān)系改變模型形狀,更能提高模型的適用性[13-14]。

創(chuàng)建樁族參數(shù)化設(shè)計(jì)程序的主要步驟為:通過Element.Parameters獲取所有的參數(shù),使用foreach語句遍歷循環(huán)需要添加參數(shù)的樁實(shí)例;實(shí)例化一個(gè)類別集合后,判斷該集合中樁實(shí)例的族類別,得到樁實(shí)例對(duì)應(yīng)的參數(shù)信息;獲得樁實(shí)例的每一個(gè)參數(shù)名的參數(shù)后,調(diào)用Parameter.Set() 函數(shù)對(duì)參數(shù)進(jìn)行賦值。在程序編寫時(shí)需要注意,Revit內(nèi)部基本單位是英尺(ft),模型尺寸的基本單位為米(m)或者毫米(mm),因此,構(gòu)件參數(shù)數(shù)值的設(shè)置需要進(jìn)行單位轉(zhuǎn)換。

2 Revit二次開發(fā)技術(shù)

Revit二次開發(fā)技術(shù)是通過開發(fā)插件來滿足 Revit 多元化操作的需求。用戶通過使用Revit提供的API接口,根據(jù)工程實(shí)際需要開發(fā)相應(yīng)插件,擴(kuò)展 Revit 使用功能,以滿足定制化需求,提高工作效率,優(yōu)化項(xiàng)目管理等。其生成的外部插件可以通過.addin文件在Revit中進(jìn)行識(shí)別和加載[15]。

2.1 開發(fā)思路與工具

通過Visual Studio 2017(C++)編程語言編譯程序,利用Revit API接口運(yùn)用程序,創(chuàng)建自錨試樁基族插件,建立BIM模型,對(duì)Revit中樁基礎(chǔ)族庫進(jìn)行補(bǔ)充。首先,在VS2017中的解決方案管理器下添加一個(gè)新的類,添加RevitAPI.dll和RevitAPIUI.dll的引用,引用Revit API的命名空間和Windows控件的命名空間以及定義外部命令的屬性(事務(wù)和更新屬性)。其次,創(chuàng)建一個(gè)新的類,從IExternalCommand接口派生,通過外部命令的方式進(jìn)行 Revit 中自錨試樁參數(shù)化設(shè)計(jì)功能的擴(kuò)展。最后,重載Execute()函數(shù),添加所需功能的代碼,并進(jìn)行編譯和調(diào)試,將生成的動(dòng)態(tài)鏈接文件放到相應(yīng)路徑,實(shí)現(xiàn)插件功能[16-18]。Revit二次開發(fā)流程如圖1所示。

2.2 UI 界 面

RevitAPI提供了用戶與Revit的接口,可以建立UI交互界面的功能。UI界面由UIRibbon控制,包含選項(xiàng)卡、面板以及各種按鈕,UI界面組成如圖2所示。用戶可以創(chuàng)建一個(gè)新的選項(xiàng)卡管理面板,面板可以管理其包含的各種按鈕,一個(gè)選項(xiàng)卡可以有多個(gè)面板,一個(gè)面板可以有不同功能的按鈕。每個(gè)按鈕對(duì)應(yīng)一個(gè)IExternalCommand,點(diǎn)擊按鈕,相應(yīng)的命令就會(huì)執(zhí)行。其組成關(guān)系如圖3所示。

圖2 UI界面

圖3 界面組成關(guān)系

3 Revit自錨試樁族生成方法

3.1 自錨試樁族的創(chuàng)建

樁基在基礎(chǔ)工程中占有重要地位,對(duì)樁基的設(shè)計(jì)要求隨著建筑物的多樣化變得越來越高。在Revit自帶族庫中,樁構(gòu)件類型不夠豐富,目前僅有單一的樁構(gòu)件模型,沒有對(duì)應(yīng)的新型試樁族構(gòu)件,不能滿足當(dāng)前新型試樁的設(shè)計(jì)要求,需要進(jìn)行新型試樁族文件的補(bǔ)充。本節(jié)以自錨試樁為例,研究自錨試樁族的創(chuàng)建方法。

在Revit中通常用軸網(wǎng)交點(diǎn)對(duì)樁進(jìn)行定位,便于快速創(chuàng)建樁模型。進(jìn)行樁創(chuàng)建時(shí),需要開啟Revit事務(wù)模式。在對(duì)自錨試樁模型進(jìn)行創(chuàng)建、修改、刪除時(shí),必須在Transaction事務(wù)中進(jìn)行。在進(jìn)行事務(wù)命令前,需要獲取待處理的文檔,完成事務(wù)后需結(jié)束本次事務(wù)。樁族主要用于三維模型展示,因此,設(shè)置坐標(biāo)原點(diǎn)(0,0,0)為樁族原點(diǎn)。獲取樁原點(diǎn)后,通過FilteredElementCollector(Document document)的收集器過濾獲得項(xiàng)目中樁的類型和標(biāo)高。

其獲得樁類型的主要代碼為

var pipeSymbols = new FilteredElementCollector(doc)

.OfCategory(BuiltInCategory.OST_GenericModel)

.OfClass(typeof(FamilySymbol)).ToElements()

其獲得樁標(biāo)高的主要代碼為

var levels = new FilteredElementCollector(doc)

.OfCategory(BuiltInCategory.OST_Levels)

.WhereElementIsNotElementType()

.ToElements()

其中,結(jié)構(gòu)柱族的類型為FamilySymbol,結(jié)構(gòu)柱族的族名稱為.OST_GenericModel,故OfClass 過濾得到族類型,OfCategory過濾得到結(jié)構(gòu)柱族。

通過foreach語句遍歷pipeSymbols集合里面的元素直到遍歷完pipeSymbolst中的所有元素,并將該樁族命名為"template"。其主要代碼為

FamilySymbol pipe = null;

foreach (var item in pipeSymbols)

{

var sym = item as FamilySymbol;

if (sym.FamilyName == "template")

{

pipe = sym;

break;

}

}

在滿足位置信息(X,Y,Z)、族類型(Family Symbol)、標(biāo)高(Level)和結(jié)構(gòu)類型(Structural Type)這些條件的基礎(chǔ)上,創(chuàng)建族實(shí)例才得以創(chuàng)建。通過Create.NewFamilyInstance命令進(jìn)行樁的創(chuàng)建。其主要代碼為

var inst = doc.Create.NewFamilyInstance(new XYZ(0, 0, 0), pipe, levels.First()

Autodesk.Revit.DB.Structure.StructuralType.NonStructural);//樁基創(chuàng)建命令

inst.GetParameters(“上段樁長(zhǎng)”).FirstOrDefault().Set(CreatePileWin.SDZC / 304.8);//添加上段樁長(zhǎng)參數(shù)

inst.GetParameters(“下段樁長(zhǎng)”).FirstOrDefault().Set(CreatePileWin.XDZC / 304.8);//添加下段樁長(zhǎng)參數(shù)

inst.GetParameters(“樁內(nèi)徑”).FirstOrDefault().Set(CreatePileWin.ZNJ / 304.8);//添加樁內(nèi)徑參數(shù)

inst.GetParameters(“樁直徑”).FirstOrDefault().Set(CreatePileWin.ZZJ / 304.8);//添加樁直徑參數(shù)

在Revit中,新建項(xiàng)目時(shí)需要載入新建的族庫才能得以使用。筆者運(yùn)用TaskDialog 函數(shù),編寫了對(duì)話框程序,當(dāng)新建項(xiàng)目未載入族時(shí),就會(huì)出現(xiàn)“請(qǐng)先導(dǎo)出族”的對(duì)話框,其代碼為

else

{

TaskDialog.Show(“Error”,“請(qǐng)先導(dǎo)出族”);

}

tx.Commit()

將該插件族庫載入到項(xiàng)目中并進(jìn)行參數(shù)化設(shè)置,其界面如圖4所示。

圖4 參數(shù)化設(shè)置界面

3.2 UI界面創(chuàng)建

為了便于Revit中的三維模型展示,通過Revit的附加模塊下的外部工具中Add-In Manager(Manual Mode) 載入.dll文件得以實(shí)現(xiàn)。其Add-In Manager的載入界面如圖5所示。

圖5 Add-In Manager載入界面

在創(chuàng)建UI界面時(shí),首先創(chuàng)建一個(gè)新的選項(xiàng)卡,然后在選項(xiàng)卡中創(chuàng)建面板,在面板中創(chuàng)建按鈕,最后為按鈕設(shè)置相應(yīng)的圖片和默認(rèn)提示信息。按鈕的創(chuàng)建流程如圖6所示。

圖6 按鈕的創(chuàng)建流程

其“Create Pile”按鈕的主要代碼如下:

1) 創(chuàng)建“自錨試樁Q-s曲線轉(zhuǎn)換”選項(xiàng)卡代碼

application.CreateRibbonTab(“自錨試樁Q-s曲線轉(zhuǎn)換”)

2) 創(chuàng)建面板的代碼

RibbonPanel rp = application.CreateRibbonPanel(“自錨試樁Q-s曲線轉(zhuǎn)換”, “面板”)

3) 指定程序集的名稱以及所使用的類名

string assemblyPath = Assembly.GetExecutingAssembly().Location;//當(dāng)前程序路徑

string classNameWPF = “PileFoundationCalulator.Command”

string classNameWPF1 = “PileFoundationCalulator.CreatePile”

4) 創(chuàng)建“Create Pile”按鈕的代碼

PushButtonData pbd = new PushButtonData(“CreatePile”, “Create Pile”, assemblyPath, classNameWPF1)

5) 將“Create Pile”按鈕添加到面板中的代碼

PushButton pushButton = rp.AddItem(pbd) as PushButton

6) 設(shè)置按鈕圖片的代碼

pushButton.LargeImage = new BitmapImage(new Uri(“pack://application:,,,/PileFoundationCalulator;component/Resources/CreatePile.jpg”, UriKind.Absolute))

7) 設(shè)置按鈕默認(rèn)提示信息的代碼

pushButton.ToolTip = “”

在實(shí)現(xiàn)外部應(yīng)用接口后,重新載入OnStartup函數(shù)和OnShutdown函數(shù),以便在啟動(dòng)和關(guān)閉Revit 時(shí)實(shí)現(xiàn)相應(yīng)功能,分別用Result加以約束,并設(shè)定返回值為Succeeded。通過以上代碼可以完成按鈕的創(chuàng)建,如果想要?jiǎng)?chuàng)建多個(gè)按鈕,方法同上,名稱不可重復(fù)使用。編寫程序后點(diǎn)擊生成按鈕,會(huì)生成.dll文件,將其載入到Revit中。載入后的UI界面如圖7所示。

圖7 載入后的UI界面

3.3 原位試驗(yàn)樁建模

3.3.1 原位試驗(yàn)工程概況

本次原位試驗(yàn)地點(diǎn)位于江蘇省蘇州市某村。試驗(yàn)中的自錨試樁采用鋼管樁,其試樁外直徑為108 mm,管壁厚度為4 mm,其試樁參數(shù)如表1所示。

表1 試樁基本參數(shù)

3.3.2 模型生成

在 Revit 2018中創(chuàng)建新的項(xiàng)目,選擇“template”自錨試樁樁族項(xiàng)目載入到項(xiàng)目中。其載入界面如圖8所示。

圖8 自錨試樁樁基族項(xiàng)目載入界面

點(diǎn)擊“Creat Pile”按鈕,彈出輸入?yún)?shù)的界面,輸入試樁參數(shù)數(shù)據(jù),點(diǎn)擊“確定”后,即在(0,0,0)點(diǎn)生成自錨試樁,得到自錨試樁模型如圖9所示。

圖9 自錨試樁模型

4 結(jié) 語

本研究以自錨試樁為研究對(duì)象,對(duì)Revit進(jìn)行二次開發(fā),實(shí)現(xiàn)了自錨試樁基在Revit中的模型創(chuàng)建、參數(shù)設(shè)置和刪除等功能,能夠滿足新型試樁的建模需求。同時(shí),又通過C#編程語言建立UI交互界面的功能,實(shí)現(xiàn)族構(gòu)件的快速檢索和調(diào)用,更好地拓展了Revit的原有功能。基于BIM技術(shù)在Revit中進(jìn)行自建族庫參數(shù)化設(shè)計(jì),能更好地應(yīng)用于結(jié)構(gòu)分析,以滿足現(xiàn)代化工程設(shè)計(jì)的復(fù)雜要求,后續(xù)可針對(duì)BIM建模和有限元軟件計(jì)算一體化的程序繼續(xù)展開研究。

猜你喜歡
族庫試樁二次開發(fā)
自平衡法靜載試驗(yàn)在樁基檢測(cè)中的應(yīng)用
《建筑科學(xué)與工程學(xué)報(bào)》06/2021
重慶建筑(2021年12期)2021-12-28 10:38:26
某超限高層試樁設(shè)計(jì)與施工關(guān)鍵問題分析
面向云服務(wù)平臺(tái)的Revit族庫管理系統(tǒng)研究
BIM技術(shù)在地鐵機(jī)電設(shè)備裝配式施工的應(yīng)用
BIM技術(shù)在地鐵機(jī)電設(shè)備裝配式施工的應(yīng)用
淺談基于Revit平臺(tái)的二次開發(fā)
甘肅科技(2020年20期)2020-04-13 00:30:02
淺談Mastercam后處理器的二次開發(fā)
模具制造(2019年3期)2019-06-06 02:11:02
BIM技術(shù)在大跨度斜拉橋設(shè)計(jì)中的應(yīng)用
西門子Easy Screen對(duì)倒棱機(jī)床界面二次開發(fā)
平邑县| 富川| 富顺县| 庆城县| 新竹县| 襄樊市| 阜南县| 玉溪市| 曲阳县| 临沭县| 金塔县| 文成县| 洪湖市| 益阳市| 宁明县| 青川县| 恩平市| 措勤县| 南宫市| 新巴尔虎左旗| 广宁县| 恩施市| 清流县| 连云港市| 繁昌县| 潞城市| 新晃| 汉阴县| 柘城县| 和田县| 庆云县| 康乐县| 扎鲁特旗| 聂荣县| 岢岚县| 景德镇市| 加查县| 油尖旺区| 灵石县| 昭苏县| 武川县|