完善主體資料,免費贈送VIP會員!
* 主體類型
* 企業(yè)名稱
* 信用代碼
* 所在行業(yè)
* 企業(yè)規(guī)模
* 所在職位
* 姓名
* 所在行業(yè)
* 學(xué)歷
* 工作性質(zhì)
請先選擇行業(yè)
您還可以選擇以下福利:
行業(yè)福利,領(lǐng)完即止!

下載app免費領(lǐng)取會員

NULL

ad.jpg

盒子的新衣夢:dynamo基于實例表面生成可編輯飾面(投稿/文/趙子年)

發(fā)布于:2020-08-11 15:04:34

趙子年

更多

寫在前面:相信很多bim工作者都聽說過dynamo這個神奇的小工具,同時也有很多小伙伴做了一些嘗試和工作中的應(yīng)用,雖然可視化編程在桌子(Autodesk)平臺上的上線時間遠(yuǎn)不如Rhino上的Grasshopper,可能在穩(wěn)定性和第三方庫的豐富程度上還有很大的提升空間。但是筆者還是強烈建議每一個不甘心成為翻模機器的同學(xué),入門并學(xué)習(xí)一款可視化編程軟件,它將極大的解放你的雙手,并固化你的奇思妙想,目前來看,Dynamo在數(shù)據(jù)處理及重復(fù)性任務(wù)方面,已經(jīng)可以提供非常多的自動化程序,在大量場景中幫助我們高效準(zhǔn)確的完成冗長復(fù)雜的任務(wù),特別是再配合Python Script之后,定會幫助你開啟一個不一樣的工作視角。

本次分享主要討論一個大家比較感興趣的主題:’飾面’,現(xiàn)在市場上有很多插件可以做到這一點,但大多產(chǎn)品生成邏輯可能和我們想要的效果并不一致,所以今天筆者想通過一個簡單的小案例,幫助大家理解dynamo環(huán)境中,一個飾面從識別到生成的基本邏輯,以幫助伙伴們結(jié)合自己的知識和需求,寫出適合自己手頭工作的程序。

  本教程適合有一定dynamo基礎(chǔ)的同學(xué),其中可能會涉及一些自定義節(jié)點或者python,大家不必感到困難,其實程序?qū)W習(xí)最重要的是思路,文末我會把所涉及的節(jié)點和代碼塊上傳供大家下載,前期只要能正確使用即可。

注:因為dynamo不同版本對電池端口的定義不同,為保證您在學(xué)習(xí)本章節(jié)的過程中,達(dá)成的結(jié)果和筆者一致,請務(wù)必使用:Revit—2018,dynamo-1.3.3進(jìn)行學(xué)習(xí)。

本課程涉及到的dynamo源文件,dynamo安裝包,revit案例素材以及Springs節(jié)點包

我已經(jīng)打包至: 鏈接:https://pan.baidu.com/s/1lUXDT9-X9gRRIIfiWsBBWQ 

提取碼:ABIM

正文開始,為了方便理解,這里給大家做了一個小導(dǎo)圖

1.png

這個導(dǎo)圖是我對基于整體結(jié)構(gòu)模型(墻,梁,板,柱)生成面積正確,材質(zhì)可調(diào),扣減合理的飾面統(tǒng)一規(guī)劃,其中有些細(xì)節(jié)還沒有填寫,放在這里只是希望大家有個整體概念,使我們學(xué)習(xí)之前,很清晰的知道我為什么學(xué),學(xué)了以后能解決什么問題。

學(xué)習(xí) Dynamo, 如果你把它當(dāng)成是愛好,學(xué)起來定然日進(jìn)千里。當(dāng)你能把愛好轉(zhuǎn)化成生產(chǎn),工作中亦是事半功倍。

好啦,熟悉整體部署了,我們來說一下今天,就是此時此刻我們應(yīng)該解決的問題。

2.png

第一行是我們的流程

image.png

每一列是實現(xiàn)當(dāng)前流程的方法

image.png

現(xiàn)在我們拿第一個流程既獲取待創(chuàng)建飾面的形狀和大小開始3.png

我第一步從選擇實例-獲取表面-偏移表面開始,下面這個流程相信大家都能看懂,Offset節(jié)點用作偏移表面

4.png

如果你順利的完成了上述節(jié)點,并在Offset節(jié)點上賦予了一個>0的值,那你將得到下圖,淡黃色且不可選中的圖元,就是我們用來計算的“面”

5.png

聰明的小伙伴看到這里可能已經(jīng)明白了,會說:好了好了 不用講了,只要把這個面轉(zhuǎn)化成實體就好了,這節(jié)課結(jié)束。

嗯,沒錯,這樣確實我們已經(jīng)完成了大部分的任務(wù),但是您將得到一個下圖這樣的飾面。

6.png

因為實體飾面是存在厚度的,而我們獲取的是一個沒有厚度概念的相切平面,當(dāng)您給這樣的平面賦予厚度時棱角就出現(xiàn)了,沒錯,棱角的深度就是等于我們飾面的厚度的。

這種問題顯然是我們積極上進(jìn)的青年人所不能接受的,所以我們還是承接上邊的流程,再生成實例之前,先把棱角處理掉。

