• 
    

    
    

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

      基于Revit 開發(fā)創(chuàng)建模型數(shù)據(jù)提取插件

      2022-11-12 10:21:30丁軍晨王曉東彭禹立張?chǎng)┝?/span>夏皓倫馬靖東
      科學(xué)技術(shù)創(chuàng)新 2022年33期
      關(guān)鍵詞:類庫(kù)圖元二次開發(fā)

      丁軍晨,王曉東,彭禹立,張?chǎng)┝?,夏皓倫,馬靖東

      (遼寧工程技術(shù)大學(xué)土木工程學(xué)院,遼寧阜新 123000)

      引言

      Revit 是Autodesk 公司制作的一系列軟件,主要用于建筑信息建模,為設(shè)計(jì)師和工程師提供了一個(gè)設(shè)計(jì)和記錄建筑信息的平臺(tái),可以根據(jù)他們對(duì)有關(guān)項(xiàng)目的需求,更好的設(shè)計(jì)、建造和維護(hù)建筑。由于Revit 消除了建筑行業(yè)很多復(fù)雜的任務(wù),在國(guó)內(nèi)外的建筑行業(yè)中得到了廣泛的應(yīng)用。

      Autodesk 公司在設(shè)計(jì)Revit 的同時(shí)也為Revit 提供了API 接口[1-2]。Revit API 是一個(gè)類庫(kù),只有在Revit 運(yùn)行時(shí)才能夠工作。通過(guò)強(qiáng)大的Revit API,用戶可以添加基于Revit API 開發(fā)的插件來(lái)擴(kuò)展和增強(qiáng)Revit 的功能和應(yīng)用。通過(guò)這些功能和應(yīng)用可以在短時(shí)間內(nèi)完成龐雜的工作,大幅度的節(jié)省了工程師的時(shí)間成本。運(yùn)用在工程中,可以加快項(xiàng)目的進(jìn)度。

      二次開發(fā)技術(shù)可以實(shí)現(xiàn)以下的功能[3]:(1) 訪問(wèn)模型的參數(shù)數(shù)據(jù);(2) 訪問(wèn)模型的圖像數(shù)據(jù);(3) 創(chuàng)建插件完成一些重復(fù)龐雜的工作;(4) 通過(guò)創(chuàng)建插件來(lái)增強(qiáng)Revit 的UI;(5) 對(duì)BIM實(shí)現(xiàn)各種分析;(6) 自動(dòng)創(chuàng)建項(xiàng)目文檔;(7) 借助第三方應(yīng)用來(lái)完成如連接外部的數(shù)據(jù)庫(kù)。

      編譯完成后, 需要使用Revit 附加模塊AddInManager 將程序運(yùn)行到Revit 2017 平臺(tái)上,附加模塊的運(yùn)行界面見圖1。

      圖1 AddInManger2014 運(yùn)行界面

      1 基于Revit 插件開發(fā)

      本文基于Revit 2017 以及Revit2017 SDK,由于Revit 二次開發(fā)的核心運(yùn)行環(huán)境為.NET4.7,因此可以選擇Visual Studio 2017 版本為程序編寫平臺(tái),通過(guò)NET4.7環(huán)境,使用C#編程語(yǔ)言完成編寫與編譯[4-5],主要工作包括參數(shù)信息收集與參數(shù)信息載入[6-8]。

      1.1 總體架構(gòu)

      在Revit API 與編程技術(shù)的支持下,可以選擇需要輸出的構(gòu)件參數(shù),以及輸出后不同參數(shù)所放置的位置。通過(guò)收集器與過(guò)濾器收集模型相關(guān)的參數(shù)信息,然后將收集到的相關(guān)信息寫入到Excel 表格中。

      1.2 程序開發(fā)

      (1) 在Visual Studio 2020 中創(chuàng)建一個(gè)類庫(kù),在類庫(kù)中添加引用RevitAPI 與RevitAPIUI,并將“復(fù)制本地”勾選為false,通過(guò)加載外部命令I(lǐng)ExternalApplication 的方式,來(lái)實(shí)現(xiàn)Revit 軟件與外部應(yīng)用的同步性。以上操作完成后需要實(shí)現(xiàn)OnStartup 和OnshutDown 函數(shù)的內(nèi)容,將用戶所需要的操作放置其中,OnStartup 中的操作會(huì)在Revit 啟動(dòng)時(shí)調(diào)用并執(zhí)行,OnshutDown 中的操作會(huì)在Revit 關(guān)閉時(shí)調(diào)用并執(zhí)行。使用IExternalApplication 命令可制作Revit 插件的UI 時(shí)需要編寫如下代碼:

      (2) 在上述類庫(kù)中新建一個(gè)類,并調(diào)用外部命令I(lǐng)ExternalCommand(IExternalCommand 是Revit API 通過(guò)外部命令來(lái)擴(kuò)展Revit 時(shí)必須在外部命令中實(shí)現(xiàn)的接口),調(diào)用此外部命令可以讓插件加載運(yùn)行。在此類中需要在抽象函數(shù)Execute 添加相關(guān)構(gòu)件的收集器,為了更好的收集到構(gòu)件的信息,需要再加入一個(gè)過(guò)濾器。遍歷過(guò)濾器把相關(guān)參數(shù)寫入DATATABLE 中。

      最后將在IExternalCommand 中所編寫的命令添加到Revit 的UI 中,使之成為Revit 插件按鈕的命令。

      利用API 為Revit 編寫插件的流程見圖2 所示。

      圖2 插件開發(fā)流程圖

      2 模型數(shù)據(jù)結(jié)構(gòu)分析

      Revit 圖元是模型的基礎(chǔ),在Revit 的數(shù)據(jù)體系中,大部分的類是繼承于元素的。在Revit 中,圖元可大致分為模型圖元、基準(zhǔn)圖元、視圖專有圖元[2]。

      2.1 模型圖元

      模型圖元表示建筑業(yè)實(shí)際的三維幾何圖形,他們顯示再模型的相關(guān)視圖中。模型圖元有兩種類型包括主體圖元與模型構(gòu)件,主體圖元可以獨(dú)立存在與模型中,不受其他構(gòu)件存在與否的影響,其包括墻、樓板等,模型構(gòu)件必須依附于主體圖元存在,包括樓梯、門等,模型構(gòu)件又包括結(jié)構(gòu)圖元與MEP 圖元。

      2.2 基準(zhǔn)圖元

      基準(zhǔn)圖元可以在空間和細(xì)節(jié)上表達(dá)項(xiàng)目場(chǎng)景中的模型,其包括軸網(wǎng)、標(biāo)高和參照平面。

      2.3 視圖專有圖元

      視圖專有圖元有兩種類型,包括注釋圖元與詳圖,其中注釋圖元包括文字說(shuō)明、標(biāo)記等,詳圖包括詳圖線、填充區(qū)域等。他們都時(shí)模型表現(xiàn)的方法。

      模型圖元是BIM信息繼承的載體,各種信息都動(dòng)態(tài)的集中在模型圖元中,而模型圖元又是以各類構(gòu)件的形式表現(xiàn)出來(lái)的。為滿足工程的需求,構(gòu)件中信息可分為基本信息和擴(kuò)展信息,其中基本信息是基礎(chǔ)新數(shù)據(jù),而擴(kuò)展信息是為了滿足工程需要加入的信息,需要通過(guò)對(duì)模型的信息進(jìn)行擴(kuò)展才能得到,見圖3。

      圖3 Revit 圖元

      3 模型數(shù)據(jù)提取與輸出的方法

      3.1 信息的提取

      對(duì)構(gòu)件信息提取需要使用Revit API 的項(xiàng)目參數(shù)BuiltlnParameter 或者共享參數(shù)SharedParameter,項(xiàng)目參數(shù)特定于單一項(xiàng)目中,不能與其他項(xiàng)目進(jìn)行共享,且不可用于多個(gè)項(xiàng)目之間的使用。共享參數(shù)則可以用于多個(gè)項(xiàng)目與族文件中,不僅可以在族文檔中定義與再定義參數(shù),還可以實(shí)現(xiàn)項(xiàng)目參數(shù)的功能。共享參數(shù)的設(shè)定具有更高的普適性。如果項(xiàng)目需要在文件中建立明細(xì)表,且需要推廣到所有的項(xiàng)目中,可以采用共享參數(shù)來(lái)提取構(gòu)件的參數(shù)化屬性信息。

      3.2 信息的輸出

      由于Revit 數(shù)據(jù)結(jié)構(gòu)相對(duì)復(fù)雜,并不支持將模型構(gòu)件信息導(dǎo)出Excel,需要通過(guò)二次開發(fā)將信息輸出到Excel 中。常用的輸出方法有三種,分別為NPOI 庫(kù);Epplus 庫(kù);COM組件。COM組件需要設(shè)備安裝Excel 軟件,在導(dǎo)出模型構(gòu)件信息時(shí)需要考慮Excel 版本的問(wèn)題。NPOI 與Epplus 都是開源的C#讀寫Excel 文檔的項(xiàng)目,它們都可以在沒有安裝Office 情況下對(duì)Excel 文檔進(jìn)行讀寫的操作,NPOI 庫(kù)使用較少,因?yàn)橄嗤瑪?shù)據(jù)結(jié)構(gòu)的數(shù)據(jù),Epplus 的導(dǎo)出能力遠(yuǎn)比NPOI 強(qiáng),除此之外,NPOI 庫(kù)支持Excel 的版本有限。如果需要大量屬性信息的輸出,可以采用Epplus 庫(kù)作為Revit 信息的輸出方法。

      4 實(shí)例驗(yàn)證

      用于實(shí)例驗(yàn)證的插件使用了項(xiàng)目參數(shù)BuiltlnParameter 提取信息,使用COM組件將信息輸出到Excel 中。其核心代碼如下所示。

      此插件可以從模型中提取構(gòu)件的族類型,位置信息與幾何信息,將提的取構(gòu)件參數(shù)化屬性信息導(dǎo)入Excel表格。插件面板見圖4 所示。

      圖4 插件示意圖

      為了驗(yàn)證插件的功能與上文提出理論,以Revit2017 建筑樣例項(xiàng)目(圖5)為例,在這個(gè)模型中含有建筑中常用的構(gòu)件,包括墻、門、窗等構(gòu)件。

      圖5 Revit 2017 建筑樣例項(xiàng)目模型展示圖

      從Revit 2017 建筑樣例項(xiàng)目中提取墻的信息,得到墻的族類型、標(biāo)高、寬度與高度,見表1。

      表1 樣例項(xiàng)目模型中提出墻的部分?jǐn)?shù)據(jù)

      5 結(jié)論

      Revit 的二次開發(fā)功能為設(shè)計(jì)師創(chuàng)造了諸多便利,本文通過(guò)Revit 二次開發(fā)的功能,結(jié)合本文對(duì)模型構(gòu)件信息分析與提出的模型構(gòu)件信息提取與輸出的方法,設(shè)計(jì)出了一款模型構(gòu)件信息提取插件,并且通過(guò)實(shí)例驗(yàn)證了插件的可行性與本文提出方法的可靠性。通過(guò)這款插件可以導(dǎo)出工程所需構(gòu)件的信息,滿足了一些工程對(duì)于模型構(gòu)件信息進(jìn)行大批量提取的需求。

      猜你喜歡
      類庫(kù)圖元二次開發(fā)
      一種組態(tài)控件技術(shù)在電力監(jiān)控系統(tǒng)中的運(yùn)用
      學(xué)術(shù)出版物插圖的編排要求(一):圖注
      聯(lián)鎖表自動(dòng)生成軟件的設(shè)計(jì)與實(shí)現(xiàn)
      淺談基于Revit平臺(tái)的二次開發(fā)
      甘肅科技(2020年20期)2020-04-13 00:30:02
      用Java編寫客戶機(jī)/服務(wù)器端應(yīng)用程序
      淺談Mastercam后處理器的二次開發(fā)
      模具制造(2019年3期)2019-06-06 02:11:02
      Python在數(shù)據(jù)可視化中的應(yīng)用
      數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革方案和應(yīng)用效果
      軟件工程(2017年12期)2018-01-29 17:35:55
      數(shù)據(jù)結(jié)構(gòu)可視化類庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)
      西門子Easy Screen對(duì)倒棱機(jī)床界面二次開發(fā)
      大洼县| 河池市| 都安| 子长县| 富民县| 景泰县| 买车| 西峡县| 柳江县| 莱州市| 龙州县| 江口县| 临清市| 贵德县| 虎林市| 方山县| 观塘区| 宁夏| 桂平市| 绍兴县| 启东市| 中牟县| 虞城县| 长泰县| 小金县| 扶风县| 军事| 刚察县| 简阳市| 会宁县| 文山县| 定结县| 泾源县| 攀枝花市| 沙雅县| 保定市| 隆林| 玛多县| 通州区| 华安县| 星子县|