Revit二次開發——建立樓板(第十二期)

不知道大家有多少人和小編同樣每天加班4-5小時還走不了的加班狗。。。。。。最主要是。。。。。。。。微信


好了,言歸正傳,進入咱們這期的主題——利用Revit二次開發如何建立樓板spa

建立樓板的第一種方法:NewFloor(CurveArray profile, bool structural)這個方法比較簡單就不說了,咱們來講第二種方法:NewFloor(CurveArray profile, floorType, level, bool structural)和前幾期相似,咱們須要去把這四個條件集齊這樣就能夠建立出咱們想要的樓板了:.net

1.CurveArray profile。這是曲線的一個組合,和牆的集合有所不一樣要用Append來添加而不是add了,具體以下:blog

             CurveArray cu = new CurveArray();開發

            cu.Append(Line.CreateBound(new XYZ(0, 0, 0), new XYZ(100, 0, 0)));get

            cu.Append(Line.CreateBound(new XYZ(100, 0, 0), new XYZ(0, 100,0)));it

            cu.Append(Line.CreateBound(new XYZ(0, 100, 0), new XYZ(0, 0, 0)));io

2.floorType。咱們須要建立樓板的類型:class

 if (wa.GetParameters("默認的厚度")[0].AsValueString()=="225")//找到板厚爲225的板foreach

                {

                    fl = wa;

                     }

3.level。要建立樓板所在的標高,和牆同樣小編在這就不重複了。

4. bool structural。是不是結構,這回咱們選個true,也和牆相似小夥伴能夠去看前面幾期哦。


咱們來組合比較一下和建立牆的方法不一樣(1)在於建立牆時咱們須要的是牆類型和標高的ID而樓板則要的不是ID而是類型,本質上是同樣的;(2)建立軸線、標高、牆create一下就好而板則須要doc.create。下邊上代碼:

 FilteredElementCollector fil = new FilteredElementCollector(doc);

            fil.OfClass(typeof(Level));

            FilteredElementCollector fill = new FilteredElementCollector(doc);

            fill.OfClass(typeof(FloorType));

            FloorType fl = null;

            Level le= null;

            foreach (FloorType wa in fill)//查找板的類型

            {


                if (wa.GetParameters("默認的厚度")[0].AsValueString() == "225")//找到板厚爲225的板

                {

                    fl= wa;

                }

            }


            CurveArray cu = new CurveArray();

            cu.Append(Line.CreateBound(new XYZ(0, 0, 0), new XYZ(100, 0, 0)));//線條

            cu.Append(Line.CreateBound(new XYZ(100, 0, 0), new XYZ(0, 100, 0)));

            cu.Append(Line.CreateBound(new XYZ(0, 100, 0), new XYZ(0, 0, 0)));


            foreach (Level ll in fil)//找標高

            {

                if (ll.Name.Contains("一層"))//找到一層標高

                {

                   le = ll;

                }


            }

            Floor fll = doc.Create.NewFloor(cu, fl, le, true);


效果:

看到咱們寫true後結構和啓用分析模型就會被勾選(固然通常狀況咱們是false,由於分析模型會使得模型比較卡)


最後但願你們能夠睡眠良好財富自由永不加班



本文分享自微信公衆號 - 精講Revit二次開發(HelloRevit)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索