亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Civil 3D的排水管網(wǎng)輔助建模二次開發(fā)

        2021-10-13 11:05:58李在鐘
        土木建筑工程信息技術(shù) 2021年4期
        關(guān)鍵詞:檢查井排水管二次開發(fā)

        畢 晨 李在鐘

        (林同棪國際工程咨詢(中國)有限公司,重慶 401121)

        引言

        隨著BIM技術(shù)在國內(nèi)的快速發(fā)展及應(yīng)用,越來越多的土木工程項目采用了Autodesk Civil 3D平臺進行設(shè)計、建模[1-3]。Civil 3D軟件中集成的管網(wǎng)模塊,提供了一系列功能,可用于市政排水管網(wǎng)的建模、修改及分析等[4]; 在Civil 3D平臺下,排水管網(wǎng)能夠非常方便地與市政道路、隧道、強弱電管網(wǎng)等專業(yè)協(xié)同設(shè)計,多專業(yè)間數(shù)據(jù)可共享,極大提升了項目設(shè)計效率和設(shè)計精度[5]。

        然而,由于Civil 3D是一款面向多專業(yè)的設(shè)計軟件,且功能主要偏向于場地處理和路線設(shè)計等,軟件功能難以完全覆蓋到各個附屬專業(yè)的建模需求; 就管網(wǎng)模塊而言,Civil 3D沒有面向國內(nèi)市政排水管網(wǎng)設(shè)計場景和設(shè)計習(xí)慣進行深度優(yōu)化,部分功能缺失或不完善,導(dǎo)致排水設(shè)計人員的建模效率低,推廣正向設(shè)計需付出較高的代價。

        為提高Civil 3D市政排水管網(wǎng)設(shè)計的效率,須對軟件的管網(wǎng)設(shè)計模塊進行二次開發(fā),提高軟件的易用性,為排水正向設(shè)計的推廣做好鋪墊。

        同樣作為BIM軟件,Revit二次開發(fā)技術(shù)在國內(nèi)已經(jīng)得到了廣泛的研究與應(yīng)用[6-8]; 相比之下,Civil 3D二次開發(fā)技術(shù)在工程中的應(yīng)用案例較少,且主要集中在場地、路線領(lǐng)域[9-11],至于其管網(wǎng)模塊二次開發(fā)的研究與應(yīng)用,則較為鮮見。故本研究亦希望通過對一系列具體功能的二次開發(fā),來探討Civil 3D重力管網(wǎng)模塊二次開發(fā)的主要流程和若干技術(shù)細節(jié)。

        1 二次開發(fā)流程

        本研究基于Civil 3D的.NET API(.NET Application Programming Interface,即.NET框架下的應(yīng)用程序編程接口),它為Civil 3D的二次開發(fā)提供了一系列功能接口,能實現(xiàn)絕大部分的軟件操作; 本研究使用C#編程語言進行二次開發(fā),二次開發(fā)環(huán)境見表1。本研究的開發(fā)流程如下所述。

        表1 二次開發(fā)環(huán)境

        1.1 新建開發(fā)項目

        打開Visual Studio 2017軟件,新建名稱為“CivilNetworkTools”的項目,編程語言選擇visual C#,項目類型選擇“類庫(.NET Framework)”,項目框架選擇“.NET Framework 4.7.2”。

        1.2 添加外部引用

        進行二次開發(fā)前,應(yīng)根據(jù)開發(fā)的需要,向項目中添加程序必要的引用。本二次開發(fā)項目需要的引用包括AutoCAD和Civil 3D的.NET API庫和COM(Component Object Model,組件對象模型)API庫[12]、定制AutoCAD功能區(qū)選項卡界面的庫等。

        (1).NET API庫

        引用Civil 3D安裝目錄下的acdbmgd.dll、acmgd.dll、accoremgd.dll、AecBaseMgd.dll以及AeccDbMgd.dll等庫文件,上述文件是進行Civil 3D二次開發(fā)最基礎(chǔ)的庫文件。

        (2)COM API庫

        引用Civil 3D安裝目錄下的Autodesk.AutoCAD.Interop.dll、Autodesk.AutoCAD.Interop.Common.dll、Autodesk.AECC.Interop.UiPipe.dll以及Autodesk.AECC.Interop.Pipe.dll等庫文件; Civil 3D官方推薦使用.NET API,然而.NET API并未涵蓋所有Civil 3D功能,因此開發(fā)過程中可能會使用到僅在COM API中開放的功能。

        (3)用戶界面相關(guān)的庫

        引用Civil 3D安裝目錄下的AcWindows.dll、AdWindows.dll等庫文件,用于為二次開發(fā)的功能定制AutoCAD功能區(qū)界面。

        1.3 程序的編寫與生成

        在項目中新建若干C#類文件,于各個文件起始部分引入所需的命名空間,而后進行編程; 完成預(yù)期功能后,使用Visual Studio“生成解決方案”功能以生成最終程序文件,而后于項目文件目錄下,獲取最終生成的目標(biāo)文件。根據(jù)先前設(shè)置,本項目生成了動態(tài)鏈接庫(dll)文件。

        1.4 程序的加載

        啟動Civil 3D軟件,鍵入加載.NET程序集命令“netload”,加載先前生成的dll文件; 加載成功后,鍵入二次開發(fā)的“NetworkToolsRibbonTab”命令,加載程序的圖形用戶界面(GUI),供用戶調(diào)用二次開發(fā)功能。用戶界面采用了AutoCAD的功能區(qū)(Ribbon)選項卡界面,如圖1所示; 功能區(qū)是當(dāng)下眾多CAD二次開發(fā)軟件的界面選擇,相比于傳統(tǒng)菜單欄、工具欄,它具有流程清晰、分類明確、界面美觀等優(yōu)點[13]。

        圖1 二次開發(fā)用戶圖形界面

        2 管網(wǎng).NET API類接口概述

        利用.NET API二次開發(fā)時,最常用到的類顯然是管網(wǎng)相關(guān)類以及管網(wǎng)零件族相關(guān)類接口,如管網(wǎng)類Network、結(jié)構(gòu)類(含檢查井)Structure、管道類Pipe以及零件族類PartFamily和零件尺寸類PartSize等[14],它們之間的層級邏輯關(guān)系如圖2所示。

        圖2 管網(wǎng)對象層級關(guān)系圖

        通過當(dāng)前活動文檔(ActiveDocument)的GetPipeNetworkIds()方法,可獲取圖形中所有管網(wǎng)(Network)的Id集合(ObjectIdCollection),從而獲取所有管網(wǎng)實例; 類似地,通過單個管網(wǎng)可獲取該管網(wǎng)的所有結(jié)構(gòu)(Structure)和管道(Pipe); 通過單個結(jié)構(gòu)和管道,即可獲取或設(shè)置他們各自的屬性(如圖2中提及的名稱、位置、坐標(biāo)等屬性)。二次開發(fā)大部分的功能即是通過上述層級關(guān)系,對管網(wǎng)、結(jié)構(gòu)以及管道的數(shù)據(jù)進行讀寫。

        此外,通過當(dāng)前活動文檔,亦可直接獲取圖形中所有樣式(Styles),其中包括管網(wǎng)零件列表的集合(PartsListSet); 通過單個零件列表(PartsList),可以獲取該列表所有零件族(PartFamily),而單個零件族下又有不同的尺寸(PartSize)實例。二次開發(fā)中關(guān)于獲取或設(shè)置管網(wǎng)零件類型的功能即是通過上述層級關(guān)系實現(xiàn)的。

        3 排水管網(wǎng)輔助建模功能的二次開發(fā)

        3.1 預(yù)期開發(fā)功能

        表2 二次開發(fā)功能一覽

        根據(jù)項目中使用Civil 3D軟件進行排水管網(wǎng)設(shè)計的體會和經(jīng)驗,本研究整理了建模過程中耗時較多的操作,并據(jù)此確定了需要二次開發(fā)的具體功能,主要包括管網(wǎng)圖元的參數(shù)化創(chuàng)建、排水管網(wǎng)平縱的幾何參數(shù)及非幾何參數(shù)批量修改、排水管網(wǎng)圖元快速查找以及管網(wǎng)數(shù)據(jù)轉(zhuǎn)換等功能。表2為本研究確定的二次開發(fā)功能。

        3.2 功能實現(xiàn)過程

        面對待開發(fā)的一系列功能,應(yīng)當(dāng)理清各個功能的邏輯思路,再利用合適的API逐一進行實現(xiàn)。對于某一功能而言,首先要分析其對應(yīng)實際設(shè)計中的某一系列建模操作,而后將其抽象為流程圖,再根據(jù)流程圖進行具體的編程設(shè)計,最終實現(xiàn)預(yù)期功能。以下試舉幾個典型實例,說明本研究的功能實現(xiàn)過程。

        (1)實例一:“布置雨水口”功能

        建模時,布置雨水口的實際操作大致分為三步:①選定要連接雨水口的檢查井;②選定布置雨水口的道路邊線;③根據(jù)檢查井及邊線的幾何關(guān)系,布置雨水口和連接管; 將其抽象為流程圖,則如圖3所示; 根據(jù)流程圖步驟進行編程,其代碼框架如圖4所示(連接管參數(shù)選用工程中最常用的參數(shù),即管徑d300、坡度i=0.003、起點覆土1.0m; 雨水口地面高程參考道路曲面對應(yīng)高程)。通過該功能,可批量布置雨水口及其連接管。

        圖3 “布置雨水口”功能流程圖

        圖4 “布置雨水口”功能代碼框架

        實現(xiàn)本功能時,對檢查井Structure類的坐標(biāo)屬性Position進行了讀寫,本研究中凡是涉及檢查井空間位置的功能,均需對該屬性進行讀寫; 類似地,管道Pipe類的起終點坐標(biāo)屬性StartPoint、EndPoint以及GetPointAtParam(double paramInterval)方法,可用于讀寫管道空間位置。

        (2)實例二:“修改管高”功能

        修改模型幾何信息——管道高程時,其實際操作亦大致分為三步:①于縱斷面選定要修改高程的連續(xù)管段;②確定要調(diào)整的高程;③根據(jù)調(diào)整高程,依次修改管道及檢查井的內(nèi)底高程; 將其抽象為流程圖,則如圖5所示; 根據(jù)流程圖步驟進行編程,其代碼框架如圖6所示。通過該功能,可快捷高效地調(diào)整連續(xù)管段的高程。

        圖5 “修改管高”功能流程圖

        圖6 “修改管高”功能代碼框架

        實現(xiàn)本功能時,利用了管網(wǎng)Network類的靜態(tài)方法Network.FindShortestNetworkPath(ObjectId startPartId,ObjectId endPartId,ref double minLength)來獲取同一管網(wǎng)中兩檢查井間的最短路徑零件集合; 該方法在本研究中發(fā)揮了極其重要的作用,相當(dāng)一部分二次開發(fā)功能的實現(xiàn),均需要調(diào)用該方法,來獲取兩檢查井之間的零件集合(如“定覆土”、“移動管網(wǎng)”、“修改管坡”、“選擇管段”等功能)。

        (3)實例三:“修改井參考曲面”功能

        修改模型非幾何信息——參考曲面時,其實際操作亦可歸結(jié)為三步:①選定要參考的目標(biāo)曲面;②選定要修改參考曲面的檢查井;③將選定井的參考曲面修改為目標(biāo)曲面; 其流程圖和代碼框架分別如圖7和圖8所示。通過該功能,可以批量修改檢查井的參考曲面,從而在道路曲面發(fā)生調(diào)整等情況下,能夠?qū)z查井快速地參考到最新曲面上,完成井面標(biāo)高的更新。

        圖7 “修改井參考曲面”功能流程圖

        圖8 “修改井參考曲面”功能代碼框架

        此外,如1.2節(jié)所述,二次開發(fā)過程中,不可避免地使用到了COM API。例如,.NET API中,Structure或Pipe的Name屬性(即檢查井或管道的名稱),是只讀的,不能修改[14],而COM API中提供了對該屬性的修改功能,本研究開發(fā)的“修改井編號”及“修改井編號前綴”等功能,均涉及到對檢查井名稱的修改,故需要調(diào)用COM API來實現(xiàn)。

        當(dāng)需要調(diào)用COM API時,應(yīng)將.NET對象轉(zhuǎn)換為COM對象,可利用COM API中文檔(AeccDocument)對象的HandleToObject(string Handle)或ObjectIdToObject(long ObjectId)方法,通過.NET對象的唯一標(biāo)記(句柄或ObjectId),來獲取對應(yīng)的COM對象[12]。

        4 工程實例應(yīng)用

        以重慶市某市政道路排水工程為例,來驗證二次開發(fā)功能集對Civil 3D排水管網(wǎng)建模效率的提升。

        通過二次開發(fā)的功能,將先前流程繁瑣(如修改連續(xù)管段的高程、坡度或井編號等操作)或機械重復(fù)(如批量修改檢查井參考曲面或管道、檢查井族類型等操作)的操作進行優(yōu)化、整合,設(shè)計人員僅負責(zé)輸入關(guān)鍵參數(shù),由計算機依照輸入自動執(zhí)行; 通過二次開發(fā)的功能,亦能方便地進行模型的查找,在模型元素較多的情況下,實現(xiàn)元素的快速定位(如平縱模型的相互查找以及由編號查找檢查井等操作)。與先前相比,排水管網(wǎng)建模流程實現(xiàn)了化繁為簡,顯著提升了排水管網(wǎng)建模及修改的效率、減輕了設(shè)計人員的工作量,需要額外花費的時間僅為族和圖形模板的建立。選取本文描述的三種操作,比較了常規(guī)操作和二次開發(fā)功能的工作效率(基于1km排水管道工作量),如圖9所示,得到的結(jié)果支持本文的結(jié)論。

        圖9 常規(guī)操作與二次開發(fā)功能效率對比

        此外,由于參數(shù)化的設(shè)計模式,使得模型準(zhǔn)確度相較先前得到提升,可更精準(zhǔn)進行三維模型的展示與數(shù)據(jù)分析。圖10及圖11分別為Civil 3D中管網(wǎng)模型的三維查看視圖以及管網(wǎng)模型導(dǎo)入到Infraworks軟件中進行的精細化展示。

        圖10 Civil 3D中管網(wǎng)三維模型

        圖11 Infraworks中管網(wǎng)三維模型

        5 總結(jié)

        本研究基于.NET API,二次開發(fā)了一系列擴展功能,用以優(yōu)化Civil 3D排水管網(wǎng)建模流程; 經(jīng)實際工程驗證,管網(wǎng)建模效率在二次開發(fā)功能的輔助下,實現(xiàn)了顯著的提升。

        此外,建模過程中,仍存在著諸多有待優(yōu)化的操作流程,例如檢查井的自動選型、管道開挖量的自動計算等,在后續(xù)研究中將針對這些問題進行探討。

        Civil 3D軟件不僅為重力管網(wǎng)的三維建模提供了堅實可靠的基礎(chǔ)框架和數(shù)據(jù)結(jié)構(gòu),而且還提供了高度開放的.NET API,這使得用戶可根據(jù)公司或項目的具體需求,針對重力管網(wǎng)模塊進行二次開發(fā),實現(xiàn)更多自定義的高效功能。隨著二次開發(fā)技術(shù)的不斷推廣,Civil 3D針對各個專業(yè)的建模流程將會越來越完善,各專業(yè)間的協(xié)同設(shè)計將會越來越便利,Civil 3D平臺將會激發(fā)出更大的潛力,在市政道路及其附屬工程BIM設(shè)計中發(fā)揮更多的作用。

        猜你喜歡
        檢查井排水管二次開發(fā)
        雨水井、檢查井
        ◆雨水井、檢查井
        鋼筋混凝土排水管
        ◆ 雨水井、檢查井
        雨水井、檢查井
        淺談基于Revit平臺的二次開發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        淺談Mastercam后處理器的二次開發(fā)
        模具制造(2019年3期)2019-06-06 02:11:02
        西門子Easy Screen對倒棱機床界面二次開發(fā)
        鋼筋混凝土排水管
        u 鋼筋混凝土排水管
        久久精品国产亚洲精品| 曰日本一级二级三级人人| 黄色av一区二区在线观看| 两个人看的www免费视频中文| 成全视频高清免费| 国产欧美日韩精品丝袜高跟鞋| 精品人妻少妇一区二区三区不卡| 久久久亚洲欧洲日产国产成人无码| 男女在线免费视频网站| 亚洲女av中文字幕一区二区| 免费超爽大片黄| 国产精品女同一区二区| 亚洲区精品久久一区二区三区女同 | 国产亚洲一区二区精品| 无码国产成人午夜电影在线观看| 亚洲av永久无码天堂网毛片| 亚州AV无码乱码精品国产| 亚洲国产综合久久精品| 伊人情人色综合网站| 国产av人人夜夜澡人人爽麻豆| 亚洲都市校园激情另类| 亚洲少妇一区二区三区老| 亚洲国产精品无码aaa片| 麻豆高清免费国产一区| 国产高清一级毛片在线看| 人妻中文字幕一区二区视频| 久久久免费精品re6| 四虎影永久在线观看精品| 久久一二三四区中文字幕| 免费观看91色国产熟女| 日韩免费无码一区二区三区 | 变态 另类 欧美 大码 日韩 | 国产熟妇高潮呻吟喷水| 日韩无码电影| 日韩有码在线一区二区三区合集| 日韩精品无码一本二本三本色| 国产成人国产在线观看入口| 亚洲综合精品一区二区三区| 亚洲av福利天堂一区二区三| 欧美性猛交xxxx黑人猛交| 欧美性受xxxx狂喷水|