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

Revit二次开发——创建墙体(1)(第十期)

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

Revit提供的api墙体的创建方法有5个重载,如下所示:

1.Create(Document, Curve, ElementId, Boolean)

2.Create(Document,IList(Curve), Boolean)

3.Create(Document, IList(Curve), ElementId, ElementId, Boolean)

4.Create(Document, IList(Curve), ElementId, ElementId, Boolean, XYZ

5.Create(Document, Curve, ElementId, ElementId, Double, Double, Boolean, Boolean)

这五个方法的都差不多,这期我们先将如何通过1.Create(Document, Curve, ElementId, Boolean)来实现默认墙体创建的。


开讲啦!

  1. 首先先来分析一下这个方法我们需要什么? 需要Document, Curve, ElementId, Boolean,那我们就一一来准备这些条件:(1)Document doc在模板里已经有了。 (2)Curve,我们可以创建一条直线: Line.CreateBound(new XYZ(0, 0, 0), new XYZ(0, 100, 0)) (3)ElementId,我们需要levelId,利用过滤器来找出我们需要的标高ID:
代码语言:javascript
复制
 FilteredElementCollector fil = new FilteredElementCollector(doc);
            fil.OfClass(typeof(Level));
  foreach (Level ll in fil)
            {  
                  ll.Id
             }

(4)Boolean 是否是结构,我们选 false


2.整合起来就是如下所示:

代码语言:javascript
复制
 FilteredElementCollector fil = new FilteredElementCollector(doc);
            fil.OfClass(typeof(Level));
            foreach (Level ll in fil)
            {
//在这我们需要判断一下要在那一层创建我们需要的墙体

                if (ll.Name.Contains("一层"))
                {
                    ElementId id = new ElementId(ll.Id.IntegerValue);
                    Wall wa = Wall.Create(doc, Line.CreateBound(new XYZ(0, 0, 0), new XYZ(0, 100, 0)), id, false);
                }
            }

这样我们就可以在一层平面创建一堵墙啦,来看一下效果吧!


一纸清墨书过往,谁人勘破这离殇。

精讲Revit二次开发,望与君交。

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

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

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

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

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