滿延磊 張其林 常治國(guó)
(1. 同濟(jì)大學(xué)土木工程學(xué)院,上海 200092;2. 上海同磊土木工程技術(shù)有限公司,上海 200433)
BIM由于其優(yōu)良的特性,自誕生之日起就受到了極大的關(guān)注。特別是隨著計(jì)算機(jī)的發(fā)展,近幾年 BIM應(yīng)用更是取得了長(zhǎng)足的進(jìn)步[1-2]。在電力行業(yè),由于變電構(gòu)架的標(biāo)準(zhǔn)化程度更高,BIM應(yīng)用也更加深入[3]。
在變電構(gòu)架中,一個(gè)完整的BIM模型包含結(jié)構(gòu)、建筑、給排水、暖通等多個(gè)專(zhuān)業(yè)的內(nèi)容。由于專(zhuān)業(yè)跨度大,目前在電力行業(yè),通常采用的BIM工作流程是不同專(zhuān)業(yè)在不同平臺(tái)設(shè)計(jì),然后在Revit中進(jìn)行整體裝配[4]。
本文與山西電力勘測(cè)設(shè)計(jì)院合作,深入研究了結(jié)構(gòu)模型向Revit平臺(tái)的數(shù)據(jù)轉(zhuǎn)換。山西電力勘測(cè)設(shè)計(jì)院采用3D3S軟件進(jìn)行結(jié)構(gòu)設(shè)計(jì)[5],需要將結(jié)構(gòu)模型中的三維實(shí)體信息、塔段屬性、塔段包含的桿件等信息導(dǎo)入到Revit中。
經(jīng)實(shí)際調(diào)研發(fā)現(xiàn),通過(guò)IFC導(dǎo)入Revit是較常用的方式,但是目前在大多數(shù)研究中導(dǎo)入到Revit的信息僅限三維實(shí)體且導(dǎo)入方式單一[6-8]。
基于此,本文深入研究了 IFC的數(shù)據(jù)轉(zhuǎn)換,比較了不同的導(dǎo)入方式的優(yōu)缺點(diǎn),實(shí)現(xiàn)了三維實(shí)體信息、塔段屬性、塔段包含的桿件等信息向Revit的轉(zhuǎn)換,實(shí)現(xiàn)了變電構(gòu)架的多專(zhuān)業(yè)協(xié)同。
在IFC中,三維實(shí)體的形狀由IfcRepresentationItem進(jìn)行表示,IfcRepre-sentationItem是多種形狀的父類(lèi)[9]。對(duì)于三維幾何實(shí)體,常用的表示方式有兩種:一種方式是拉伸等方式形成的實(shí)體,用IfcExtrudedAreaSolid來(lái)表示;另外一種方式是通過(guò)三角面片進(jìn)行擬合,用IfcFacetedBrep表示。IfcExtrudedAreaSolid與Ifc Faceted Brep均為IfcRepresentationItem的子類(lèi)。
圖1所示為兩種表示方式在Revit中的顯示效果,圖1(a)為拉伸實(shí)體表示,圖1(b)為三角面片表示,從圖中可以看出,在Revit中兩種方式顯示上基本無(wú)差別,曲面顯示時(shí)由于三角面片對(duì)曲面進(jìn)行了擬合,顯示精度略低。
經(jīng)實(shí)際使用比較,此兩種有各自的優(yōu)點(diǎn)和缺點(diǎn),對(duì)比如表1所示。
拉伸實(shí)體的優(yōu)點(diǎn)是數(shù)據(jù)量小,生成的IFC文件大小一般在10M以下,模型打開(kāi)速度快,Revit打開(kāi)時(shí)一般在10秒以內(nèi),同時(shí)模型在Revit中能夠進(jìn)行編輯;拉伸實(shí)體的缺點(diǎn)為不同的實(shí)體的截面不一致,拉伸方式不一致,編程工作量大,同時(shí)對(duì)于已經(jīng)切割過(guò)的桿件,無(wú)法用拉伸實(shí)體表示。
三角面片表示法的優(yōu)點(diǎn)為任意實(shí)體都能表示,表示方式統(tǒng)一,編程工作量??;缺點(diǎn)是數(shù)據(jù)量大,生成的IFC文件經(jīng)常在1G以上,模型打開(kāi)慢,Revit打開(kāi)時(shí)一般在3分鐘以上。
秀麗的女士說(shuō):“當(dāng)然可以。我們這里經(jīng)常住進(jìn)艾滋病人,當(dāng)他們還沒(méi)有喪失最后的活動(dòng)能力的時(shí)候,他們很愿意坐在這張椅子上看看風(fēng)景?!?/p>

