我正在区域边界线上创建一堵墙,但找不到如何使用位置线“完成面部:外部”放置它的方法。
我从区域边界获取几何数据:
LocationCurve elLocation = (LocationCurve)area_boundary.Location;
XYZ pt1 = elLocation.Curve.get_EndPoint(0);
XYZ pt2 = elLocation.Curve.get_EndPoint(1);
然后根据它创建一条线来构建墙:
Line line = doc.Application.Create.NewLineBound(pt1, pt2);
Wall wall = Wall.Create(doc, line, level.Id, false);
此代码为我提供了一个墙,其中位置线和区域边界位于其中心。 有没有办法用位置线与外部区域边界重合来创建墙?
以下是Revit的screen-shoot。
提前谢谢!
答案 0 :(得分:0)
墙参考键有一个BuiltinParameter。
Autodesk.Revit.DB.WALL_KEY_REF_PARAM,可用于设置壁属性中墙壁上显示的参考值。
然而,我的理解是,在创建墙壁时,以编程方式,墙的线始终是墙中心线。 (如果他们知道更好的话,欢迎有人纠正这一点。)
答案 1 :(得分:0)
我这样解决了:
从外墙上看:
IList<Reference> sideFaces = HostObjectUtils.GetSideFaces(wall, ShellLayerType.Exterior);
Face face = uiDoc.Document.GetElement(sideFaces[0]).GetGeometryObjectFromReference(sideFaces[0]) as Face;
获取该脸部的法线向量并将其还原:
PlanarFace pf = face as PlanarFace;
XYZ normal_reverted = -1.0 * pf.Normal;
移动墙:
wall.Location.Move(normal_reverted * (wall.WallType.Width / 2.0));