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

        ?

        基于Revit二次開發(fā)的多面體參數(shù)化建模

        2020-04-07 02:33:56
        土木建筑工程信息技術(shù) 2020年1期

        (大連理工大學(xué) 建設(shè)工程學(xué)部,大連 116024)

        引言

        類Weaire-Phelan多面體(簡(jiǎn)稱類WP多面體)是由Weaire-Phelan多面體氣泡單元衍生、改良而成的一類多面體[1]。其數(shù)學(xué)理論起源是Kelvin問(wèn)題:將無(wú)限空間劃分為具有一定界面面積的等體積單元(或其組合),什么樣的劃分方式能夠使得界面面積取最小值。Weaire-Phelan氣泡對(duì)應(yīng)的空間分割方案是目前已知的Kelvin問(wèn)題的最優(yōu)解[2]。該數(shù)學(xué)理論在結(jié)構(gòu)設(shè)計(jì)上最經(jīng)典的應(yīng)用就是國(guó)家游泳中心“水立方”的多面體空間剛架結(jié)構(gòu)。

        圖1 國(guó)家游泳中心“水立方”

        BIM技術(shù)不僅用于解決項(xiàng)目中智能分工與協(xié)同、異形體設(shè)計(jì)、建筑分析、可視化、精細(xì)化等二維設(shè)計(jì)難以解決的困難,而且使項(xiàng)目管理逐步形成新的管理體系[3-5]。Revit作為BIM技術(shù)的重要平臺(tái),近年來(lái)在二次曲面網(wǎng)殼結(jié)構(gòu)、斜拉橋和單層工業(yè)廠房的參數(shù)化設(shè)計(jì),識(shí)別構(gòu)件點(diǎn)云數(shù)據(jù),自動(dòng)化計(jì)算窗戶熱物理特性,PKPM接口等方向均有研究進(jìn)展[6-11]。但從現(xiàn)有資料來(lái)看,基于Revit開發(fā)的建模方法并沒有涉及類WP多面體空間結(jié)構(gòu)這一經(jīng)典類型。該空間結(jié)構(gòu)獨(dú)特的“嵌填”式[12]的建模思路極大的區(qū)別于當(dāng)下大多數(shù)模型軟件“搭積木”式的建模方法。

        文獻(xiàn)[1]研究了組成類WP多面體的兩種基本單元,完成了基本12面體和基本14面體的圖形解析和數(shù)學(xué)解析,確定了基本多面體的形狀控制參數(shù),分析了形狀控制參數(shù)與多面體邊長(zhǎng)的數(shù)學(xué)相關(guān)特性,規(guī)范了形狀控制參數(shù)的合理取值范圍,為多面體的參數(shù)化三維建模程序奠定了基礎(chǔ)。文獻(xiàn)[12]提出了類WP多面體基于AutoCAD的建模方法,并提供了多面體基本組合的建模思路。本文在分析這些研究成果的基礎(chǔ)上,利用Revit提供的API函數(shù),完成類WP多面體基本單元和基本組合的建模程序插件,實(shí)現(xiàn)基本單元和基本組合的參數(shù)化選型和可視化建模功能,以提高類WP多面體結(jié)構(gòu)選型時(shí)的工作效率。

        1 基于Revit的多面體建模開發(fā)

        本文基于Revit 2018及Revit 2018.2 SDK,選擇Visual Studio Community 2017為平臺(tái),編譯程序目標(biāo)框架選用.NET Framework 4.6,在Windows7(x64)版本系統(tǒng)下,使用C#(6.0版本)編程語(yǔ)言完成程序編寫和編譯。主要工作包含兩部分內(nèi)容:多面體基本單元的建模和多面體基本組合的建模。

        1.1 總體架構(gòu)

        在數(shù)學(xué)理論、建模方法和編程技術(shù)的支撐下,首先設(shè)計(jì)和編制基本單元和基本組合的數(shù)據(jù)處理模塊,根據(jù)輸入?yún)?shù)計(jì)算生成點(diǎn)、線、面等數(shù)據(jù),然后交由建模模塊在Revit視圖界面中生成可視化模型??傮w架構(gòu)如圖2所示。

        圖3 開發(fā)調(diào)試界面

        圖2 總體架構(gòu)

        1.2 程序開發(fā)

        程序開發(fā)工作主要包括以下幾個(gè)方面[13]。

        ①在Visual C#中新建一個(gè)類庫(kù),通過(guò)添加RevitAPI接口并引用Autodesk.Revit的命名空間,指定事物模式和模型更新模式,從ExternalCommand接口實(shí)現(xiàn)新建類。

        ②對(duì)Execute方法重載,在Visual C#中新建窗體創(chuàng)建可視化界面并進(jìn)行參數(shù)的傳入;

        ③參數(shù)修改,若程序執(zhí)行結(jié)果不滿足設(shè)計(jì)要求,則需要重新修改參數(shù)

        ④生成多面體模型。

        利用API為Revit編寫建模插件的開發(fā)調(diào)試界面如圖3所示。

        2 多面體基本單元建模

        2.1 類WP多面體的形狀控制參數(shù)

        2.1.1 類WP多面體基本單元

        類WP多面體由兩種基本多面體組合而成,一種是12面體(所有面均為5邊形),一種是14面體(12個(gè)面為5邊形, 2個(gè)面為6邊形)。

        基本12面體由12個(gè)全等的5邊形組成。這些5邊形并不是正5邊形,而是等腰5邊形,也即它有兩種邊長(zhǎng),其中4條邊長(zhǎng)度相等。

        基本14面體由12個(gè)5邊形和2個(gè)相互平行的6邊形組成。這些5邊形中,有4個(gè)與基本12面體的5邊形一致,其余8個(gè)則相互一致屬于另外一種5邊形,也即基本14面體包含3種平面多邊形。

        2.1.2 提取形狀控制參數(shù)

        在邊長(zhǎng)為4的晶格立方體中,取基本12面體的體心為坐標(biāo)原點(diǎn),基本12面體單元的20個(gè)頂點(diǎn)坐標(biāo)如下:

        (±a,±a,±a),其中0

        (0,±b,±c),(±b,±c, 0)(±c, 0,±b),其中0

        類似的,取邊長(zhǎng)為4的晶格立方體,取基本14面體的體心為坐標(biāo)原點(diǎn)?;?4面體單元的24個(gè)頂點(diǎn)坐標(biāo)如下:(1-a,±(2-a),±a),(1-c,±(2-b), 0)(1,±(2-c),±b),(-1+a,±a,±(2-a)),(-1+c, 0,±(2-b)),(-1,±b±(2-c)),(1, 0,±1),(-1,±1, 0)。

        從理論上講a、b、c均可以作為獨(dú)立參數(shù)控制類WP多面體的頂點(diǎn)坐標(biāo),考慮到c恰好是基本多面體其中一條棱邊的邊長(zhǎng),因此這里將c確定為類WP多面體的形狀控制參數(shù)。其中,形狀控制參數(shù)c的合理取值范圍是(1.0~1.5)[1]。

        2.2 參數(shù)化建模

        下面以基本12面體為載體闡述參數(shù)化建模的實(shí)現(xiàn)過(guò)程。實(shí)現(xiàn)基本14面體的參數(shù)化建模方法與之類似。在程序代碼中,為了方面記憶和識(shí)別,形狀參數(shù)被定義為double類型的字段,字段名稱為shape; a、b也是double類型,其中a=(2.0/3.0)×shape,b=0.5×shape。

        2.2.1 確定點(diǎn)、線對(duì)應(yīng)關(guān)系

        文獻(xiàn)[1]雖然給出了兩種基本多面體的頂點(diǎn)坐標(biāo),但是并未明確頂點(diǎn)與棱邊的對(duì)應(yīng)連接關(guān)系。因此,首先需要解決的問(wèn)題就是基本多面體單元的點(diǎn)、線對(duì)應(yīng)關(guān)系。

        兩種多面體有一定的特殊性:若將多面體的所有頂點(diǎn)兩兩連線,并將這些線段按照長(zhǎng)度升序排列。那么所有正確的棱邊一定連續(xù)的排列在該升序序列的頭部。也即正確的棱邊總是這些線段中的較短部分。

        第一步,將12面體的20個(gè)頂點(diǎn)依次輸入,編號(hào)并儲(chǔ)存。

        XYZ p1=new XYZ(0,b,shape); XYZ p2=new XYZ(0,-b,shape); ……XYZ p12=new XYZ(-shape, 0,-b); XYZ p13=new XYZ(a,a,a); ……XYZ p20=new XYZ(-a,-a,-a); Listpoints_12=new List{ p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20 };

        第二步,將這20個(gè)頂點(diǎn)兩兩配對(duì)成不重復(fù)的組合,計(jì)算每對(duì)組合兩頂點(diǎn)之間的距離并儲(chǔ)存至distancesList,同步儲(chǔ)存此時(shí)對(duì)應(yīng)的頂點(diǎn)編號(hào)至pointPairs。

        //儲(chǔ)存兩點(diǎn)之間的距離ListdistancesList=new List(); //儲(chǔ)存一對(duì)坐標(biāo)點(diǎn)的編號(hào)。ListpointPairs=new List(); for(int i=0; i

        第三步,將儲(chǔ)存距離的集合復(fù)制一份并按照升序排列。取該序列的第1個(gè)值為限值min1,取該序列的第30個(gè)值為限值min2。這是因?yàn)榛?2面體有30條棱邊。將間距滿足限值的頂點(diǎn)組合輸出到TXT文件。相應(yīng)的,在處理14面體的類似問(wèn)題時(shí)要取該序列的第一個(gè)值為限值min1,取該序列的第36個(gè)值為限值min2,這是因?yàn)榛?4面體有36條棱邊。

        double[]distancesArray=distancesList.ToArray(); Array.Sort(distancesArray); //數(shù)組升序排列double min1,min2; min1=distancesArray[0]; //拿到第一個(gè)限值min2=distancesArray[29]; //拿到第二個(gè)限值//判斷距離,將對(duì)的坐標(biāo)對(duì)和距離綁定并輸出for(int i=0; i

        圖4 點(diǎn)、線對(duì)應(yīng)關(guān)系

        最后,查看TXT文件,結(jié)果文件如圖4所示。以文件“Create12結(jié)果-30根線.txt”的數(shù)據(jù)為例:每一行有3個(gè)數(shù)據(jù)(點(diǎn)編號(hào),點(diǎn)編號(hào),兩點(diǎn)之間的距離),代表基本12面體的一根棱邊的兩個(gè)端點(diǎn),以及該棱邊的長(zhǎng)度。該文件能夠解決兩個(gè)問(wèn)題:第一,程序在輸出某個(gè)線模型時(shí),可知這條線是由哪兩個(gè)點(diǎn)連接而成的; 第二,程序中代表線的數(shù)據(jù)類型只需要存儲(chǔ)點(diǎn)編號(hào)即可。類WP多面體兩種基本單元的頂點(diǎn)與棱邊對(duì)應(yīng)連接的關(guān)系即可據(jù)此確定。

        圖5 基本12面體

        2.2.2 多面體基本單元建模

        將上述點(diǎn)、線對(duì)應(yīng)關(guān)系儲(chǔ)存起來(lái)。儲(chǔ)存點(diǎn)用List集合,每一個(gè)元素代表一個(gè)點(diǎn),該元素為XYZ類型的對(duì)象,其中存該點(diǎn)對(duì)應(yīng)的XYZ對(duì)象; 該項(xiàng)的索引為點(diǎn)編號(hào)。儲(chǔ)存線用List類型的對(duì)象,其中存該線對(duì)應(yīng)的點(diǎn)編號(hào); 該項(xiàng)的索引為線編號(hào)。這樣做的好處是對(duì)多面體進(jìn)行變換操作時(shí)只需要改變點(diǎn)表,線表保持對(duì)應(yīng)關(guān)系不變即可。同時(shí),按索引獲取元素不會(huì)造成搜索操作,而只需快速和簡(jiǎn)單地“跳”到一個(gè)內(nèi)存位置,這種方式的效率極高[14]。

        如圖5和圖6分別是組成類WP多面體的基本12面體和基本14面體的模型線建模效果圖。圖中類WP多面體的形狀控制參數(shù)shape=1.333333,是“水立方”Water-Cube多面體的形狀參數(shù)值。

        3 多面體基本組合建模

        3.1 類WP多面體基本組合的構(gòu)成及尺寸

        3.1.1 基本組合的構(gòu)成

        文獻(xiàn)[12]對(duì)類WP多面體基本組合的構(gòu)成進(jìn)行了深入的研究。為了方便說(shuō)明,下文仍取邊長(zhǎng)為4的晶格立方體來(lái)闡述基本組合中每個(gè)基本單元的變換方式和它們的相對(duì)位置。如圖7展示的是2+6基本多面體組合中各個(gè)基本單元體心的相對(duì)位置。其中“圓環(huán)”代表12面體體心位置,“圓球”代表14面體體心位置。

        下文用到的12面體和14面體滿足:頂點(diǎn)的相對(duì)位置與基本多面體一致,體心定位在相對(duì)坐標(biāo)系的原點(diǎn)。另外,旋轉(zhuǎn)操作中的旋轉(zhuǎn)角度和旋轉(zhuǎn)軸滿足右手規(guī)則。下面依次介紹2+6基本組合中的每個(gè)基本單元該如何變換和定位:

        圖6 基本14面體

        圖7 多面體基本組合中多面體體心分布示意圖

        ①12面體定位在坐標(biāo)原點(diǎn);

        ②14面體定位在(1, 0,-2);

        ③復(fù)制 ① 中的12面體,將復(fù)制體繞Z軸旋轉(zhuǎn)90°,再將其定位到(-2, 2,-2);

        ④選擇YZ平面為鏡像平面,將 ② 確定的14面體鏡像生成一個(gè)新的14面體,新多面體體心位置在(-1, 0,-2);

        ⑤取一個(gè)14面體,體心在(0, 0, 0)繞Z軸旋轉(zhuǎn)90°,再將其定位到(-2,-1, 0);

        ⑥選擇ZX平面為鏡像平面,將 ⑤ 確定的14面體鏡像生成一個(gè)新的14面體,新多面體體心位置在(-2, 1, 0);

        ⑦取一個(gè)14面體,體心在(0, 0, 0)繞Y軸旋轉(zhuǎn)90°,再將其定位到(0, 2, 1);

        ⑧選擇XY平面為鏡像平面,將 ⑦ 確定的14面體鏡像生成一個(gè)新的14面體,新多面體體心位置在(0, 2,-1);

        通過(guò)上述8次操作即可得到一個(gè)類WP多面體空間結(jié)構(gòu)的2+6基本組合。

        3.1.2 確定基本單元的實(shí)際尺寸

        基本單元尺寸的定義[15]:將屬于基本單元的一個(gè)14面體中的2個(gè)相互平行6邊形平面之間的距離定義為類WP多面體的基本單元尺寸。具體到邊長(zhǎng)為4的晶格立方體對(duì)應(yīng)的基本單元的尺寸為1.5shape。再考慮其放大或縮小問(wèn)題,定義比例系數(shù)scale,則實(shí)際工程應(yīng)用中結(jié)構(gòu)的基本單元尺寸為1.5 shape×scale。

        3.2 參數(shù)化建模

        3.2.1 縮放兩種基本單元

        2+6個(gè)多面體在基本組合中的位置是具有相對(duì)性的。因此,縮放基本單元的尺寸即可對(duì)應(yīng)形成等比例縮放的基本組合。也即先縮放基本單元的頂點(diǎn)坐標(biāo); 然后在變換基本單元拼裝成基本組合時(shí),將單元體心的相對(duì)坐標(biāo)也按照比例系數(shù)等比例變換。

        3.2.2 拼裝基本組合

        按照4.1節(jié)的介紹,依次完成基本組合拼裝。首先,復(fù)制一份基本多面體單元的點(diǎn)、線、面集合供本次操作調(diào)用; 其次,如果有必要變換的話,對(duì)集合副本進(jìn)行變換操作(平移,旋轉(zhuǎn),鏡像等); 最后,將完成變換的副本數(shù)據(jù)對(duì)應(yīng)添加進(jìn)基本組合的點(diǎn)、線、面集合。

        在拼裝過(guò)程中,除了點(diǎn)集合的操作,還會(huì)涉及對(duì)線集合和面集合儲(chǔ)存對(duì)象編號(hào)的累加問(wèn)題,多面體體心定位問(wèn)題,多面體旋轉(zhuǎn)、鏡像、深拷貝問(wèn)題等。這些問(wèn)題都可以抽象成自定義函數(shù)。

        3.2.3 基本組合建模

        如圖8是類WP多面體基本組合的模型線建模效果圖。圖中類WP多面體的形狀控制參數(shù)shape=1.333333,比例系數(shù)scale=3.6055599,均為“水立方”Water-Cube多面體的控制參數(shù)值。

        4 類WP多面體選型應(yīng)用

        4.1 選型原則

        多面體空間結(jié)構(gòu)的幾何構(gòu)成十分復(fù)雜,按照建筑和結(jié)構(gòu)的要求對(duì)其進(jìn)行優(yōu)化和選型是一項(xiàng)非常重要的工作[16]。主要是為了滿足建筑效果和結(jié)構(gòu)構(gòu)造這兩方面的要求。

        首先,形狀控制參數(shù)的合理取值范圍是1.0~1.5; 其次,選型過(guò)程中不考慮縮放系數(shù)的影響; 最后,考慮到形成多面體空間結(jié)構(gòu)之前,基本單元往往要旋轉(zhuǎn)、切割,所以要讓多面體頂點(diǎn)在X、Y、Z三個(gè)平面上的投影盡可能多的重合。

        4.2 參數(shù)化選型與建模

        4.2.1 基本12面體選型對(duì)比

        選擇4個(gè)形狀控制參數(shù)做對(duì)比。分別是1, 1.2599, 1.33333和1.4。參數(shù)輸入界面如圖9,可以通過(guò)偏移坐標(biāo)控制不同參數(shù)的基本12面體的生成位置,讓其處于同一視圖中方便觀察對(duì)比。

        建模結(jié)果如圖10所示。圖形的形狀控制參數(shù)從左往右依次對(duì)應(yīng)等于1, 1.2599, 1.33333和1.4。形狀控制參數(shù)只影響12面體的大小,作用類似于縮放系數(shù)。

        圖9 參數(shù)輸入界面

        圖10 12面體建模結(jié)果的三維視圖

        4.2.2 基本14面體選型對(duì)比

        同樣選擇4個(gè)形狀控制參數(shù)做對(duì)比。分別是1, 1.2599, 1.33333和1.4。觀察建模結(jié)果的俯視圖,如圖11,圖形的形狀控制參數(shù)從左往右依次對(duì)應(yīng)等于1, 1.2599, 1.33333和1.4。當(dāng)形狀控制參數(shù)等于1.33333時(shí)較為符合選型原則。

        圖11 14面體建模結(jié)果俯視圖

        4.2.3 基本組合建模

        輸入控制參數(shù)。形狀控制參數(shù)為1.33333,縮放系數(shù)為1,繞(1, 1, 1)旋轉(zhuǎn)45°,不做位置變換。輸入界面見圖12。建模結(jié)果如圖13所示。

        圖12 參數(shù)輸入界面

        圖13 基本組合建模結(jié)果

        5 總結(jié)

        本文基于Revit進(jìn)行二次開發(fā),結(jié)合類WP多面體的數(shù)學(xué)理論和建模方法,利用參數(shù)化實(shí)現(xiàn)了多面體基本單元的選型、建模和基本組合的建模。運(yùn)行結(jié)果表明,該方法能夠正確創(chuàng)建基于不同參數(shù)的類WP多面體,為設(shè)計(jì)者提供了一種方便的可視化設(shè)計(jì)新方法,本研究成果可直接用于BIM產(chǎn)生多面體空間結(jié)構(gòu)。

        国产又a又黄又潮娇喘视频| 精品无码AV无码免费专区| 8090成人午夜精品无码| 日本av一区二区三区四区| 欧美性生交大片免费看app麻豆 | y111111少妇影院无码| 久久久亚洲欧洲日产国码是AV| 免费人妖一区二区三区| 婷婷色香五月综合缴缴情| 69sex久久精品国产麻豆| 久久麻豆精品国产99国产精| 青青青伊人色综合久久| 日韩亚洲一区二区三区在线| 制服丝袜一区二区三区| 亚洲精品久久中文字幕| 91精品福利观看| 日韩精品有码在线视频| av日韩高清一区二区| 天堂а√在线最新版中文在线| 久久尤物AV天堂日日综合| 亚洲国产精品二区三区| 337p日本欧洲亚洲大胆色噜噜| 亚洲午夜精品久久久久久人妖| 国产在线欧美日韩一区二区| 国产一区二区三区小向美奈子| 亚洲欧美v国产一区二区| 女人夜夜春高潮爽a∨片传媒| 国产精品18久久久久久不卡中国| 日韩字幕无线乱码免费| 999zyz玖玖资源站永久| 国产乱子伦在线观看| 国内精品91久久久久| 国产白色视频在线观看| 无码丰满熟妇一区二区| 美女裸体无遮挡免费视频的网站| 亚洲性爱区免费视频一区| 91成人黄色蘑菇视频| 亚洲精品成人网线在线播放va| 久久AV中文综合一区二区| 久久久精品国产老熟女| 久久久久亚洲av片无码|