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

        ?

        基于BIM 的軸網(wǎng)與基樁自動生成方法研究

        2022-07-25 06:45:46李丹妮張軍王凱管昌生
        科學技術創(chuàng)新 2022年23期
        關鍵詞:二次開發(fā)界面用戶

        李丹妮 張軍 王凱 管昌生

        (1、中交第二公路勘察設計研究院有限公司,湖北武漢 430056 2、中交集團隧道與地下空間工程技術研發(fā)中心,湖北武漢 430056 3、武漢理工大學,湖北武漢 430070)

        1 概述

        目前BIM技術的應用得到了大家的普遍認可[1]。傳統(tǒng)的二維設計存在著先天不足,本來建筑是以三維空間為主體的,但是傳統(tǒng)的設計交付都是以二維圖形作為交付物,在這個三維向二維轉換過程中,多專業(yè)之間的協(xié)調很難保證[2],施工過程中又以二維圖紙為藍圖進行施工,必然存在信息上的不對位,出現(xiàn)諸如碰撞、設計出來的功能區(qū)使用功能的不合理等問題。

        BIM是以三維數(shù)字技術作為基礎,集成工程中各種數(shù)據(jù)信息進行建筑三維模型建立,通過數(shù)字信息仿真模擬建筑物所具有真實信息[3]。BIM技術是一個完整、豐富建筑信息化協(xié)作平臺,在建筑信息化領域逐步受到廣泛關注和認可[4]。BIM理念實現(xiàn)需要一個兼具廣度和深度的標準體系,才能實現(xiàn)工程各階段之間信息共享互換。BIM是集計算機輔助設計與制造于一體的計算機集成制造系統(tǒng)理念和基于產品數(shù)據(jù)管理PDM 與STEP 標準的產品信息模型[5]。BIM技術是以建筑項目中各種相關數(shù)據(jù)信息作為基礎,進而對數(shù)據(jù)模型信息進行整合,實現(xiàn)對建筑工程項目設施實體與功能特性數(shù)字化表達。標準和完整的建筑信息模型能夠使建筑項目生命周期在各個不同階段的數(shù)據(jù)、過程和資源得到共享和關聯(lián),可以讓建筑項目建設方與參與方進行交流和使用[6]。建筑信息模型具有信息集成、協(xié)同管理、相同項目數(shù)據(jù)源功能,可解決分布式以及不同工程數(shù)據(jù)之間一致性和全生命周期信息共享問題,支持項目生命周期中所有相關工程信息創(chuàng)建、管理、共享以及互換[7]。隨著BIM技術高速發(fā)展,建筑行業(yè)發(fā)展必將進入一個全新的時期[8]。

        本文通過Revit API 插件開發(fā)實現(xiàn)快速道路及場地平整模擬,目前對基于.NET 的Revit 二次開發(fā)相關文獻相對較少,因此通過Revit 進行二次開發(fā),打通各類軟件信息交流以及開發(fā)插件使Revit 本土化已成為研究熱點。本文開發(fā)插件成果,可以提高BIM建模設計的效率,便于BIM技術推廣應用。

        2 Revit 二次開發(fā)技術路線

        2.1 Revit 二次開發(fā)環(huán)境及工具

        在Revit 中參數(shù)化表現(xiàn)為模型的所有元素之間的關系,簡單來說參數(shù)化就是讓模型各個元素隨著用戶指定的參數(shù)進行協(xié)調變化。Revit 模型中所有參數(shù)的修改,都可以自動調動Revit 參數(shù)化修改引擎,來協(xié)調任何相關位置上的模型或者視圖等變化。Revit 所提供的API 包含了對幾乎所有元素的參數(shù)的讀取、修改、甚至還可以定義新的參數(shù)。

        2.2 本文技術方法

        軟件的外部事件開發(fā)方法,不同于大部分現(xiàn)有二次開發(fā)方法。目前大部分論研究是用外部命令加外部應用的方式進行組合開發(fā),主要是為了避免選項卡中有過多的按鈕、以及可以實現(xiàn)插件非模態(tài)運行。因此,本文采用了外部事件、外部命令和外部應用相結合的方式,進行插件軟件的開發(fā)。關鍵技術是應用winform 與外部事件相結合組插件程序的主要部分,可以實現(xiàn)操作Revit 和操作本插件之間的靈活切換,實現(xiàn)特定功能創(chuàng)建。其中winform 作為插件的主界面,外部事件作為響應用戶操作主界面的響應部分。本插件程序由主界面向主程序傳遞各類用戶輸入的參數(shù),整個插件主要由主界面和主程序構成。

        3 軸網(wǎng)與基樁自動生成方法

        3.1 軸網(wǎng)插件開發(fā)

        3.1.1 創(chuàng)建插件主界面。Revit 允許用戶自定義Ribbon 面板[10],方便用戶按照自己的意圖在Revit 中實現(xiàn)用戶與Revit 的交互。本文應用強大的Winform 來實現(xiàn)交互的用戶友好性。WinForm 是.Net 開發(fā)平臺中對Windows Form 的一種稱謂,它功能強大、操作方便、使用安全,可以應用它創(chuàng)建豐富的界面,其本身自帶大量功能強大的控件,甚至可以讓用戶不寫一行代碼也能創(chuàng)建簡單的窗體程序。為了調用Winform 來作為主程序的交互界面,本文先調用RevitAPI 中的外部應用方法來生成調用Winform,在Revit 中創(chuàng)建一個Ribbon 面板以及在面板上生成彈出主界面窗口的命令按鈕。編寫代碼實現(xiàn)彈出主窗口,在對button Data 變量初始化時,指定了要實現(xiàn)的命令的類的名字Auto generation For Foundation Pile. Foundation Piles Command,單擊命令按鈕時,將會調用這個類。而Foundation Piles Command 這個類的實現(xiàn)將會把主界面彈出來。

        通過兩步代碼編寫,并在整個項目中添加一個Winform 窗體,即可實現(xiàn)單擊Ribbon 面板上的命令按鈕,彈出主界面窗口,生成的窗口為非模態(tài)窗口,便于用戶在插件窗口與Revit 窗口之間自由切換,實現(xiàn)模態(tài)窗口所不能實現(xiàn)的功能。

        3.1.2 軸網(wǎng)生成主要算法。軸網(wǎng)相當于地球的經緯網(wǎng),在Revit 里起到“定海神針”的作用,整個建筑都是以軸網(wǎng)為定位依據(jù)建立起來的。目前在Revit 里建立軸網(wǎng)的一般步驟為:①一般選擇場地樓層平面→②選擇建筑選項卡→③單擊軸網(wǎng)命令按鈕→④在目標位置畫出軸網(wǎng)→⑤重復第④步→⑥生成目標軸網(wǎng)。

        通過這幾個步驟,就可以將想要的軸網(wǎng)畫出來,在軸網(wǎng)軸線比較少時,感覺不出用傳統(tǒng)Revit 軸網(wǎng)繪制方式的缺陷,如果軸線很多時,傳統(tǒng)繪制軸網(wǎng)方法就比較費時了。因此,可以通過Revit 的二次開發(fā)來解決這一重復性高的工作,利用輸入幾個參數(shù)來自動畫出軸網(wǎng),為設計師節(jié)省寶貴的時間,提升設計效率。本插件的自動生成軸網(wǎng)功能借鑒了PKPM生成軸網(wǎng)的方式,使用了下開間間距、下開間數(shù)量、左進深深度、左進深數(shù)量四個參數(shù)控制軸網(wǎng)的生成。為了保護這四個變量不受BuildGrid類之外的代碼對它們進行直接修改,在BuildGrid 類內部設立了四個與這四個變量一一對應的屬性,它們分別是XKJ_D、XKJ_N、ZJS_D、ZJS_N。通過這種設立屬性的方式,可以保護整個程序數(shù)據(jù)的穩(wěn)定性,從而減少因為變量被意外修改而引起的難以發(fā)現(xiàn)的錯誤。

        此方法將下開間的軸線與左進深的軸線進行分開生成,這樣的好處在于,方便維護升級算法、便于發(fā)現(xiàn)錯誤。此方法的前四個參數(shù)由BuildGrid 類內的四個雙精度浮 點 變 量 doubleXiaKaiJian_Distance、double XiaKaiJian_Number、double ZuoJingSheng_Distance、double ZuoJingSheng_Number 傳入,而這四個雙精度浮點變量的值由BuildGrid 類內部的四個屬性進行賦值。為了從BuildGrid 類外部獲得XKJ_D、XKJ_N、ZJS_D、ZJS_N 的屬性值,因此從主界面的四個文本框把用戶輸入的值賦予XKJ_D、XKJ_N、ZJS_D、ZJS_N 四個屬性,界面如圖1 所示。然后,通過外部事件建立連接建立主界面與主程序的連接。在非Revit 內部環(huán)境中建立外部應用、外部命令,這在目前的幾個版本的Revit 中是被禁止的,因此需要借助外部事件來解決這一問題。但在應用外部事件做開發(fā)時,要注意外部事件在被觸發(fā)后,外部事件觸發(fā)之后的代碼會與外部事件同時執(zhí)行,它們分別屬于不同的線程。通過代碼設計,可以看到下開間間距屬性與左進深屬性,分別都除以變量ZhuanHuanZhi,這是因為Revit內部基本單位是英尺,如果要獲取或設置構件參數(shù)數(shù)值需要進行單位轉換。軸網(wǎng)生成效果如圖2 所示。

        圖1 參數(shù)選擇界面

        圖2 軸網(wǎng)生成效果圖

        3.2 基樁族插件開發(fā)

        用戶自己在Revit 中創(chuàng)建基樁族、使用族庫大師等插件獲得基樁族、編程開發(fā)自動生成基樁族。無論是從各大插件還是用戶自行創(chuàng)建,都可以很方便的獲得各類基樁族。因此本文采用從外部載入基樁族,作為自動生成的基樁功能的基樁族來源。

        基樁作為與軸網(wǎng)具有強烈關系的地下構件,因此基樁的定位點主要是定位在捕捉軸網(wǎng)中的軸線交點上。以下就是基樁的自動定位和生成的主要代碼及開發(fā)思路:

        3.2.1 加載族到項目中。單擊圖3 中的“加載基樁族”按鈕,通過Open File Dialog open Foundation = new Open File Dialog() 創(chuàng)建加載外部基樁族對話框,而后將讀取到外部基樁族的路徑傳遞到主程序中的Load Foundation Family 類中,將Load Foundation Family 類中Path of Foundation Family 屬性賦值,為加載基樁族對話框所讀取到路徑值。 使用 doc.Load Family(path_O_Foundation,out family)這條語句。若這條語句返回True,則對話框中選定的基樁族將成功加載進項目中,其中doc 是Document 類的一個實例化對象。在將基樁族加載進入項目的同時,主界面將同時使用timer 控件進行對加載進入項目中的基樁族進行族類型的掃描。由于本插件中Load Foundation Family 類與生成基樁的類Build Foundation 有很強的順序關系,Build Foundation類需要得到已經加載到項目中的外部基樁族的族類型參數(shù),所以在Load Foundation Family 類中,將Load Foundation Family 類所需要的參數(shù)進行屬性化設置,方便保護類本身的數(shù)據(jù)安全、以及不同類之間傳遞信息。

        圖3 加載基樁族

        3.2.2 捕捉軸網(wǎng)交點。在生成基樁之前需要獲知基樁的定位點,工程中基樁一般位于軸線交點上,本插件將采用軸線交點作為基樁生成的定位點。為了增加主程序的可讀性、簡潔性以及代碼的模塊化、復用性,單獨編寫了一個方法類method,在這個類中包含多個主程序需要的通用方法。其方法是Get Intersection From Grids(Document doc),本方法只需讀入一個文檔類Document參數(shù),即可返回此文檔中軸線交點集合List<XYZ>,本方法獲取交點集合的思路是通過兩個for each 遍歷語句來實現(xiàn)交點集合的尋找與裝載。

        通過方法Get Intersection From Grids(Document doc),就可以獲得基樁群的定位點集,這個點集是至關重要的基樁群定位信息集合。有了這個集合,就可以為創(chuàng)建指定位置的基樁群做好準備。

        3.2.3 獲取基樁族類型及標高。Revit 為了系統(tǒng)化管理圖元,將所有的圖元都進行了分類,分類的級別有三級,即:一級分類:族類別,將項目進行專業(yè)上的分類,例如梁、結構柱、條形基礎等就歸為結構類的族類別,放在結構選項卡中方便用戶尋找。二級分類:族,每種族都是一系列子構件的集合,例如一級分類中的梁元素就包括了很多種類型的梁,例如矩形梁、工字鋼梁、疊合梁等。三級分類:族類型,族類型是更小一級的單位,它是二級分類的細化,是同一族下的不同子類型,例如300×600矩形梁、400×800 矩形梁等。

        由上可知,用戶在通過插件主界面加載外部基樁族后,需要指定用戶想要生成的族類型。本插件會默認一個族類型供用戶使用如圖4 中紅色矩形框中所示,當然用戶也可以通過主界面中的下拉列表選擇來指定自己想要的族類型。

        圖4 默認族類別

        3.2.4 生成基樁。單擊“生成基樁”按鈕,將外部基樁族與用戶所選用的外部基樁族類型,這兩個參數(shù)傳入主程序中的Build Foundation 類中的兩個對應屬性,隨后觸發(fā)Build Foundation 類的外部事件,開啟事物,生成基樁群。因為前面已經獲得生成基樁群的所有參數(shù),故生成基樁群的核心代碼在這一步只有一個遍歷語句和一條創(chuàng)建語句。生成的基樁群如圖5。

        圖5 生成的基樁群三維示例

        4 結論

        本文探討了revit 插件開發(fā)的基本方法,針對軸網(wǎng)設計與樁基設計,對基于BIM技術建模的快速繪制BIM模型方法進行了研究。其中包括代碼編寫、模塊主要功能實現(xiàn)與測試,功能算法分析。對具體開發(fā)過程中的外部事件與外部應用、外部命令相結合、發(fā)揮了外部事件、外部應用、外部命令各自特特征,并對插件軟件進行了模塊化編制與應用。通過AUOTODEAK 公司對外界開放RevitAP,可以通過軟件工程師開發(fā)相應算法來解決國內用戶的本土化需求。

        猜你喜歡
        二次開發(fā)界面用戶
        國企黨委前置研究的“四個界面”
        當代陜西(2020年13期)2020-08-24 08:22:02
        淺談基于Revit平臺的二次開發(fā)
        甘肅科技(2020年20期)2020-04-13 00:30:02
        淺談Mastercam后處理器的二次開發(fā)
        模具制造(2019年3期)2019-06-06 02:11:02
        基于FANUC PICTURE的虛擬軸坐標顯示界面開發(fā)方法研究
        西門子Easy Screen對倒棱機床界面二次開發(fā)
        關注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        人機交互界面發(fā)展趨勢研究
        關注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        關注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        手機界面中圖形符號的發(fā)展趨向
        新聞傳播(2015年11期)2015-07-18 11:15:04
        av片在线观看免费| 91精品国产综合久久熟女| 国产美女精品视频线免费播放软件 | 超碰观看| 国产福利不卡视频在线| 国产精品无码素人福利不卡| 欧美日韩中文国产一区发布 | 丝袜美腿在线观看视频| 小雪好紧好滑好湿好爽视频| 亚洲精品成人区在线观看| 色欲AV成人无码精品无码| 男生自撸视频在线观看| 日韩精品无码熟人妻视频| 97久久香蕉国产线看观看| 久久精品成人免费观看97| 日本免费影片一区二区| 欧美人与动性xxxxx杂性| 激情偷乱人伦小说视频在线| jk制服黑色丝袜喷水视频国产| 黄色精品一区二区三区| 久久青青草原精品国产app| 亚洲日本va中文字幕久久| 人妻丰满少妇一二三区| 美丽的小蜜桃在线观看| 亚洲va无码手机在线电影| 国产精品无码专区综合网| 少妇高潮免费在线观看| 亚洲av综合一区二区在线观看| 日本三级欧美三级人妇视频| 亚洲熟妇av日韩熟妇av| 日韩精品一二三区乱码| 少妇aaa级久久久无码精品片 | 88久久精品无码一区二区毛片| 国产乱子伦精品免费女| 亚洲av资源网站手机在线 | 亚洲色欲Aⅴ无码一区二区| 亚洲精品中文字幕乱码3| 精品综合久久久久久888蜜芽| 国产又黄又大又粗视频| 日本女优中文字幕在线观看| 人妻精品在线手机观看|