在结构样板项目中,生成的墙会自带顶部约束

在​​Revit生成墙的坑​​这篇文章里,是墙的一个坑:底部约束。而本文要说的是另一个坑:顶部约束。

这样,同样在建筑样板中生成墙的代码,在结构样板项目中生成出来的样子就会变的不正确,不正确的地方就是墙的高度

因为顶部约束的存在,会使得你的墙最高点被固定为顶部约束所对应的标高的高度,如此一来设置墙高也没用

Revit生成墙,顶部约束问题_顶部约束

那么,解决方法就是首先要去掉顶部约束

Wall w;
w.get_Parameter(BuiltInParameter.WALL_HEIGHT_TYPE).Set(ElementId.InvalidElementId);

上面代码的意思,就是把墙的顶部约束,赋一个非法标高id,这样顶部约束就去掉了,如下图

Revit生成墙,顶部约束问题_二次开发_02

然后再设置墙的高度(这个需要你手动计算一下真正的墙高)

Wall w;
double wallHeight;
w.get_Parameter(BuiltInParameter.WALL_USER_HEIGHT_PARAM).Set(wallHeight);