网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Revit创建墙体的方法

这篇“Revit创建墙体的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Revit创建墙体的方法”文章吧。

10年积累的网站建设、成都网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有孝南免费网站建设让你可以放心的选择与我们合作。

1.Document doc在模板里已经有了,不多说了。

2. IList(Curve),需要我们准备墙的曲线:

 IList cu = new List();//墙的线条

            cu.Add(Line.CreateBound(new XYZ(100, 20, 0), new XYZ(100, -20, 0)));//线条

            cu.Add(Line.CreateBound(new XYZ(100, -20, 0), new XYZ(100, -20, 10)));

            cu.Add(Line.CreateBound(new XYZ(100, -20, 10), new XYZ(100, 20, 10)));

            cu.Add(Line.CreateBound(new XYZ(100, 20, 10), new XYZ(100, 20, 0)));

3. 这里第一个ElementId 是WalltypeId 需要一个墙类型的ID,只要我们建好的墙类型都存储在doc里,我们只要按类别去把它挑选出来就可以了:

 FilteredElementCollector fill = new FilteredElementCollector(doc);

            fill.OfClass(typeof(WallType));

            ElementId idd = null;//记录墙的ID

            foreach (WallType wa in fill)//查找墙的类型

            {

                if (wa.FamilyName.Contains("基本墙")&&wa.Width*304.8==200)//找到基本墙且墙宽200

                {

                    idd = wa.Id;//记录墙的类型

                }

            }


4.ElementId,是需要levelId,在上期我们已经讲过了代码如下:

 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);//记录标高ID

}
5.Boolean  是否是结构,我们选 false,也和上期一样,我们不需要做结构受力分析所以选择否。

后面我们就把代码串起来:

FilteredElementCollector fil = new FilteredElementCollector(doc);

            fil.OfClass(typeof(Level));

            FilteredElementCollector fill = new FilteredElementCollector(doc);

            fill.OfClass(typeof(WallType));

            ElementId idd = null;//记录墙的ID

            foreach (WallType wa in fill)//查找墙的类型

            {

                if (wa.FamilyName.Contains("基本墙")&&wa.Width*304.8==200)//找到基本墙且墙宽200

                {

                    idd = wa.Id;//记录墙的类型

                }

            }

            IList cu = new List();//墙的线条

            cu.Add(Line.CreateBound(new XYZ(100, 20, 0), new XYZ(100, -20, 0)));//线条

            cu.Add(Line.CreateBound(new XYZ(100, -20, 0), new XYZ(100, -20, 10)));

            cu.Add(Line.CreateBound(new XYZ(100, -20, 10), new XYZ(100, 20, 10)));

            cu.Add(Line.CreateBound(new XYZ(100, 20, 10), new XYZ(100, 20, 0)));

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

            {

                if (ll.Name.Contains("一层"))//找到一层标高

                {

                    ElementId id = new ElementId(ll.Id.IntegerValue);//记录标高ID

                    Wall wa = Wall.Create(doc, cu,idd, id, false);//画墙

                }

            }


运行一下效果:

Revit创建墙体的方法

可以看见是基本墙200在一层标高处绘制,墙的线型轮廓可以随便改哦。注意:如果你筛选墙的ID发生错误,请检查你的墙筛选的条件是否符合多个墙的要求,调试找出错误是学习快速进步的一个方法哦。

以上就是关于“Revit创建墙体的方法”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注创新互联行业资讯频道。


本文标题:Revit创建墙体的方法
文章链接:http://bjjierui.cn/article/pihiih.html

其他资讯