表1 拉伸實(shí)體與三角面片擬合對(duì)比
因此本文采用折中的方法,對(duì)于非切割實(shí)體采用拉伸實(shí)體表示,對(duì)于切割實(shí)體用三角面片表示。具體流程如圖2所示。

圖2 三維實(shí)體轉(zhuǎn)換流程
在變電構(gòu)架中,桿件以塔段為單位形成組,以組為單位定義屬性。在轉(zhuǎn)成IFC文件時(shí),組的信息需要保留。在 IFC中,組有如下常用的三種表達(dá)方式:IfcGroup, IfcElementAssembly, IfcMappedItem,本文對(duì)此三種方式進(jìn)行了研究與比較。
(1)IfcGroup
IfcGroup表示集合。IfcGroup從IfcObject派生,而并非從IfcProuct派生,因此IfcGroup是一個(gè)抽象的對(duì)象,用來(lái)表示邏輯上的集合關(guān)系。本文用Revit對(duì)轉(zhuǎn)換效果進(jìn)行了測(cè)試,發(fā)現(xiàn)Revit在導(dǎo)入IFC時(shí)并不能識(shí)別IfcGroup的信息,因此導(dǎo)入到 Revit中時(shí)組別信息丟失。在Revit中的顯示如圖3(a)所示,三根桿件同屬于一個(gè)IfcGroup,但是在Revit中并沒(méi)有顯示出來(lái):

圖3 三種類(lèi)在Revit中的表現(xiàn)
(2)IfcElementAssembly
IfcElementAssembly表示部件,一個(gè)部件可能由多個(gè)小零件組成,因此IfcElementAssembly也表示集合關(guān)系。與 IfcGroup不同的是,IfcElementAssembly從IfcProduct派生,因此IfcElementAssembly是一個(gè)實(shí)體。用Revit對(duì)用IfcElementAssem-bly導(dǎo)出的IFC文件進(jìn)行測(cè)試,測(cè)試結(jié)果表明Revit支持IfcElementAssembly的導(dǎo)入,同一個(gè)組的實(shí)體在 Revit中是一個(gè)整體,但是Revit對(duì)IfcElementAssembly的支持存在缺陷,主要表現(xiàn)在以下兩個(gè)方面:a)Revit表現(xiàn)不穩(wěn)定,組別信息并不能每次都能識(shí)別出來(lái),多數(shù)情況下同一個(gè)組的實(shí)體在Revit中仍然不是一個(gè)整體,同時(shí)有概率性的組別信息識(shí)別不全,如圖 3(b)所示,三根桿件屬于同一個(gè)IfcElementAssembly,但是在Revit中只顯示兩個(gè)桿件屬于同一組,這意味著組別信息出錯(cuò);b)無(wú)法正確識(shí)別屬性。給IfcElementAssembly賦予的屬性在Revit中無(wú)法識(shí)別,Revit中顯示的IfcElement-Assembly的屬性為其某個(gè)子實(shí)體的屬性。

