这篇“Revit创建墙体的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Revit创建墙体的方法”文章吧。
1.Document doc在模板里已经有了,不多说了。
2. IList(Curve),需要我们准备墙的曲线:
IList<Curve> cu = new List<Curve>();//墙的线条
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<Curve> cu = new List<Curve>();//墙的线条
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);//画墙
}
}
运行一下效果:
可以看见是基本墙200在一层标高处绘制,墙的线型轮廓可以随便改哦。注意:如果你筛选墙的ID发生错误,请检查你的墙筛选的条件是否符合多个墙的要求,调试找出错误是学习快速进步的一个方法哦。
以上就是关于“Revit创建墙体的方法”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。