楊 擘,梁 軍,常自昌,鞏利軍
(甘肅省長城建設(shè)集團(tuán)有限責(zé)任公司,甘肅 蘭州 730000)
BIM(Building Information Modeling)技術(shù)擁有三維可視、二維出圖、模擬施工、VR 成像等功能[1],在工程管理中可主導(dǎo)成本控制、進(jìn)度控制、質(zhì)量控制、安全管理等工作。組合鋁合金模板組件模塊復(fù)雜,節(jié)點(diǎn)繁多,拼縫嚴(yán)密,組裝精度高,施工中要求兩種技術(shù)特點(diǎn)的結(jié)合,將復(fù)雜的三維結(jié)構(gòu)和信息一體化。將這種重復(fù)模板設(shè)計(jì)工作交由計(jì)算機(jī)編程技術(shù)以替代低效率的人工設(shè)計(jì),以提高鋁模板這種新技術(shù)、新材料的推廣[2]。鋁合金模板型材是建筑行業(yè)較為青睞的材料之一,我國房地產(chǎn)行業(yè)發(fā)展和市場(chǎng)化水平的推進(jìn),組合鋁合金模板需求量加大。組合鋁合金模板具有工藝簡單、拼裝快、質(zhì)量輕、剛度好等優(yōu)點(diǎn),適合多次周轉(zhuǎn)應(yīng)用[3]。廢舊模板可回收利用,有效降低模板損耗,且模板拆除后混凝土表觀質(zhì)量好,節(jié)約工程成本,因而受到施工企業(yè)的青睞。模板尺寸精度對(duì)于鋁合金模板型材的成型質(zhì)量和建筑工程結(jié)構(gòu)質(zhì)量具有決定作用[4]。數(shù)據(jù)分析建筑物鋁合金模板組合型式和數(shù)量對(duì)于生產(chǎn)高質(zhì)量、高精度的組合鋁合金模板的標(biāo)準(zhǔn)性模塊,以達(dá)到在不同工程之間通用,具有互換性的目的[5],具有重大意義。本文綜合鋁合金模板配模技術(shù)、BIM 建模技術(shù)和計(jì)算機(jī)數(shù)據(jù)分析技術(shù)對(duì)數(shù)據(jù)挖掘和模板設(shè)計(jì)進(jìn)行深入研究。
長城·嘉裕苑住宅小區(qū)位于甘肅蘭州七里河馬灘地區(qū),總占地 84 222 m2,建筑面積 333 903 m2,是甘肅省長城建設(shè)集團(tuán)有限責(zé)任公司開發(fā)建設(shè)的綜合教育培訓(xùn)、娛樂設(shè)施、四星級(jí)賓館服務(wù)和社區(qū)的大型綜合體工程,其中包含四星級(jí)賓館和大型 IMAX 巨幕影城各一座,22 棟住宅樓單體工程,建筑層數(shù) 34 層,建筑主體全過程均利用組合鋁合金模板拼裝,提高了施工質(zhì)量和建筑標(biāo)準(zhǔn)化程度。
本項(xiàng)目需要使用多種三維數(shù)據(jù)化平臺(tái)和程序設(shè)計(jì)語言在計(jì)算機(jī)上開發(fā)大而復(fù)雜的三維數(shù)據(jù)模擬系統(tǒng),以避免單一語言形式或單一軟件系統(tǒng)開發(fā)應(yīng)用程序受到的諸多限制。其中本項(xiàng)目需要應(yīng)用的主要軟件和程序語言有如下幾種。
1)Python。腳本運(yùn)行速度遠(yuǎn)大于 Dynamo 本地化節(jié)點(diǎn)運(yùn)行速度,常用的循環(huán)、復(fù)雜條件分支和遞歸等數(shù)據(jù)結(jié)構(gòu)只有通過編程實(shí)現(xiàn),且 Python 程序語言簡潔凝練,可將 Dynamo 多節(jié)點(diǎn)組合通過簡化代碼得以實(shí)現(xiàn)。
2)Revit。作為實(shí)現(xiàn)建筑工程 BIM 設(shè)計(jì)的三維參數(shù)化平臺(tái),Revit 不僅能夠提供傳統(tǒng)二維圖紙,還可以聯(lián)動(dòng)Fuzor、Lumion、Twinmotion 等模擬建造、渲染軟件,提供準(zhǔn)確形象的三維立體模型,通過模擬建造、VR 技術(shù)、三維掃描技術(shù)方便施工人員進(jìn)行質(zhì)量檢查和直觀預(yù)見部件組合問題,提高工程施工效率和準(zhǔn)確度。
3)Dynamo??梢暬脚_(tái)是和 Revit 隨機(jī)裝用,可實(shí)現(xiàn) AutoCAD、Civil3D、Revit、Excel 等軟件和.png、.jpg、.txt 文件進(jìn)行數(shù)據(jù)交互,可基于 Python 編程語言進(jìn)行數(shù)據(jù)整理,為實(shí)現(xiàn)模型批量生成和智能化應(yīng)用提供圖形數(shù)據(jù)應(yīng)用基礎(chǔ)平臺(tái)。
本項(xiàng)目就是利用 Revit 作為三維圖形化展現(xiàn)平臺(tái)和多種渲染軟件、施工模擬軟件、數(shù)字圖形提取接口;Dynamo 作為 Revit 軟件平臺(tái)和 Python 編程語言的數(shù)據(jù)圖形搭接平臺(tái),自身也負(fù)擔(dān)部分程序編輯任務(wù);Python 作為科學(xué)運(yùn)算、數(shù)據(jù)分析和智能化運(yùn)維終端,提高運(yùn)算的速度、穩(wěn)定性和容錯(cuò)性,排除冗余運(yùn)算對(duì)計(jì)算機(jī)內(nèi)存的占用。
本項(xiàng)目基本流程步驟和思路如圖 1 所示。
圖1 鋁合金模板智能配模方法基本實(shí)施步驟
1)通過 Revit 三維軟件建立標(biāo)準(zhǔn)化的建筑物結(jié)構(gòu)模型;
2)在 Dynamo 圖形化編程平臺(tái)中提取模型體型,整合分化建筑物表面;
3)將建筑表面智能區(qū)分為梁側(cè)表面、梁底表面、板底表面、墻面和梁聯(lián)系面;
4)根據(jù) JGJ 386-2016《組合鋁合金模板工程技術(shù)規(guī)程》(以下簡稱“JGJ-386”)利用 Python 編程語言進(jìn)行程序邏輯層運(yùn)算,智能計(jì)算并生成鋁合金墻、梁、板、陰陽角、承接模板,以及鋁模斜撐、立桿、背楞、螺栓等構(gòu)件體型;
5)通過 Dynamo 程序?qū)⒛P腕w型導(dǎo)入 Revit 中進(jìn)行實(shí)體化,并形成 Excel 表格統(tǒng)計(jì)鋁合金模板編號(hào)、型號(hào)和規(guī)格數(shù)量、體積、重量等信息;
6)利用 Dynamo 控制 Revit 批量導(dǎo)出模板和構(gòu)件的二維圖紙,拼裝圖紙等;
7)編輯 Python 程序?qū)?jpg 格式圖紙批量整合進(jìn)入Excel 表格中;
8)將 Revit 鋁模板模型鏈接進(jìn)入 Fuzor 施工模擬軟件進(jìn)行模擬拼裝,導(dǎo)入 Lumion 或 Twinmotion 軟件形成渲染宣傳視頻;
9)通過魯班 BIM5D 平臺(tái)在移動(dòng)端 APP 平臺(tái)形成三維圖紙查閱和質(zhì)量檢查系統(tǒng)。
輸入端主要功能是將 Rev it 建筑模型讀取至Dynamo 圖形平臺(tái),達(dá)到如圖 2 所示整體效果。主要方法是通過 Dynamo 節(jié)點(diǎn)運(yùn)算將建筑模型表面整合,提取建筑梁、板、墻、柱的基本表面信息。由于選擇的建筑物樓層構(gòu)件將全部參與模板搭建運(yùn)算中,其中主要解決的是建筑物圖形整體數(shù)量與計(jì)算機(jī)運(yùn)算效率之間的關(guān)系,對(duì)其中的可行性運(yùn)算策略進(jìn)行分析。
圖2 鋁合金模板單體工程模型和節(jié)點(diǎn)模型
3.1.1 方案 1
方案運(yùn)算的主要任務(wù)是將單棟建筑物包含的所有構(gòu)件全部直接錄入 Dynamo 運(yùn)算平臺(tái)中,參與到 Dynamo 鋁模板智能化配模方案的運(yùn)算中。
方案主要優(yōu)點(diǎn)包括智能化運(yùn)算程度高,一次性就能將構(gòu)筑物全部表面計(jì)算完成;精確度非常高,避免樓層之間或構(gòu)件之間出現(xiàn)構(gòu)件重合等重復(fù)性計(jì)算和操作;重復(fù)運(yùn)算量最小,所有構(gòu)件運(yùn)算只需要通過一次運(yùn)算即可有效劃分。
方案主要缺點(diǎn)包括構(gòu)件運(yùn)算量巨大,特別是對(duì)于高層建筑物,會(huì)造成信息阻塞,方案運(yùn)算難以在短時(shí)間內(nèi)進(jìn)行有效實(shí)施;不必要運(yùn)算過多,特別是對(duì)于標(biāo)準(zhǔn)樓層較多的建筑物,只需要計(jì)算其中一層的配模方案,即可在全棟建筑物適用,造成不必要的時(shí)間成本支出;運(yùn)算方式靈活性差,如根據(jù)施工進(jìn)度難以針對(duì)工程所需鋁合金模板實(shí)際工程量進(jìn)行提取。
3.1.2 方案 2
方案運(yùn)算的主要任務(wù)是將建筑物的構(gòu)件分別在圖形平臺(tái)中采用點(diǎn)選方式單一選擇,進(jìn)行鋁模板配模方案的邏輯運(yùn)算。
方案主要優(yōu)點(diǎn)包括運(yùn)算靈活性高,建筑物可實(shí)現(xiàn)單一構(gòu)件的配模并提取鋁合金模板的運(yùn)算;構(gòu)件運(yùn)算量小,能夠短時(shí)間內(nèi)輸出模板型式數(shù)量等信息;可根據(jù)建筑物配模需求進(jìn)行配模方案的運(yùn)算選擇。
方案主要缺點(diǎn)包括智能化程度低,如果進(jìn)行整體運(yùn)算需要用戶通過人工將每種構(gòu)件全部點(diǎn)選,用戶體驗(yàn)感差;重復(fù)運(yùn)算量高,容易形成構(gòu)件的重復(fù)性運(yùn)算,重復(fù)提取工程量,造成預(yù)算方案偏差;精確度低,構(gòu)件之間界限不明顯會(huì)造成計(jì)算偏差。
3.1.3 方案 3
方案運(yùn)算的主要任務(wù)是通過建筑物單一標(biāo)高樓層分析和選擇,對(duì)鋁模板配模方案進(jìn)行邏輯運(yùn)算。
方案主要特點(diǎn)是樓層之間可以通過明顯界限智能判斷,提高配模方案的精確程度,避免樓層之間界面不清引起的重復(fù)性計(jì)算;智能化運(yùn)算程度中等,只需要通過選擇所需樓層標(biāo)高即可運(yùn)算本層鋁合金模板全部配模方案,特別適合標(biāo)準(zhǔn)層較多的建筑物,用戶體驗(yàn)感較好;構(gòu)件運(yùn)算量中等,單層所需運(yùn)算時(shí)間對(duì)設(shè)備的占用不會(huì)過長,模板配備方案可以在方案允許時(shí)段內(nèi)形成,及時(shí)提供各項(xiàng)信息形成模板型式數(shù)量的 Excel 配備表格;方案主要提取單層的鋁合金模板配備信息,可以通過對(duì)選擇構(gòu)件的判斷形成單一構(gòu)件的配模方案。
根據(jù)以上方案判斷分析選擇最終確定方案 3 作為輸入端鋁合金模板配模策略,并根據(jù)此策略分解合并構(gòu)筑物表面信息。
整體輸入層設(shè)計(jì)思想是通過設(shè)置條件將 Revit 中圖形文件輸入的梁、板、柱、墻 Solid 形體讀取輸入,分析形體組成,通過邏輯運(yùn)算實(shí)現(xiàn)框架梁側(cè)面、框架梁底面、樓板底面、墻面和框架聯(lián)系面的智能分析和辨認(rèn)歸類工作。輸入端基本由圖形信息讀取控制模塊、圖形信息分析模塊和圖形邏輯實(shí)現(xiàn)模塊組成,如整體模塊結(jié)構(gòu)如圖 3 所示。
3.2.1 圖形信息讀取控制模塊
通過建筑模型構(gòu)件分層參與鋁模板配板方案運(yùn)算方案分析,需要利用目標(biāo)分析層標(biāo)高(Level)控制引入本層分析圖形信息,并利用邏輯運(yùn)算自動(dòng)分析并引入底層限制圖形信息,便于對(duì)目標(biāo)層圖元分析界面條件限制。
圖3 輸入端設(shè)計(jì)構(gòu)成以及鋁合金模板附著面的生成
3.2.2 圖形信息分析模塊
通過合并輸入的圖形信息(Union 模塊),將暗柱、端柱等零落的豎向構(gòu)件全部與臨近墻體構(gòu)件結(jié)合成整體,分析并輸出所有完整的構(gòu)成面,以便于邏輯運(yùn)算層面進(jìn)一步分析。
3.2.3 圖形邏輯實(shí)現(xiàn)模塊
圖形邏輯實(shí)現(xiàn)模塊是輸入層核心部分,需要將分析模塊的構(gòu)成面分解實(shí)現(xiàn)為各分類組成面的分組,其中重點(diǎn)解決問題框架梁底面、側(cè)面和聯(lián)系面的分解;板面不涉及邏輯運(yùn)算上表面的排除;綜合豎向構(gòu)件合并墻體同向表面,并排除墻體不涉及邏輯運(yùn)算的上下表面。然后將運(yùn)算結(jié)果輸出到邏輯運(yùn)算層分析操作。在 Excel 數(shù)據(jù)表中自動(dòng)生成各組成面數(shù)據(jù),以便進(jìn)一步地分析和應(yīng)用(見表 1)。
表1 樓板面邏輯分隔參數(shù)數(shù)據(jù)表(節(jié)選)
邏輯運(yùn)算層需要將 JGJ 386 節(jié)點(diǎn)要求完整映射到程序規(guī)則中,根據(jù)技術(shù)規(guī)程要求的標(biāo)準(zhǔn)配模尺寸和配套模板尺寸,將基本的墻、梁、板面通過計(jì)算智能擇取最優(yōu)模板配型方案,分解為面板附著面、陰陽角附著線(面)、鋁梁附著面、早拆頭附著面等,通過附著面(線)提供的位置尺寸等信息形成面板和組成構(gòu)件實(shí)體模型。邏輯層屬于整體計(jì)算程序核心部分,根據(jù)節(jié)點(diǎn)功能分析,主要由型材附著面(線)節(jié)點(diǎn)組和依附構(gòu)件節(jié)點(diǎn)組兩部分組成(見圖 4)。
圖4 Dynamo 邏輯層和 Python 程序設(shè)計(jì)構(gòu)成分析
基于 Dynamo 圖形平臺(tái),主要有兩種可用編譯模塊,code block 和 Pythonscript。本項(xiàng)目前期曾使用 code block 對(duì)核心程序進(jìn)行編輯,對(duì)程序邏輯實(shí)現(xiàn)還存在很大差距,相對(duì)于 Python 編譯存在以下優(yōu)缺點(diǎn)。
1)code block 相對(duì)于 Python 學(xué)習(xí)時(shí)間成本低,可以基于 Dynamo 圖形平臺(tái)直接調(diào)用節(jié)點(diǎn)模塊進(jìn)行圖形計(jì)算,Dynamo 節(jié)點(diǎn)模塊較為豐富,基本滿足鋁合金模板計(jì)算要求;Python 代表著簡單主義思想的編譯語言,在編程語言中較為簡單易學(xué),但是作為高級(jí)語言熟悉掌握并進(jìn)入應(yīng)用領(lǐng)域的過程中仍然需要大量閱讀和練習(xí),對(duì)操作人員的邏輯性思維要求較高。
2)Pythonscript 可以接入外部節(jié)點(diǎn)庫,利用內(nèi)置math 庫替代 Dynamo 中的數(shù)學(xué)計(jì)算節(jié)點(diǎn),List、Tuple、Set、Dictionary 應(yīng)用可以實(shí)現(xiàn)靈活而豐富的使用方式。使用已有的 Python 資源庫可以實(shí)現(xiàn)比較高級(jí)的函數(shù)功能,比如正則表達(dá)式可以解析復(fù)雜字符串,這些都是對(duì)DesignScript 功能的巨大擴(kuò)充。
3)code block 在確認(rèn)圖形關(guān)聯(lián)關(guān)系中需要大量矩陣運(yùn)算。運(yùn)算量為相關(guān)聯(lián)圖形組數(shù)量的乘積,多次應(yīng)用后運(yùn)算量成倍增長,造成內(nèi)存占用量大,程序運(yùn)行緩慢。利用 PythonScript 節(jié)點(diǎn)可以通過設(shè)置參數(shù)條件將符合條件選項(xiàng)排除出列表,避免冗余運(yùn)算,縮短運(yùn)算時(shí)間。
4)PythonScript 中的條件語句 if、else,循環(huán)語句while、for in,異常處理語句 try、except、finally 等在保證程序連續(xù)性正常執(zhí)行,符合條件篩選的元素運(yùn)算,以及迭代運(yùn)算都有 code block 無法替代的功能。雖然Dynamo 本身也有 if、while 等節(jié)點(diǎn),但是使用條件單一,受到使用語言環(huán)境限制比較大,不能很好地發(fā)揮自身功用。
5)Python 作為人工智能的首選編程語言,在所有編程類語言中最大優(yōu)勢(shì)是其簡潔優(yōu)雅和極佳的可讀性,是一種跨平臺(tái)的語言,可以使用解釋方式直接調(diào)用 API 取得 Revit 或者 CAD 庫,不需要編譯代碼就可以批量運(yùn)行 Revit 或者 CAD 中的構(gòu)件元素或者命令,讓用戶體驗(yàn)到更多的應(yīng)用功能。
6)Python 可以實(shí)現(xiàn)非循環(huán)神經(jīng)元集合建模,通過輸入層(input layer)將人類的讀圖識(shí)圖中大腦的思維過程映射至計(jì)算函數(shù)層(hidden layer),然后通過輸出層(output layer)實(shí)現(xiàn)鋁合金模板配模運(yùn)算過程的全程智能化。
通過以上的比較和實(shí)際應(yīng)用,本項(xiàng)目第二次修改過程中全部采用了 Python 語言對(duì)邏輯運(yùn)算層全部重構(gòu),將 JGJ 386 標(biāo)準(zhǔn)規(guī)范數(shù)據(jù)映射至運(yùn)算程序中,通過計(jì)算程序智能優(yōu)選最佳配模方案,大幅度提高計(jì)算精確度和計(jì)算效率,擴(kuò)展人工建模難以實(shí)現(xiàn)的功能,為項(xiàng)目功能的實(shí)現(xiàn)取得了良好的表觀效果(見圖 5)。
圖5 規(guī)范參數(shù)數(shù)據(jù)組和程序組模塊編輯
鋁合金模板配模運(yùn)算中最重要的功能就是將JGJ 386 中的有關(guān)樓板、梁底、墻柱附著模板規(guī)格與孔位規(guī)定的計(jì)算規(guī)則映射到梁、板、墻、柱整體外表面中來;然后從中分離和辨析出陰角和陽角模板、梁和板底的早拆頭、連接角模等等附著面和線的設(shè)置;同時(shí)需要解決面層法向量,線段垂直向量等問題,便于構(gòu)件節(jié)點(diǎn)附著時(shí)所有構(gòu)件平面均向內(nèi),肋板層均向外的操作;通過設(shè)置邏輯層的實(shí)現(xiàn)目標(biāo)制定邏輯層生成的步驟。
邏輯層主要由功能函數(shù)、判斷函數(shù)、迭代遞歸函數(shù)和實(shí)現(xiàn)函數(shù)組成。由于 PythonScript 的使用條件限制,還暫未實(shí)現(xiàn)面向?qū)ο蟮念悇e設(shè)置。
1)功能函數(shù)。即為實(shí)現(xiàn)目標(biāo)函數(shù)中某一小段的函數(shù),比如拍平函數(shù),可以將多維列表轉(zhuǎn)化為一維列表進(jìn)行計(jì)算使用,簡化深度列表復(fù)雜判斷與計(jì)算(見圖 6)。
圖6 拍平功能函數(shù)實(shí)現(xiàn)代碼
2)條件判斷函數(shù)。利用條件判斷實(shí)現(xiàn)數(shù)組與列表的分離,排除功能以外數(shù)組的冗余計(jì)算。通過條件函數(shù)可以通過計(jì)算規(guī)則實(shí)現(xiàn)附著平面進(jìn)行粗分、判斷分隔面的方向,判斷平面邊線是否為陰陽角、判斷鋁梁面的分隔位置、判斷大面中拐點(diǎn)的位置和分隔方向、判斷底角模板和承接模板的分隔面以及根據(jù)模板型號(hào)判斷螺栓孔排布位置。
3)迭代遞歸函數(shù)。對(duì)給定的 list 或 t uple,通過 for 和while 循環(huán)函數(shù)以及函數(shù)調(diào)用自身的循環(huán)實(shí)現(xiàn)數(shù)據(jù)重組和細(xì)部分割。這種函數(shù)通常和條件判斷函數(shù)配合應(yīng)用在模板面細(xì)致分離上,通過迭代和遞歸函數(shù)的條件設(shè)置判斷,函數(shù)模式定義簡單,邏輯清晰,避免數(shù)據(jù)的重復(fù)調(diào)離和復(fù)用,且邏輯層次更加嚴(yán)謹(jǐn)。
4)實(shí)現(xiàn)函數(shù)。通過以上函數(shù)的組合調(diào)用,輸出列表(list)、數(shù)組(tuple)、字典(dictionary)的組合結(jié)果,實(shí)現(xiàn)全段函數(shù)功能輸出,將全部部件信息通過表格(見表 2),二維或三維圖形等方式進(jìn)行匯總輸出。
表2 樓板底面模板參數(shù)表(節(jié)選)
通過 BIM 技術(shù)對(duì)組合鋁合金模板體系智能配模方法研究及長城嘉峪苑項(xiàng)目實(shí)踐應(yīng)用,解決了嘉峪苑小區(qū)高層住宅樓鋁合金模板的配置,適用于樓層較為標(biāo)準(zhǔn)的框架剪力墻結(jié)構(gòu),實(shí)現(xiàn)了建筑技術(shù)、建模技術(shù)、智能技術(shù)的 BIM 深度應(yīng)用,實(shí)現(xiàn) BIM 技術(shù)項(xiàng)目高效率、智能化實(shí)施。有效結(jié)合理論知識(shí)與實(shí)踐應(yīng)用,將 BIM 技術(shù)導(dǎo)入深層次應(yīng)用,且通過每一個(gè)技術(shù)應(yīng)用點(diǎn)的研究和標(biāo)準(zhǔn)勘定,形成 BIM 技術(shù)在實(shí)際項(xiàng)目全過程應(yīng)用,實(shí)現(xiàn)現(xiàn)場(chǎng)精細(xì)化管理和建筑工藝可裝配化技術(shù)含量的提升。尚未對(duì)異形建筑結(jié)構(gòu)主體展開應(yīng)用研究,應(yīng)用對(duì)象主要是建筑施工建設(shè)階段,對(duì)于組合鋁合金模板在設(shè)計(jì)加工階段的要求考慮尚有不足。所用鋁合金模板體型數(shù)據(jù)標(biāo)準(zhǔn)主要依據(jù) JGJ 386,程序初步設(shè)計(jì)主要考慮的是單棟建筑工程,目的是加強(qiáng)單棟建筑的組合鋁合金模板周轉(zhuǎn)次數(shù)且嚴(yán)格符合標(biāo)準(zhǔn)規(guī)范的規(guī)定,存在小型模板過多增加制作安裝工程量的問題。如果將整個(gè)小區(qū)或者后續(xù)工程作為整體鋁合金模板的周轉(zhuǎn)范疇統(tǒng)一考慮,可以加大模板的體型參數(shù),從而簡化模板設(shè)計(jì)、制作和安裝的施工流程,減少加固構(gòu)件的使用量,更好地輔助和推動(dòng)現(xiàn)場(chǎng)工程進(jìn)度、澆筑質(zhì)量、施工成本和施工安全的加強(qiáng)。Q