圖4 塔段的轉(zhuǎn)換流程
(3)IfcMappedItem
IfcMappedItem表示圖塊,圖塊中可以包含若干子實(shí)體,因此IfcMappedItem也可以表示集合關(guān)系。經(jīng)過(guò)實(shí)際測(cè)試,Revit支持IfcMappedItem的表示法,在Revit中同一組的實(shí)體均作為一個(gè)整體出現(xiàn),且能正確的轉(zhuǎn)換屬性,Revit中的表現(xiàn)如圖3(c)所示。
經(jīng)過(guò)上述的比較分析,本系統(tǒng)最終選擇了IfcMappedItem的方式。整個(gè)流程如圖4所示,一個(gè)塔段對(duì)應(yīng)一個(gè) IfcBuildingElementProxy,提取塔段中的所有桿件,塔段中的所有桿件通過(guò)IfcMappedItem生成一個(gè) IfcProductDefi-nitionShape,將 IfcProduct Definition Shape賦值給IfcBuilding Element Proxy,這樣完成將所有的桿件形狀作為一個(gè)圖塊顯示,最后根據(jù)塔段的類(lèi)型給IfcBuildingElementProxy附加不同的屬性:
需要注意的是,使用IfcMappedItem時(shí),組內(nèi)的實(shí)體是單純的幾何實(shí)體,而不具有物理意義,因此組內(nèi)的幾何實(shí)體無(wú)法附加自定義屬性。但是對(duì)于變電構(gòu)架來(lái)說(shuō),屬性均是以組為單位定義的,因此通過(guò)IfcMappedItem轉(zhuǎn)換可以接受。
經(jīng)實(shí)際測(cè)試,通過(guò)IfcMappedItem表示的實(shí)體在導(dǎo)入到Revit之后為一個(gè)族,族的形狀由多個(gè)幾何實(shí)體形成的幾何圖塊來(lái)表示,此時(shí)在 Revit中無(wú)法捕捉,而Revit并沒(méi)有將坐標(biāo)系開(kāi)放給用戶,因此導(dǎo)入到 Revit中的結(jié)構(gòu)模型無(wú)法與其他專(zhuān)業(yè)的模型進(jìn)行精確的組裝。
本文對(duì)此進(jìn)行了特別的處理。當(dāng)導(dǎo)出到IFC時(shí),將坐標(biāo)原點(diǎn)也導(dǎo)出到IFC中。IFC中沒(méi)有表示“點(diǎn)”的實(shí)體,本文采用球來(lái)表示坐標(biāo)原點(diǎn),同時(shí) IFC中的單純的幾何實(shí)體沒(méi)法加入到模型中,必須定義一個(gè)有實(shí)際意義的單元,然后將幾何實(shí)體作為形狀屬性附加到單元上。本文定義了IfcCivilElement表示此具有實(shí)際意義的單元,通過(guò) IfcSphere定義幾何形狀,然后將IfcSphere作為屬性附加到IfcCivilElement中,生成的用來(lái)定位的坐標(biāo)球如圖5左下角所示。

圖5 用于組裝定位的球體(左下角)
在進(jìn)行模型組裝時(shí),在Revit中打開(kāi)中心捕捉可以捕捉到球心,通過(guò)坐標(biāo)原點(diǎn)反算出需要移動(dòng)的距離,從而將模型進(jìn)行精確組裝。
本研究與山西電力勘測(cè)設(shè)計(jì)院合作進(jìn)行。圖6是3D3S中設(shè)計(jì)的750kV格構(gòu)式變電構(gòu)架,圖中左邊對(duì)話框中是塔段信息。

圖6 結(jié)構(gòu)模型在3D3S中的顯示
圖7是通過(guò)IFC導(dǎo)入到Revit中后與其他專(zhuān)業(yè)的模型組合,在Revit中塔段為一個(gè)整體,且以組為單位轉(zhuǎn)換了屬性。

圖7 結(jié)構(gòu)、建筑、給排水、暖通總圖

