不知道大家有多少人和小编同样每天加班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源创计划”,欢迎正在阅读的你也加入,一块儿分享。