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源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索