前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Revit二次开发——创建楼板(第十二期)

Revit二次开发——创建楼板(第十二期)

作者头像
一席青衣卧龙城
发布2022-04-21 12:14:32
1.3K1
发布2022-04-21 12:14:32
举报
文章被收录于专栏:Revit二次开发

不知道你们有多少人和小编一样天天加班4-5小时还走不了的加班狗。。。。。。最主要是。。。。。。。


好了,言归正传,进入我们这期的主题——利用Revit二次开发如何创建楼板

创建楼板的第一种方法:NewFloor(CurveArray profile, bool structural)这个方法比较简单就不说了,我们来说第二种方法:NewFloor(CurveArray profile, floorType, level, bool structural)和前几期类似,我们需要去把这四个条件集齐这样就可以创建出我们想要的楼板了:

1.CurveArray profile。这是曲线的一个组合,和墙的集合有所不同要用Append来添加而不是add了,具体如下:

代码语言:javascript
复制
             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)));

2.floorType。我们需要创建楼板的类型:

代码语言:javascript
复制
 if (wa.GetParameters("默认的厚度")[0].AsValueString()=="225")//找到板厚为225的板
                {
                    fl = wa;
   }

3.level。要创建楼板所在的标高,和墙一样小编在这就不重复了。

4. bool structural。是否是结构,这回我们选个true,也和墙类似小伙伴可以去看前面几期哦。


我们来组合比较一下和创建墙的方法不同

(1)在于创建墙时我们需要的是墙类型和标高的ID而楼板则要的不是ID而是类型,本质上是一样的;

(2)创建轴线、标高、墙create一下就好而板则需要doc.create。

下边上代码:

代码语言:javascript
复制
 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,因为分析模型会使得模型比较卡)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-04-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 精讲Revit二次开发 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档