看,人生就是這樣,我們一直在花80%的時間解決那20%的問題。

7.png

所以我們來繼續(xù)分析,既然棱角是因為厚度產(chǎn)生的,那我們其實是要在賦予厚度的同時,將每一個“面”的四邊都擴大與厚度等值的距離。

嗯,,小伙伴們停下來消化一下這句話,還沒想好的小伙伴參照下邊的圖片這就是我們今天想達(dá)到的效果

8.png

這時候又有聰明又伶俐的同學(xué)說了,騙子!雖然棱角被填平了,但是你明明有重疊的部分。

哈哈哈,嗯,沒錯,一個程序誕生的過程,是我們不斷糾正思想的過程,為什么我沒有直接把節(jié)點包放上來呢,因為我不想分享某一個技能亦或是方法,我想把思路告訴大家,小時候家里窮(emmm好像現(xiàn)在也不富裕呢),村長總是對我說,授人以漁不如有受人以魚。。。。此處省略

所以呢,我們這節(jié)課就按照這個方法做,這樣下節(jié)課我們對程序進(jìn)行改動調(diào)整的時候你就會明白:噢噢噢噢!原來是這樣,妙啊~

上圖就是沒有棱角但是有重疊的飾面啦,所以我們繼續(xù)向著它前進(jìn)吧。

說了這么多,我們其實只獲得了沒有厚度且未經(jīng)處理的表面而已,處理思路是:將“每個面”解析成“4條線”,將“4條線”沿著各自的向量方向“偏移與厚度等值的距離”,進(jìn)而形成新的“閉合輪廓”

聽起來有點繞嘴,我們上節(jié)點。

4.png


因為以后會同時處理多個表面,這里我們加一個拍平。

9.png

基于面生成新的矩形

10.png11.png

到這里為止統(tǒng)一解釋兩個問題(送給愛較真的同學(xué),新同學(xué)可以忽略):

1 為什么處理邊線之前,表面要從實例上炸開也就是(Offset)?

答:在dynamo環(huán)境中,共邊的“面”真的是在共用一條邊,我們都知道立方體有6個面每個面4條邊,所以一個體就有24條邊嗎?在dynamo中,只有棱邊,也就是12條?。?!

所以我們要對每一個邊就行偏移的時候就會出問題,別問我怎么知道的。。。

解決方案就是我們這樣,操作之前先炸開(Offset),強制不共邊以后再操作。

2:為什么要把邊線轉(zhuǎn)變成矩形?而不是curve或者line什么的?

這個問題如果您之前再dynamo中用point的方式創(chuàng)建過閉合輪廓可能會知道,組成閉合輪廓的角點是有先后順序的,順序錯了會對后邊造成一系列的影響。同時,因為我們的24條邊線是從12條棱邊分裂出來的,即便各自獨立,但是他們的方向向量還是雷同的,這點很重要。

我還是用圖片解釋一下:

13.png

上圖其實是我們想要達(dá)到的效果,四條邊線按照各自的法向量方向根據(jù)我們指定的數(shù)值偏移,但因為上述共邊的原因,我們實際要面對的其實是下圖的樣子。

12.png

因為向量的雷同,造成了邊線的偏移錯誤,而矩形的魅力在于自己特有的屬性使之邊線的法向量方向重置為正常。

相比較單獨處理每一根邊線的向量方向,先將其轉(zhuǎn)為矩形再輸出還是比較明智的。。。。

如果您堅持聽我絮叨到了這里,那么恭喜您,現(xiàn)在的你應(yīng)該擁有了一個基于原有表面擴大化的6個矩形表面了,如圖

14.png

通過上述的操作,1.體—2.面—3.offest—4.面—5.線—6.offest —7.面—8.體—9.寫入-10.牛批!這個流程中1-6我們都結(jié)束了,接下來只需要把我們按照飾面厚度正確改良過的新的飾面“邊線”轉(zhuǎn)化成新的面(surface),然后拉伸成有厚度的體,最后再寫入即可節(jié)點也很簡單。

15.png16.png

如果您看到上圖這個樣子,恭喜你,您只差最后一步了,將我們處理好的surface實體化并賦予材質(zhì),這里我們需要用到一個第三方節(jié)點:Springs

17.png

第一個端口接入我們處理好的surface,然后依次對照圖片填寫皆可。

諾,潔白的新衣就這樣做好了。

18.png

最后為了獎勵大家這么認(rèn)真的堅持到最后,再給大家補充一個知識點。

20.png

上圖族名程這里,如果老板想要讓我統(tǒng)計飾面數(shù)量或者自定義名稱該怎么辦呢

這里直接給大家一個方法。

21.png

回頭看看吧 是不是很完美。

19.png

節(jié)點包和源文件文首有鏈接,大家下載參照學(xué)習(xí),下節(jié)課我們學(xué)習(xí)給飾面添加尺寸信息及參數(shù),好好加油鴨!?。?/span>

本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。

未標(biāo)題-1.jpg

上一篇:Revit中基于線的模型與結(jié)構(gòu)框架的區(qū)別

下一篇:Revit中,瓷磚的縫(填充圖案)怎么調(diào)整?