本發(fā)明屬于建筑業(yè)信息
技術(shù)領(lǐng)域:
:,具體涉及一種基于Revit與Matlab的監(jiān)測(cè)數(shù)據(jù)更新與處理的集成系統(tǒng)及方法。
背景技術(shù):
::隨著科學(xué)的進(jìn)步、經(jīng)濟(jì)的發(fā)展以及相應(yīng)研究理論的成熟,結(jié)構(gòu)設(shè)計(jì)的發(fā)展趨于大型化、復(fù)雜化,使得大型結(jié)構(gòu)的健康監(jiān)測(cè)系統(tǒng)也趨于大型化、復(fù)雜化。大型結(jié)構(gòu)的健康監(jiān)測(cè)測(cè)點(diǎn)數(shù)量大且監(jiān)測(cè)時(shí)間長(zhǎng),容易產(chǎn)生大量的監(jiān)測(cè)數(shù)據(jù),在建筑生命期中,結(jié)構(gòu)的安全施工以及安全運(yùn)營(yíng)、維修與養(yǎng)護(hù)是項(xiàng)目各個(gè)參與方所共同關(guān)注的,因此需要及時(shí)更新、存儲(chǔ)并且與各方共享這批數(shù)據(jù)。同時(shí)結(jié)構(gòu)的復(fù)雜性與荷載的不確定性還增加了結(jié)構(gòu)健康評(píng)判的難度,對(duì)監(jiān)測(cè)信息的分析與處理也成了國(guó)內(nèi)外學(xué)者關(guān)注的熱點(diǎn)與難點(diǎn)。只有通過(guò)合理精確的數(shù)據(jù)分析與處理,才能夠?qū)Y(jié)構(gòu)的安全性進(jìn)行科學(xué)的評(píng)價(jià),從而完成結(jié)構(gòu)損傷的診斷以及結(jié)構(gòu)壽命的預(yù)測(cè)。近年來(lái),BIM(buildinginformationmodeling)建筑信息模型,自從建筑全生命周期管理的概念提出以來(lái),BIM的誕生引起了建筑行業(yè)的廣泛關(guān)注。BIM是一個(gè)具有信息集成、信息共享特性的平臺(tái),因此通過(guò)BIM技術(shù)與結(jié)構(gòu)健康監(jiān)測(cè)的集成,可以為結(jié)構(gòu)健康監(jiān)測(cè)提供一個(gè)三維可視化的、可開(kāi)發(fā)的數(shù)字表達(dá)環(huán)境,有效提高監(jiān)測(cè)信息的可視化與共享。同時(shí),Revit軟件是BIM中較為常用的軟件,Revit具有開(kāi)放的API,提供了可視化、可開(kāi)發(fā)的友好界面,便于開(kāi)發(fā)人員自主開(kāi)發(fā)并完善與建筑工程相關(guān)的功能,因此基于Revit的研究和應(yīng)用得到了快速發(fā)展。楊黨輝等利用RevitAPI開(kāi)發(fā)的接口,確保了結(jié)構(gòu)的物理模型和分析模型在轉(zhuǎn)換過(guò)程中的精度,解決了IFC只能夠轉(zhuǎn)換物理模型的問(wèn)題;Chen等提出了二次開(kāi)發(fā)Revit插件的方法,有效的促進(jìn)了BIM技術(shù)的發(fā)展;Zhang基于Revit理想的三維的計(jì)算環(huán)境,將BIM技術(shù)與RFID技術(shù)相結(jié)合實(shí)現(xiàn)結(jié)構(gòu)狀態(tài)評(píng)估的自動(dòng)化,通過(guò)收集結(jié)構(gòu)生命期的監(jiān)測(cè)信息實(shí)現(xiàn)結(jié)構(gòu)狀況的快速檢查,提高了信息與模型的交互性;Park等基于BIM建立了在線監(jiān)測(cè)系統(tǒng),對(duì)結(jié)構(gòu)所處的環(huán)境進(jìn)行監(jiān)測(cè)并將數(shù)據(jù)在BIM軟件中進(jìn)行顯示,有效提高了數(shù)據(jù)的可視化,實(shí)現(xiàn)了數(shù)據(jù)的直觀表達(dá)。但以上方法僅實(shí)現(xiàn)了數(shù)據(jù)在BIM中的可視化,并未有效解決數(shù)據(jù)的存取與分析,隨著結(jié)構(gòu)形式愈加復(fù)雜,在滿足健康監(jiān)測(cè)數(shù)據(jù)可視化的同時(shí)還需要滿足監(jiān)測(cè)數(shù)據(jù)存取與分析的需求,從而提高健康監(jiān)測(cè)系統(tǒng)的性能。技術(shù)實(shí)現(xiàn)要素:有鑒于此,本發(fā)明的目的是基于BIM提供的開(kāi)放與可視化的平臺(tái),滿足健康監(jiān)測(cè)數(shù)據(jù)可視化的同時(shí)滿足監(jiān)測(cè)數(shù)據(jù)存取與分析的需求,提供一種有效降低數(shù)據(jù)的理解難度,提高監(jiān)測(cè)信息的管理效率,實(shí)現(xiàn)監(jiān)測(cè)數(shù)據(jù)處理與分析的基于Revit與Matlab的監(jiān)測(cè)數(shù)據(jù)更新與處理的集成系統(tǒng)及方法,從而提高健康監(jiān)測(cè)的決策效率,更好地保證結(jié)構(gòu)安全。為實(shí)現(xiàn)以上目的,本發(fā)明采用如下技術(shù)方案:基于Revit與Matlab的監(jiān)測(cè)數(shù)據(jù)更新與處理的集成系統(tǒng),該系統(tǒng)能夠?qū)崿F(xiàn)結(jié)構(gòu)健康監(jiān)測(cè)數(shù)據(jù)的集成與分析,該系統(tǒng)包括:監(jiān)測(cè)數(shù)據(jù)更新模塊、Matlab數(shù)據(jù)分析模塊和監(jiān)測(cè)數(shù)據(jù)可視化模塊;監(jiān)測(cè)數(shù)據(jù)更新模塊,基于Revit實(shí)現(xiàn)傳感器采集到的監(jiān)測(cè)數(shù)據(jù)與分析處理后數(shù)據(jù)的更新,實(shí)現(xiàn)監(jiān)測(cè)數(shù)據(jù)自動(dòng)導(dǎo)入數(shù)據(jù)庫(kù)中;Matlab數(shù)據(jù)分析模塊,將傳感器采集到的原始數(shù)據(jù)經(jīng)過(guò)分析得到目標(biāo)數(shù)據(jù),將數(shù)據(jù)自動(dòng)寫(xiě)入到數(shù)據(jù)庫(kù)中,以便Revit對(duì)數(shù)據(jù)進(jìn)行調(diào)用;監(jiān)測(cè)數(shù)據(jù)可視化模塊,基于Revit開(kāi)放的API與ADO.NET數(shù)據(jù)訪問(wèn)體系實(shí)現(xiàn)對(duì)SQLSever數(shù)據(jù)庫(kù)中數(shù)據(jù)的提取,通過(guò)應(yīng)用程序提供的控件實(shí)現(xiàn)監(jiān)測(cè)數(shù)據(jù)的可視化。進(jìn)一步的,該系統(tǒng)能夠?qū)崿F(xiàn)監(jiān)測(cè)數(shù)據(jù)的文本文件與SQLSever后臺(tái)數(shù)據(jù)庫(kù)系統(tǒng)之間的數(shù)據(jù)交互,用于自動(dòng)保存和提取數(shù)據(jù)。進(jìn)一步的,該系統(tǒng)能夠?qū)崿F(xiàn)Revit與SQLSever后臺(tái)數(shù)據(jù)庫(kù)系統(tǒng)之間的數(shù)據(jù)交互,可以實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)與可視化。本發(fā)明還提供一種基于Revit與Matlab的監(jiān)測(cè)數(shù)據(jù)更新與處理的方法,該方法實(shí)現(xiàn)上述的集成系統(tǒng),該方法包括基于監(jiān)測(cè)數(shù)據(jù)更新模塊提出Revit讀取Windows文件夾以及文件的方法,實(shí)現(xiàn)將采集到的監(jiān)測(cè)數(shù)據(jù)自動(dòng)導(dǎo)入數(shù)據(jù)庫(kù)中;具體步驟如下:步驟21,打開(kāi)指定文件夾:通過(guò)Windows的瀏覽對(duì)話框打開(kāi)保存監(jiān)測(cè)數(shù)據(jù)的文件夾,并記錄文件夾的路徑;步驟22,讀取文件列表:批量讀取文件夾當(dāng)前目錄以及所有子目錄下的監(jiān)測(cè)數(shù)據(jù)文件;步驟23,使用流讀取文件數(shù)據(jù):使監(jiān)測(cè)數(shù)據(jù)文件處于打開(kāi)狀態(tài),以文件流的形式依次讀取文件中的數(shù)據(jù);步驟24,數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù):將所讀取的文件數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)的數(shù)據(jù)表中,實(shí)現(xiàn)數(shù)據(jù)自動(dòng)寫(xiě)入數(shù)據(jù)庫(kù)中并實(shí)現(xiàn)數(shù)據(jù)表的自動(dòng)更新。進(jìn)一步的,所述基于監(jiān)測(cè)數(shù)據(jù)更新模塊提出Revit讀取Windows文件夾以及文件的方法還包括:Revit通過(guò)Windows的瀏覽對(duì)話框讀取保存監(jiān)測(cè)數(shù)據(jù)文件的文件夾,并將數(shù)據(jù)自動(dòng)寫(xiě)入數(shù)據(jù)庫(kù)中;所述步驟24中,數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)便于Revit對(duì)數(shù)據(jù)進(jìn)行調(diào)用。進(jìn)一步的,在所述步驟24中,數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)步24中,首先需要在數(shù)據(jù)庫(kù)的相應(yīng)位置創(chuàng)建與監(jiān)測(cè)數(shù)據(jù)相對(duì)應(yīng)字段的數(shù)據(jù)表,字段是每一列數(shù)據(jù)的標(biāo)識(shí),不同的列具有不同的字段,便于將每一行數(shù)據(jù)放在相對(duì)應(yīng)的字段下。需要補(bǔ)充說(shuō)明的是,所述步驟24具體實(shí)現(xiàn)步驟如下:步驟241,創(chuàng)建數(shù)據(jù)表:在SQLSever數(shù)據(jù)庫(kù)中利用相應(yīng)的SQL語(yǔ)句在相應(yīng)的數(shù)據(jù)庫(kù)中創(chuàng)建數(shù)據(jù)表用于保存讀取的監(jiān)測(cè)數(shù)據(jù);步驟242,按行讀取文件中的數(shù)據(jù):采用FileStream類使文件處于打開(kāi)狀態(tài),然后用StreamReader類依次讀取文件中每一行的數(shù)據(jù);步驟243,寫(xiě)入數(shù)據(jù)表中:根據(jù)創(chuàng)建數(shù)據(jù)表時(shí)所創(chuàng)建的字段的順序,將每一行的數(shù)據(jù)按照分隔的形式插入到對(duì)應(yīng)的字段下,每一個(gè)字段還設(shè)置了相應(yīng)的數(shù)據(jù)類型;步驟244,是否為空:以循環(huán)的方式遍歷文件中的監(jiān)測(cè)數(shù)據(jù),當(dāng)監(jiān)測(cè)值不為空時(shí)依次寫(xiě)入到數(shù)據(jù)表中,當(dāng)監(jiān)測(cè)值為空時(shí),則停止循環(huán)表示數(shù)據(jù)導(dǎo)入完成。此外,本發(fā)明在基于Matlab數(shù)據(jù)分析模塊提出數(shù)據(jù)在Matlab中分析與處理的方法以及數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)的方法,實(shí)現(xiàn)原始數(shù)據(jù)與目標(biāo)數(shù)據(jù)的保存與管理,有利于Revit對(duì)數(shù)據(jù)的調(diào)用,具體步驟如下:步驟41,Matlab讀取excel數(shù)據(jù):將監(jiān)測(cè)到的原始數(shù)據(jù)保存為excel文件的格式,然后導(dǎo)入Matlab軟件中;步驟42,算法程序處理數(shù)據(jù):在Matlab中采用與健康監(jiān)測(cè)相關(guān)的算法對(duì)導(dǎo)入的數(shù)據(jù)進(jìn)行分析與處理,包括信息的篩選、優(yōu)化等算法程序,從而得到目標(biāo)數(shù)據(jù);步驟43,導(dǎo)出目標(biāo)數(shù)據(jù)的excel文件:將經(jīng)過(guò)Matlab算法處理后的數(shù)據(jù)從Matlab的工作空間中導(dǎo)出,仍然將數(shù)據(jù)保存為excel的格式;步驟44,訪問(wèn)對(duì)象讀取excel數(shù)據(jù):通過(guò)相應(yīng)的數(shù)據(jù)訪問(wèn)方式鏈接數(shù)據(jù)的excel文件,此數(shù)據(jù)訪問(wèn)方式為OleDb,可以直接鏈接數(shù)據(jù)源中的數(shù)據(jù);步驟45,數(shù)據(jù)寫(xiě)入DataTable:在建立與excel數(shù)據(jù)文件的鏈接后,把數(shù)據(jù)緩存入DateSet數(shù)據(jù)集中,以數(shù)據(jù)表DataTable的形式保存;步驟46,數(shù)據(jù)記錄插入數(shù)據(jù)庫(kù):將DataTable中保存的數(shù)據(jù)記錄插入到數(shù)據(jù)庫(kù)的對(duì)應(yīng)數(shù)據(jù)表中,必須滿足DataTable中的列名與數(shù)據(jù)庫(kù)中的列名一一對(duì)應(yīng)。另一方面,本發(fā)明在基于數(shù)據(jù)可視化模塊提出Revit調(diào)用數(shù)據(jù)并顯示的方法,需要通過(guò)相應(yīng)的編程軟件實(shí)現(xiàn)Revit對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的訪問(wèn),然后將數(shù)據(jù)綁定到相應(yīng)的控件中進(jìn)行顯示,實(shí)現(xiàn)監(jiān)測(cè)數(shù)據(jù)的可視化,具體步驟如下:步驟51,SQLSever后臺(tái):SQLSever為后臺(tái)數(shù)據(jù)庫(kù)管理系統(tǒng),對(duì)數(shù)據(jù)進(jìn)行保存與管理,便于與應(yīng)用程序?qū)崿F(xiàn)數(shù)據(jù)交換;步驟52,VisualStudio界面設(shè)計(jì):VisualStudio(VS)為前臺(tái)開(kāi)發(fā)工具,提供不同的編程語(yǔ)言為Revit的二次開(kāi)發(fā)提供支持,在VS可以利用工具箱實(shí)現(xiàn)不同功能的界面設(shè)計(jì);步驟53,添加Revit的引用:編寫(xiě)代碼之前,需要在VS中添加Revit的動(dòng)態(tài)鏈接庫(kù),其中封裝了Revit二次開(kāi)發(fā)的類和代碼,從而實(shí)現(xiàn)開(kāi)發(fā)的界面在Revit中的嵌入;步驟54,打開(kāi)數(shù)據(jù)庫(kù)的鏈接:ADO.NET結(jié)構(gòu)體系可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)與應(yīng)用程序之間的訪問(wèn),通過(guò).NETFramework數(shù)據(jù)提供程序的Connection對(duì)象可以實(shí)現(xiàn)SQL數(shù)據(jù)庫(kù)與Revit之間的鏈接,并使其處于打開(kāi)的狀態(tài);步驟55,將數(shù)據(jù)與控件進(jìn)行綁定:打開(kāi)與數(shù)據(jù)庫(kù)的鏈接后可以直接讀取數(shù)據(jù)庫(kù)中的數(shù)據(jù),然后將數(shù)據(jù)填充至VS提供的控件中,包括表格控件與曲線圖控件等;步驟56,在Revit中實(shí)現(xiàn)可視化:將編寫(xiě)代碼的.dll文件加載到Revit中,運(yùn)行該代碼實(shí)現(xiàn)監(jiān)測(cè)數(shù)據(jù)的可視化。本發(fā)明以Revit為開(kāi)發(fā)平臺(tái),基于Revit開(kāi)放的API,集成Windows文件操作系統(tǒng)與Matlab分析軟件。提出為Revit、SQLSever數(shù)據(jù)庫(kù)以及Matlab分析軟件三者之間提供搭接的方法,包括Revit讀取Windows文件夾以及文件的方法、數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)的方法、數(shù)據(jù)在Matlab中分析與處理的方法以及Revit調(diào)用數(shù)據(jù)并顯示的方法,實(shí)現(xiàn)一種基于Revit與Matlab監(jiān)測(cè)數(shù)據(jù)更新與處理的集成系統(tǒng)。本發(fā)明將Windows文件操作系統(tǒng)集成到Revit可以幫助用戶直接將健康監(jiān)測(cè)的數(shù)據(jù)文件通過(guò)文件夾操作導(dǎo)入到Revit中,有效提高了監(jiān)測(cè)數(shù)據(jù)集成的效率;Matlab分析軟件集成到Revit可以為健康監(jiān)測(cè)的數(shù)據(jù)分析提供支持,解決了Revit無(wú)法對(duì)監(jiān)測(cè)數(shù)據(jù)進(jìn)行分析處理的缺點(diǎn),從而更科學(xué)地評(píng)估結(jié)構(gòu)的安全狀態(tài)。附圖說(shuō)明圖1是本發(fā)明基于Revit與Matlab的監(jiān)測(cè)數(shù)據(jù)更新與處理的集成系統(tǒng)的示意圖;圖2是本發(fā)明基于Revit與Matlab的監(jiān)測(cè)數(shù)據(jù)更新與處理的集成系統(tǒng)之Revit讀取Windows文件夾以及文件的方法流程圖;圖3是本發(fā)明基于Revit與Matlab的監(jiān)測(cè)數(shù)據(jù)更新與處理的集成系統(tǒng)之?dāng)?shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)的方法流程圖;圖4是本發(fā)明基于Revit與Matlab的監(jiān)測(cè)數(shù)據(jù)更新與處理的集成系統(tǒng)之?dāng)?shù)據(jù)在Matlab中分析與處理的方法流程圖;圖5是本發(fā)明基于Revit與Matlab的監(jiān)測(cè)數(shù)據(jù)更新與處理的集成系統(tǒng)之Revit調(diào)用數(shù)據(jù)并顯示的方法流程圖。圖1中:1、監(jiān)測(cè)數(shù)據(jù)更新模塊;2、Matlab數(shù)據(jù)分析模塊;3、監(jiān)測(cè)數(shù)據(jù)可視化模塊。具體實(shí)施方式本發(fā)明提出Revit、SQLSever數(shù)據(jù)庫(kù)以及Matlab分析軟件三者之間提供搭接的方法,有效提高了監(jiān)測(cè)數(shù)據(jù)集成的效率,解決了Revit無(wú)法對(duì)監(jiān)測(cè)數(shù)據(jù)進(jìn)行分析處理的缺點(diǎn)。下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整的描述。如圖1所示,本發(fā)明提供一種基于Revit與Matlab的監(jiān)測(cè)數(shù)據(jù)更新與處理的集成系統(tǒng),該系統(tǒng)能夠?qū)崿F(xiàn)結(jié)構(gòu)健康監(jiān)測(cè)數(shù)據(jù)的集成與分析,該系統(tǒng)包括監(jiān)測(cè)數(shù)據(jù)更新模塊1、Matlab數(shù)據(jù)分析模塊2和監(jiān)測(cè)數(shù)據(jù)可視化模塊3監(jiān)測(cè)數(shù)據(jù)更新模塊1,基于Revit用于更新傳感器采集到的監(jiān)測(cè)數(shù)據(jù)與分析處理后數(shù)據(jù)的更新,實(shí)現(xiàn)監(jiān)測(cè)數(shù)據(jù)自動(dòng)導(dǎo)入數(shù)據(jù)庫(kù)中;需要基于Revit與Windows文件操作系統(tǒng)的集成實(shí)現(xiàn);Matlab數(shù)據(jù)分析模塊2,將傳感器采集到的原始數(shù)據(jù)經(jīng)過(guò)分析得到目標(biāo)數(shù)據(jù),將原始數(shù)據(jù)與目標(biāo)數(shù)據(jù)在利用監(jiān)測(cè)數(shù)據(jù)更新模塊的基礎(chǔ)上寫(xiě)入到數(shù)據(jù)庫(kù)中,以便Revit對(duì)數(shù)據(jù)進(jìn)行調(diào)用;監(jiān)測(cè)數(shù)據(jù)可視化模塊3,基于Revit開(kāi)放的API與ADO.NET數(shù)據(jù)訪問(wèn)體系實(shí)現(xiàn)對(duì)SQLSever數(shù)據(jù)庫(kù)中數(shù)據(jù)的提取,通過(guò)應(yīng)用程序設(shè)計(jì)的界面以及提供的控件實(shí)現(xiàn)監(jiān)測(cè)數(shù)據(jù)的可視化。需要補(bǔ)充說(shuō)明的是,該系統(tǒng)能夠?qū)崿F(xiàn)監(jiān)測(cè)數(shù)據(jù)的文本文件與SQLSever后臺(tái)數(shù)據(jù)庫(kù)系統(tǒng)之間的數(shù)據(jù)交互,用于自動(dòng)保存和提取數(shù)據(jù)。該系統(tǒng)能夠?qū)崿F(xiàn)Revit與SQLSever后臺(tái)數(shù)據(jù)庫(kù)系統(tǒng)之間的數(shù)據(jù)交互,可以實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)與可視化。如圖2所示,本發(fā)明還提供一種基于Revit與Matlab的監(jiān)測(cè)數(shù)據(jù)更新與處理的方法,該方法采用上述的集成系統(tǒng),該方法包括基于監(jiān)測(cè)數(shù)據(jù)更新模塊1提出Revit讀取Windows文件夾以及文件的方法,實(shí)現(xiàn)將采集到的監(jiān)測(cè)數(shù)據(jù)自動(dòng)導(dǎo)入數(shù)據(jù)庫(kù)中;具體包括的步驟如下:步驟21,打開(kāi)指定文件夾:通過(guò)Windows的瀏覽對(duì)話框打開(kāi)保存監(jiān)測(cè)數(shù)據(jù)的文件夾,并記錄文件夾的路徑;具體講就是在VS的命名空間在添加System.IO的引用,通過(guò)OpenFileDialog可以打開(kāi)Windows的瀏覽對(duì)話框架,選擇保存監(jiān)測(cè)數(shù)據(jù)的文件夾,并記錄文件夾的路徑;步驟22,讀取文件列表:批量讀取文件夾當(dāng)前目錄以及所有子目錄下的監(jiān)測(cè)數(shù)據(jù)文件;具體講就是通過(guò)System.IO.Directory類讀取文件夾,設(shè)定為讀取當(dāng)前目錄以及所有子目錄下的監(jiān)測(cè)數(shù)據(jù)文件;步驟23,使用流讀取文件數(shù)據(jù):使監(jiān)測(cè)數(shù)據(jù)文件處于打開(kāi)狀態(tài),以文件流的形式依次讀取文件中的數(shù)據(jù);具體講就是采用FileStream類使監(jiān)測(cè)數(shù)據(jù)文件處于打開(kāi)狀態(tài),用StreamReader類以文件流的形式依次讀取文件中的數(shù)據(jù);步驟24,數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù):將所讀取的文件數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)的數(shù)據(jù)表中,實(shí)現(xiàn)數(shù)據(jù)自動(dòng)寫(xiě)入數(shù)據(jù)庫(kù)中并實(shí)現(xiàn)數(shù)據(jù)表的自動(dòng)更新。作為一種優(yōu)選的實(shí)施方案,所述基于監(jiān)測(cè)數(shù)據(jù)更新模塊1提出Revit讀取Windows文件夾以及文件的方法還包括:Revit通過(guò)Windows的瀏覽對(duì)話框讀取保存監(jiān)測(cè)數(shù)據(jù)文件的文件夾,并將數(shù)據(jù)自動(dòng)寫(xiě)入數(shù)據(jù)庫(kù)中;所述步驟24中,數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)便于Revit對(duì)數(shù)據(jù)進(jìn)行調(diào)用。在所述步驟24中,數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)步24中,首先需要在數(shù)據(jù)庫(kù)的相應(yīng)位置創(chuàng)建與監(jiān)測(cè)數(shù)據(jù)相對(duì)應(yīng)字段的數(shù)據(jù)表,字段是每一列數(shù)據(jù)的標(biāo)識(shí),不同的列具有不同的字段,便于將每一行數(shù)據(jù)放在相對(duì)應(yīng)的字段下。如圖3所示,需要補(bǔ)充說(shuō)明的是,所述步驟24具體實(shí)現(xiàn)步驟如下:步驟241,創(chuàng)建數(shù)據(jù)表:在SQLSever數(shù)據(jù)庫(kù)中利用相應(yīng)的SQL語(yǔ)句在相應(yīng)的數(shù)據(jù)庫(kù)中創(chuàng)建數(shù)據(jù)表用于保存讀取的監(jiān)測(cè)數(shù)據(jù);具體講就是,在SQLSever數(shù)據(jù)庫(kù)中利用相應(yīng)的SQL語(yǔ)句在相應(yīng)的數(shù)據(jù)庫(kù)中創(chuàng)建數(shù)據(jù)表,語(yǔ)句為use數(shù)據(jù)庫(kù)名cratetable表格名(列名類型(大小),……),數(shù)據(jù)表的字段和數(shù)據(jù)類型要和讀取文件的數(shù)據(jù)相對(duì)應(yīng),實(shí)現(xiàn)監(jiān)測(cè)數(shù)據(jù)在數(shù)據(jù)庫(kù)中的正確保存;步驟242,按行讀取文件中的數(shù)據(jù):采用FileStream類使文件處于打開(kāi)狀態(tài),然后用StreamReader類依次讀取文件中每一行的數(shù)據(jù);步驟243,寫(xiě)入數(shù)據(jù)表中:根據(jù)創(chuàng)建數(shù)據(jù)表時(shí)所創(chuàng)建的字段的順序,將每一行的數(shù)據(jù)按照分隔的形式插入到對(duì)應(yīng)的字段下,每一個(gè)字段還設(shè)置了相應(yīng)的數(shù)據(jù)類型;比如,語(yǔ)句為insertinto表格名values(@字段名,……);步驟244,是否為空:以循環(huán)的方式遍歷文件中的監(jiān)測(cè)數(shù)據(jù),當(dāng)監(jiān)測(cè)值不為空時(shí)依次寫(xiě)入到數(shù)據(jù)表中,當(dāng)監(jiān)測(cè)值為空時(shí),則停止循環(huán)表示數(shù)據(jù)導(dǎo)入完成。如圖4所示,本發(fā)明在基于Matlab數(shù)據(jù)分析模塊2提出數(shù)據(jù)在Matlab中分析與處理的方法以及數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)的方法,實(shí)現(xiàn)原始數(shù)據(jù)與目標(biāo)數(shù)據(jù)的保存與管理,有利于Revit對(duì)數(shù)據(jù)的調(diào)用,具體步驟如下:步驟41,Matlab讀取excel數(shù)據(jù):將監(jiān)測(cè)到的原始數(shù)據(jù)保存為excel文件的格式,然后導(dǎo)入Matlab軟件中;Matlab導(dǎo)入excel數(shù)據(jù)文件的語(yǔ)句為load數(shù)據(jù)文件名.xls,這樣在Matlab的工作空間中便會(huì)出現(xiàn)相應(yīng)的數(shù)據(jù);步驟42,算法程序處理數(shù)據(jù):在Matlab中采用與健康監(jiān)測(cè)相關(guān)的算法對(duì)導(dǎo)入的數(shù)據(jù)進(jìn)行分析與處理,包括信息的篩選、優(yōu)化等算法程序,從而得到目標(biāo)數(shù)據(jù);此過(guò)程在Matlab的編輯器中完成,可充分利用Matlab封裝的函數(shù)功能;步驟43,導(dǎo)出目標(biāo)數(shù)據(jù)的excel文件:將經(jīng)過(guò)Matlab算法處理后的數(shù)據(jù)從Matlab的工作空間中導(dǎo)出,仍然將數(shù)據(jù)保存為excel的格式;導(dǎo)出命令為xlswrite(‘路徑\文件名.xls’,數(shù)據(jù)名),便會(huì)相應(yīng)的路徑下便會(huì)得到目標(biāo)數(shù)據(jù)的excel文件;步驟44,訪問(wèn)對(duì)象讀取excel數(shù)據(jù):通過(guò)相應(yīng)的數(shù)據(jù)訪問(wèn)方式鏈接數(shù)據(jù)的excel文件,此數(shù)據(jù)訪問(wèn)方式為OleDb,可以直接鏈接數(shù)據(jù)源中的數(shù)據(jù);通過(guò)OleDbDataAdapter鏈接并讀取數(shù)據(jù)表;步驟45,數(shù)據(jù)寫(xiě)入DataTable:在建立與excel數(shù)據(jù)文件的鏈接后,把數(shù)據(jù)緩存入DateSet數(shù)據(jù)集中,以數(shù)據(jù)表DataTable的形式保存;步驟46,數(shù)據(jù)記錄插入數(shù)據(jù)庫(kù):將DataTable中保存的數(shù)據(jù)記錄插入到數(shù)據(jù)庫(kù)的對(duì)應(yīng)數(shù)據(jù)表中,必須滿足DataTable中的列名與數(shù)據(jù)庫(kù)中的列名一一對(duì)應(yīng)。如圖5所示,本發(fā)明在基于數(shù)據(jù)可視化模塊提出Revit調(diào)用數(shù)據(jù)并顯示的方法,需要通過(guò)相應(yīng)的編程軟件實(shí)現(xiàn)Revit對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的訪問(wèn),然后將數(shù)據(jù)綁定到相應(yīng)的控件中進(jìn)行顯示,實(shí)現(xiàn)監(jiān)測(cè)數(shù)據(jù)的可視化,具體步驟如下:步驟51,SQLSever后臺(tái):SQLSever為后臺(tái)數(shù)據(jù)庫(kù)管理系統(tǒng),對(duì)數(shù)據(jù)進(jìn)行保存與管理,便于與應(yīng)用程序?qū)崿F(xiàn)數(shù)據(jù)交換;步驟52,VisualStudio界面設(shè)計(jì):VisualStudio(VS)為前臺(tái)開(kāi)發(fā)工具,提供不同的編程語(yǔ)言為Revit的二次開(kāi)發(fā)提供支持,實(shí)現(xiàn)將數(shù)據(jù)庫(kù)中讀取的數(shù)據(jù)以窗體界面的形式進(jìn)行展現(xiàn),在VS中利用工具箱實(shí)現(xiàn)不同功能的界面設(shè)計(jì);步驟53,添加Revit的引用:編寫(xiě)代碼之前,需要在VS中添加Revit的動(dòng)態(tài)鏈接庫(kù),其中封裝了Revit二次開(kāi)發(fā)的類和代碼,用到了commandData、message、elements等參數(shù),從而實(shí)現(xiàn)開(kāi)發(fā)的界面在Revit中的嵌入;步驟54,打開(kāi)數(shù)據(jù)庫(kù)的鏈接:ADO.NET結(jié)構(gòu)體系可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)與應(yīng)用程序之間的訪問(wèn),需要先在VS的命名空間中添加System.Data.SqlClient的引用,通過(guò).NETFramework數(shù)據(jù)提供程序的Connection對(duì)象可以實(shí)現(xiàn)SQL數(shù)據(jù)庫(kù)與Revit之間的鏈接,并使用sqlcon.open使其處于打開(kāi)的狀態(tài);步驟55,將數(shù)據(jù)與控件進(jìn)行綁定:打開(kāi)與數(shù)據(jù)庫(kù)的鏈接后可以直接讀取數(shù)據(jù)庫(kù)中的數(shù)據(jù),然后將數(shù)據(jù)填充至VS提供的控件中,包括dataGridView表格控件與MSChart曲線圖控件,實(shí)現(xiàn)數(shù)據(jù)的表格顯示與曲線圖顯示等;步驟56,在Revit中實(shí)現(xiàn)可視化:將編寫(xiě)代碼的.dll文件加載到Revit中,運(yùn)行該代碼實(shí)現(xiàn)監(jiān)測(cè)數(shù)據(jù)的可視化。本發(fā)明以Revit為開(kāi)發(fā)平臺(tái),基于Revit開(kāi)放的API,集成Windows文件操作系統(tǒng)與Matlab分析軟件。提出為Revit、SQLSever數(shù)據(jù)庫(kù)以及Matlab分析軟件三者之間提供搭接的方法,包括Revit讀取Windows文件夾以及文件的方法、數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)的方法、數(shù)據(jù)在Matlab中分析與處理的方法以及Revit調(diào)用數(shù)據(jù)并顯示的方法,接實(shí)現(xiàn)基于Revit集成Windows文件操作系統(tǒng)與Matlab分析軟件,并以SQLSever為后臺(tái)數(shù)據(jù)庫(kù)管理系統(tǒng)。本發(fā)明將Windows文件操作系統(tǒng)集成到Revit可以幫助用戶直接將健康監(jiān)測(cè)的數(shù)據(jù)文件通過(guò)文件夾操作導(dǎo)入到Revit中,有效提高了監(jiān)測(cè)數(shù)據(jù)集成的效率;Matlab分析軟件集成到Revit可以為健康監(jiān)測(cè)的數(shù)據(jù)分析提供支持,解決了Revit無(wú)法對(duì)監(jiān)測(cè)數(shù)據(jù)進(jìn)行分析處理的缺點(diǎn),克服了Revit無(wú)法集成結(jié)構(gòu)健康監(jiān)測(cè)以及無(wú)法對(duì)監(jiān)測(cè)數(shù)據(jù)進(jìn)行分析處理的問(wèn)題,有效提高了監(jiān)測(cè)數(shù)據(jù)集成的效率,通過(guò)數(shù)據(jù)的分析與處理提高決策效率,從而更科學(xué)地評(píng)估結(jié)構(gòu)的安全狀態(tài)。以上所述的具體實(shí)施方式,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。當(dāng)前第1頁(yè)1 2 3 當(dāng)前第1頁(yè)1 2 3