圖8 塔段在Revit中的屬性顯示
IFC的目的是提供一種通用的文件格式供各行各業(yè)共享數(shù)據(jù)。但是經(jīng)過(guò)實(shí)際調(diào)研發(fā)現(xiàn)市面上軟件對(duì)IFC標(biāo)準(zhǔn)支持力度仍有待提高[10;11],主要表現(xiàn)在以下兩方面:
(1)軟件支持的IFC實(shí)體不全面。比如前文中提到的IfcGroup以及IfcElementAssembly,Revit支持這兩種實(shí)體的導(dǎo)出,但是不支持導(dǎo)入。
(2) IFC標(biāo)準(zhǔn)包含的內(nèi)容非常廣泛,常常在細(xì)節(jié)部分存在多義性,不同的軟件對(duì)IFC標(biāo)準(zhǔn)的理解不同也可能導(dǎo)致數(shù)據(jù)共享失敗。比如在IFC官方文檔中,IfcShapeRepresentation的屬性 Represen-tationIdentifier以及RepresentationType標(biāo)識(shí)為可選屬性(OPTIONAL),但是在實(shí)際測(cè)試中發(fā)現(xiàn),此兩個(gè)屬性不賦值會(huì)導(dǎo)致Revit無(wú)法讀取實(shí)體形狀。另外在 IFC官方文檔中,IfcParameterizedProfileDef中的 Position屬性可以不設(shè)置,不設(shè)置表示不對(duì)截面進(jìn)行平移或者旋轉(zhuǎn)操作,但是在導(dǎo)入 Revit時(shí) Position不設(shè)置的話會(huì)導(dǎo)入失敗。DDS-CAD是一款支持打開(kāi)IFC文件的小軟件,此款軟件無(wú)上述問(wèn)題。
由于以上兩個(gè)原因,單純的通過(guò) IFC來(lái)交換數(shù)據(jù)很可能達(dá)不到實(shí)際的要求。在本系統(tǒng)中,通過(guò)IfcMappedItem的導(dǎo)入方式可以滿足工程的實(shí)際需求。若有其他需求,比如要求塔段是一個(gè)整體,同時(shí)塔段內(nèi)部的桿件也需要附加屬性,由于Revit的導(dǎo)入支持的力度不夠,目前單純通過(guò)IFC文件交換數(shù)據(jù)還很難實(shí)現(xiàn)。這時(shí)就需要在Revit中開(kāi)發(fā)插件,對(duì)其IFC導(dǎo)入功能進(jìn)行擴(kuò)充。
本文針對(duì)當(dāng)前主流的變電構(gòu)架BIM工作流程,對(duì)變電構(gòu)架結(jié)構(gòu)模型通過(guò)IFC文件向Revit轉(zhuǎn)換做了深入的研究,主要研究?jī)?nèi)容如下:
(1)分析對(duì)比了在IFC中用拉伸實(shí)體以及三角面片表示三維實(shí)體的優(yōu)缺點(diǎn),最終確定了在變電構(gòu)架中采用二者結(jié)合的方式;
(2)嘗試了IFC中三種組的表達(dá)方式,最終確認(rèn)Revit不支持 IfcGroup以及 IfcElementAssembly的導(dǎo)入,但是Revit支持IfcMappedItem的表達(dá)方式,雖然IfcMappedItem能夠存儲(chǔ)的信息比前二者少,但是基本能夠滿足本項(xiàng)目的需求;
(3)針對(duì)導(dǎo)入的IfcMappedItem無(wú)法在Revit捕捉而導(dǎo)致無(wú)法與其他專(zhuān)業(yè)的模型進(jìn)行精確裝配的問(wèn)題,本文設(shè)計(jì)了增加坐標(biāo)原點(diǎn)進(jìn)行輔助定位的方式,實(shí)現(xiàn)了多專(zhuān)業(yè)模型的精確裝配;
(4)指出了目前通過(guò)IFC進(jìn)行數(shù)據(jù)交換時(shí)存在的缺陷,通過(guò)IFC進(jìn)行無(wú)損的數(shù)據(jù)交換仍需要進(jìn)行第三方輔助開(kāi)發(fā)。