孫子茗, 孫家南, 張馨皓, 馬澤宇
[同濟(jì)大學(xué)建筑設(shè)計(jì)研究院(集團(tuán))有限公司, 上海 200092]
隨著我國城市建設(shè)水平的不斷提升,火災(zāi)自動(dòng)報(bào)警系統(tǒng)已成為建筑電氣設(shè)計(jì)中的重要組成部分[1-2]。然而,在系統(tǒng)圖繪制方面,設(shè)計(jì)人員面臨著諸多挑戰(zhàn),如統(tǒng)計(jì)困難、反復(fù)修改等問題,這些問題不僅影響了設(shè)計(jì)效率,也制約了圖紙質(zhì)量[3-4]。
在傳統(tǒng)設(shè)計(jì)中,設(shè)計(jì)師需要根據(jù)防火分區(qū)統(tǒng)計(jì)平面圖中的設(shè)備點(diǎn)位,然后在系統(tǒng)圖中逐一插入圖例并修改數(shù)量,這種方法既費(fèi)時(shí)又容易出錯(cuò)。為了提高設(shè)計(jì)效率,一些設(shè)計(jì)師已經(jīng)采用了基于AutoLISP或VBA的定制化AutoCAD二次開發(fā)方法,運(yùn)用數(shù)字化技術(shù)快速處理圖紙內(nèi)容[5],但這類被稱為“面向過程”的編程語言,存在諸如數(shù)據(jù)孤立、修改困難和拓展困難等問題[5-6]。
針對(duì)上述問題,提出了一種數(shù)字化的火災(zāi)自動(dòng)報(bào)警系統(tǒng)圖設(shè)計(jì)方法。該方法基于面向?qū)ο蟮腃#語言和云數(shù)據(jù)庫技術(shù),首先從電氣設(shè)計(jì)的角度進(jìn)行建模,將防火分區(qū)和相關(guān)數(shù)據(jù)作為整體進(jìn)行處理;然后,通過C#程序?qū)AD中的圖形文件進(jìn)行有效的提取和統(tǒng)計(jì),并將統(tǒng)計(jì)結(jié)果存儲(chǔ)到云數(shù)據(jù)庫中;最后根據(jù)云數(shù)據(jù)庫中的內(nèi)容生成或修改火災(zāi)自動(dòng)報(bào)警系統(tǒng)圖。工程實(shí)踐結(jié)果表明,利用數(shù)字化手段和云數(shù)據(jù)庫的優(yōu)勢,能夠以較低的研發(fā)成本,快速開發(fā)“輕量應(yīng)用”,提升設(shè)計(jì)效率并為未來的數(shù)據(jù)分析提供數(shù)據(jù)基礎(chǔ)[7]。
程序架構(gòu)的設(shè)計(jì)需要充分考慮易用性、可擴(kuò)展性和可維護(hù)性[8]。圖形數(shù)據(jù)的統(tǒng)計(jì)、存儲(chǔ)、使用分別對(duì)應(yīng)程序中的平面圖模塊、數(shù)據(jù)庫模塊和系統(tǒng)圖模塊,通過圖形化窗體對(duì)應(yīng)的功能按鈕將各模塊串聯(lián)起來。程序架構(gòu)示意圖如圖1所示。
圖1 程序架構(gòu)示意圖
平面圖模塊用于在平面圖中尋找所有防火分區(qū),并根據(jù)預(yù)設(shè)的篩選條件,按防火分區(qū)統(tǒng)計(jì)火災(zāi)自動(dòng)報(bào)警設(shè)備點(diǎn)位數(shù)量等信息,然后將統(tǒng)計(jì)結(jié)果發(fā)送至數(shù)據(jù)庫模塊,這一模塊提高了平面圖數(shù)據(jù)統(tǒng)計(jì)的準(zhǔn)確性和效率。
數(shù)據(jù)庫模塊用于程序窗體與數(shù)據(jù)庫的連接、查詢和修改操作。該模塊接收并存儲(chǔ)平面圖模塊統(tǒng)計(jì)完成的數(shù)據(jù),并為系統(tǒng)圖模塊提供所需的信息。這一模塊確保了數(shù)據(jù)的安全性和一致性,便于后續(xù)數(shù)據(jù)的更新和維護(hù)。
系統(tǒng)圖模塊用于查詢數(shù)據(jù)庫中的信息,并生成或修改火災(zāi)自動(dòng)報(bào)警系統(tǒng)圖。通過與數(shù)據(jù)庫模塊的交互,系統(tǒng)圖模塊能夠快速地生成或更新系統(tǒng)圖,保證平面圖與系統(tǒng)圖數(shù)據(jù)的一致性。
火災(zāi)報(bào)警系統(tǒng)設(shè)計(jì)通常以防火分區(qū)為單位,每個(gè)防火分區(qū)包含相同屬性的數(shù)據(jù),例如防火分區(qū)編號(hào)、點(diǎn)位數(shù)量等。這種具有固定屬性的數(shù)據(jù)模型可以抽象為關(guān)系模型,以二維表結(jié)構(gòu)在云數(shù)據(jù)庫中進(jìn)行邏輯表達(dá)和實(shí)現(xiàn)。
針對(duì)火災(zāi)自動(dòng)報(bào)警系統(tǒng)的統(tǒng)計(jì)需求,在云數(shù)據(jù)庫中創(chuàng)建火災(zāi)自動(dòng)報(bào)警系統(tǒng)點(diǎn)位表。該表共創(chuàng)建了42個(gè)列屬性定義?;馂?zāi)自動(dòng)報(bào)警系統(tǒng)主要列屬性如表1所示。其中,IdKey作為索引號(hào),由MySQL自動(dòng)生成;第5至第39列屬性表示火災(zāi)報(bào)警平面圖中的消防設(shè)備數(shù)量,如煙/溫感探測器、消防風(fēng)機(jī)、聲光報(bào)警器及短路隔離器等;第40至42列屬性代表回路信息。
表1 火災(zāi)自動(dòng)報(bào)警系統(tǒng)主要列屬性表
程序?qū)⑵矫娼y(tǒng)計(jì)結(jié)果發(fā)送至云數(shù)據(jù)庫,滿足校驗(yàn)規(guī)則的數(shù)據(jù)將被存入點(diǎn)位表中。借助Dbeaver等第三方圖形化工具,設(shè)計(jì)師可以在脫離CAD環(huán)境的情況下單獨(dú)查看和修改數(shù)據(jù)。
數(shù)據(jù)庫系統(tǒng)是本次程序的核心組成,能夠?qū)崿F(xiàn)高效、安全的數(shù)據(jù)存儲(chǔ)和管理。然而,數(shù)據(jù)庫系統(tǒng)的部署和維護(hù)非常復(fù)雜,需要掌握Linux、DBA、軟硬件運(yùn)維和網(wǎng)絡(luò)安全等專業(yè)知識(shí)。對(duì)于非軟件工程專業(yè)出身的建筑設(shè)計(jì)師來說,鑒于建筑設(shè)計(jì)行業(yè)通常缺乏通用性軟件解決方案,這就帶來了學(xué)習(xí)門檻高、部署復(fù)雜、軟硬件成本昂貴等挑戰(zhàn)[7]。
針對(duì)這一問題,本研究采用了服務(wù)化方法[9],即通過購買騰訊云數(shù)據(jù)庫這一軟件服務(wù)的方式,以較低的學(xué)習(xí)和經(jīng)濟(jì)成本,實(shí)現(xiàn)數(shù)據(jù)庫的免運(yùn)維部署和全天候穩(wěn)定可靠在線。采用云數(shù)據(jù)庫符合產(chǎn)業(yè)數(shù)字化轉(zhuǎn)型趨勢[7]并且具有以下兩點(diǎn)優(yōu)勢。
首先,云服務(wù)運(yùn)營商提供了全面的產(chǎn)品支持,實(shí)現(xiàn)了即拿即用的部署方式[8],避免了軟硬件運(yùn)維、網(wǎng)絡(luò)安全、災(zāi)備、資產(chǎn)管理以及商用軟件授權(quán)等方面的問題,極大地降低了學(xué)習(xí)門檻。設(shè)計(jì)師可以將更多精力集中在專業(yè)知識(shí)建模與程序設(shè)計(jì)上,加快開發(fā)進(jìn)程。
其次,針對(duì)本研究中的數(shù)據(jù)規(guī)模僅為幾十兆字節(jié)級(jí)別的情況,無須搭建本地服務(wù)器或租賃云服務(wù)器。云服務(wù)提供了靈活的租賃模式,使得試錯(cuò)、研發(fā)和使用成本大大降低。這種靈活的租賃方式實(shí)現(xiàn)了輕重資產(chǎn)的分離合作,使得開發(fā)團(tuán)隊(duì)能夠以較低成本快速開發(fā)輕量級(jí)服務(wù)。開發(fā)者無須投入大量資源來維護(hù)龐大的基礎(chǔ)設(shè)施,而是依靠云服務(wù)商提供的強(qiáng)大基礎(chǔ)設(shè)施,從而專注于系統(tǒng)的功能開發(fā)和優(yōu)化。
因此,本研究通過購買云數(shù)據(jù)庫的方法,借助平臺(tái)賦能,快周期、低成本地完成程序中的數(shù)據(jù)庫環(huán)節(jié)設(shè)計(jì),并為未來數(shù)據(jù)挖掘、產(chǎn)品服務(wù)創(chuàng)新提供數(shù)據(jù)基礎(chǔ)[7,9-10]。同時(shí),云服務(wù)的靈活租賃模式也為試錯(cuò)、研發(fā)和使用提供了更多的便利,使得開發(fā)團(tuán)隊(duì)能夠靈活運(yùn)作,降低了開發(fā)過程中的不必要的資源投入[5,7-9]。
程序采用C#語言編寫,平面模塊和系統(tǒng)圖模塊均在CAD中運(yùn)行并共用窗體。平面模塊在平面繪制完成后使用,以圖層、塊名和篩選范圍為主要篩選條件。程序讀取平面圖中符合篩選條件的防火分區(qū)分隔曲線及圖塊,通過識(shí)別防火分區(qū)范圍內(nèi)的圖塊,實(shí)現(xiàn)對(duì)平面信息的自動(dòng)化統(tǒng)計(jì)。防火分區(qū)信息以屬性塊的形式放置于防火分區(qū)曲線的閉合空間內(nèi)。防火分區(qū)信息表如表2所示。
表2 防火分區(qū)信息表
點(diǎn)位統(tǒng)計(jì)結(jié)束后,平面統(tǒng)計(jì)模塊會(huì)調(diào)用WinForm窗體控件作為圖形化界面,將結(jié)果顯示表格中,經(jīng)設(shè)計(jì)師校驗(yàn)和修改后,最終結(jié)果將發(fā)送至數(shù)據(jù)庫模塊并存入對(duì)應(yīng)表格中,實(shí)現(xiàn)數(shù)據(jù)可視化[11-12]。
系統(tǒng)圖模塊在WinForm窗體下表格中顯示已入庫的數(shù)據(jù),通過調(diào)用火災(zāi)報(bào)警系統(tǒng)圖標(biāo)準(zhǔn)圖例,生成對(duì)應(yīng)系統(tǒng)圖并自動(dòng)填寫相關(guān)信息?;馂?zāi)報(bào)警系統(tǒng)圖標(biāo)準(zhǔn)圖例如圖2所示。
圖2 火災(zāi)報(bào)警系統(tǒng)圖標(biāo)準(zhǔn)圖例
以某二甲醫(yī)院項(xiàng)目為實(shí)例,驗(yàn)證程序的可行性與優(yōu)缺點(diǎn),該工程建筑面積約22 327.8 m2,其中地上建筑面積21 498.1 m2,地下建筑面積829.7 m2,地上8層,地下1層,主要功能包括診室、手術(shù)室、病房、辦公室及設(shè)備用房等。建筑效果圖如圖3所示。
圖3 建筑效果圖
該工程采用集中報(bào)警系統(tǒng),消防控制室(與安保控制室合用)位于一層,設(shè)有直接通往室外的出口,室內(nèi)設(shè)有火災(zāi)報(bào)警控制器、消防聯(lián)動(dòng)控制器、消防控制室圖形顯示裝置等設(shè)備[13]。主要聯(lián)動(dòng)設(shè)備包括消防水泵、排煙風(fēng)機(jī)和正壓風(fēng)機(jī)等。
一般功能房間選用點(diǎn)型感煙火災(zāi)探測器,探測器保護(hù)半徑R=5.8 m。變電所、弱電機(jī)房等重要設(shè)備房間設(shè)置氣體滅火系統(tǒng),通高的中庭設(shè)置線型光束感煙火災(zāi)探測器及圖像型火災(zāi)報(bào)警系統(tǒng)。
本項(xiàng)目火災(zāi)自動(dòng)報(bào)警系統(tǒng)使用軟件適配的標(biāo)準(zhǔn)圖例進(jìn)行繪制。軟件使用前根據(jù)防火分區(qū)設(shè)置統(tǒng)計(jì)區(qū)域,將每個(gè)防火分區(qū)內(nèi)的消防設(shè)備涵蓋在內(nèi),并逐個(gè)編輯防火分區(qū)信息塊,以便軟件形成與平面圖結(jié)構(gòu)相符的系統(tǒng)圖。以一層為例,一層的防火分區(qū)示意圖如圖4所示。
圖4 一層防火分區(qū)示意圖
程序?qū)?duì)預(yù)設(shè)消防點(diǎn)位及聯(lián)動(dòng)設(shè)備統(tǒng)計(jì),并根據(jù)點(diǎn)位數(shù)量及聯(lián)動(dòng)點(diǎn)位數(shù)量計(jì)算當(dāng)前防火分區(qū)所需的總線回路數(shù),總線回路數(shù)N應(yīng)滿足下式:
(1)
式中:N——回路數(shù)量,整數(shù),向上取整;
N1——設(shè)備總數(shù)(點(diǎn));
N2——聯(lián)動(dòng)設(shè)備總數(shù)(點(diǎn));
K1——總線余量系數(shù),依據(jù)規(guī)范應(yīng)預(yù)留不少于額定容量10%的余量[13],故取0.9;
K2——聯(lián)動(dòng)總線余量系數(shù),依據(jù)規(guī)范應(yīng)預(yù)留不少于額定容量10%的余量[13],故取0.9。
在AutoCAD中調(diào)用程序后,將顯示圖形化程序界面,界面由兩張表格組成,其中上半部分表格用于平面模塊,下半部分表格用于系統(tǒng)模塊圖。圖形化程序界面如圖5所示。
圖5 圖形化程序界面
平面統(tǒng)計(jì)完成后,統(tǒng)計(jì)數(shù)據(jù)將匯總至上半部的平面統(tǒng)計(jì)窗體,供設(shè)計(jì)師復(fù)核、確認(rèn)。防火分區(qū)內(nèi)編號(hào)在平面中指定,樓層索引信息由數(shù)據(jù)庫自動(dòng)生成,其余統(tǒng)計(jì)數(shù)據(jù)由程序計(jì)算后自動(dòng)填充,統(tǒng)計(jì)結(jié)果與外部數(shù)據(jù)的結(jié)構(gòu)一致,點(diǎn)位可手動(dòng)修正。復(fù)核無誤后,勾選所需回路,發(fā)送至數(shù)據(jù)庫模塊。
數(shù)據(jù)庫模塊將對(duì)接收的信息進(jìn)行處理,針對(duì)新增的防火分區(qū),將在數(shù)據(jù)庫中新建行、存入對(duì)應(yīng)信息、返回索引值,此外程序還將在DWG文件中自動(dòng)同步設(shè)置索引號(hào)。針對(duì)已入庫的防火分區(qū),數(shù)據(jù)庫模塊將檢索并修改對(duì)應(yīng)的行信息。數(shù)據(jù)庫中的火災(zāi)報(bào)警系統(tǒng)表如圖6所示。
圖6 數(shù)據(jù)庫中的火災(zāi)報(bào)警系統(tǒng)表
根據(jù)深度規(guī)定,施工圖階段需提供火災(zāi)自動(dòng)報(bào)警及消防聯(lián)動(dòng)控制系統(tǒng)圖[14]。本程序采用樹形結(jié)構(gòu),在系統(tǒng)圖中表示出各防火分區(qū)的系統(tǒng)組成、點(diǎn)位信息、連接信息、樓層及防火分區(qū)信息、回路信息、設(shè)備總量及聯(lián)動(dòng)設(shè)備數(shù)量。數(shù)據(jù)庫模塊會(huì)將已入庫的分區(qū)信息通過圖5中的下半部分表格完整展示,勾選所需回路即可生成或修改對(duì)應(yīng)的系統(tǒng)圖。
首次生成系統(tǒng)圖時(shí),程序會(huì)按樓層排序并按照防火分區(qū)逐層生成系統(tǒng)圖的對(duì)應(yīng)圖元,生成完成后,需由設(shè)計(jì)師結(jié)合建筑內(nèi)的實(shí)際路由調(diào)整各防火分區(qū)的圖元位置,并手動(dòng)補(bǔ)充消控室信息、消防橋架規(guī)格及線纜統(tǒng)計(jì)等。基于軟件生成系統(tǒng)圖的手動(dòng)完善成果圖如圖7所示。
圖7 基于軟件生成系統(tǒng)圖的手動(dòng)完善成果圖
在工程實(shí)踐中,系統(tǒng)圖的修改頻次高于生成頻次,因此系統(tǒng)圖模塊中的修改子模塊也是十分必要的。該子模塊會(huì)結(jié)合數(shù)據(jù)庫中的點(diǎn)位信息和設(shè)計(jì)師的框選范圍,在保持DWG圖元位置不變的前提下,只修改系統(tǒng)圖中的點(diǎn)位信息,從而實(shí)現(xiàn)系統(tǒng)圖的快速修改。
通過對(duì)火災(zāi)自動(dòng)報(bào)警系統(tǒng)設(shè)計(jì)流程的分析,采用面向?qū)ο蟮木幊谭椒?結(jié)合外部云數(shù)據(jù)庫,構(gòu)建了火災(zāi)自動(dòng)報(bào)警系統(tǒng)的關(guān)系模型,提出了基于面向?qū)ο蟮臄?shù)字化火災(zāi)自動(dòng)報(bào)警系統(tǒng)圖設(shè)計(jì)方法,并在工程實(shí)踐中取得了以下結(jié)論。
(1) C#語言具有面向?qū)ο蟮奶匦?將防火分區(qū)和相關(guān)數(shù)據(jù)視為一個(gè)整體,能更好地應(yīng)對(duì)復(fù)雜工程,提高程序設(shè)計(jì)的準(zhǔn)確性和可靠性。此外,C#語言擁有完善的生態(tài)系統(tǒng)和強(qiáng)大的程序功能,使其相較于AutoLISP、VBA等語言更適合用于工程建模和AutoCAD二次開發(fā)。
(2) 數(shù)據(jù)庫系統(tǒng)在本次設(shè)計(jì)中扮演著數(shù)字化基礎(chǔ)設(shè)施的核心角色。一方面,數(shù)據(jù)庫提供了有效的數(shù)據(jù)管理和存儲(chǔ)機(jī)制,使設(shè)計(jì)數(shù)據(jù)得以高效地組織和保存;另一方面,設(shè)計(jì)圖紙及其所包含的數(shù)據(jù)是建筑項(xiàng)目實(shí)施的核心依據(jù),且具有重要的數(shù)據(jù)挖掘潛力。使用數(shù)據(jù)庫搭建數(shù)據(jù)基礎(chǔ),設(shè)計(jì)流程的上下游環(huán)節(jié)可以實(shí)現(xiàn)數(shù)據(jù)互通;基于自身業(yè)務(wù)側(cè)重點(diǎn),運(yùn)用AI等數(shù)字化手段對(duì)工程數(shù)據(jù)進(jìn)行挖掘,解決信息孤島問題,釋放數(shù)據(jù)價(jià)值,建立跨界融合的數(shù)字化生態(tài),為設(shè)計(jì)師呈現(xiàn)可視化程度高、交互性強(qiáng)、表現(xiàn)力出眾的產(chǎn)品和服務(wù)。
(3) 在數(shù)字化轉(zhuǎn)型過程中,云數(shù)據(jù)庫能夠顯著降低開發(fā)學(xué)習(xí)和經(jīng)濟(jì)成本。一方面,云數(shù)據(jù)庫運(yùn)營商提供了完善的基礎(chǔ)服務(wù),使得設(shè)計(jì)師無須深入學(xué)習(xí)數(shù)據(jù)庫的底層邏輯,從而可以更專注于程序設(shè)計(jì);另一方面,針對(duì)于小規(guī)模的數(shù)據(jù)存儲(chǔ)場景,云數(shù)據(jù)庫提供了靈活的租賃方式,相較于搭建本地服務(wù)器或租賃云服務(wù)器所需的投入更少,從而大幅降低了試錯(cuò)、研發(fā)和使用的成本。這種靈活的租賃方式實(shí)現(xiàn)了輕重資產(chǎn)的分離合作,使得開發(fā)團(tuán)隊(duì)能夠更加靈活地運(yùn)作,減少不必要的資源投入。
綜上所述,本文設(shè)計(jì)了基于C#語言和云數(shù)據(jù)庫的數(shù)字化火災(zāi)自動(dòng)報(bào)警系統(tǒng)圖生成方法,充分利用數(shù)字化技術(shù)和云數(shù)據(jù)庫的優(yōu)勢,為設(shè)計(jì)工作提供了更高效、可靠的解決方案,工程實(shí)踐表明,這一方法能夠在工程設(shè)計(jì)的數(shù)字化轉(zhuǎn)型中得到應(yīng)用。