0

我正在区域边界线上创建一堵墙,但找不到如何使用定位线“完成面:外部”放置它的方法。

我正在从区域边界获取几何数据:

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 的屏幕截图

先感谢您!

4

2 回答 2

0

墙壁参考键有一个 BuiltinParameter。

Autodesk.Revit.DB.WALL_KEY_REF_PARAM,可用于设置在墙属性中出现在墙上的参考值。

但是,我的理解是,在创建墙时,墙的线将始终是墙的中心线。(如果他们知道更好,欢迎有人纠正这个问题)。

于 2013-05-08T04:45:14.547 回答
0

我是这样解决的:

  1. 获取墙的外表面:

    IList<Reference> sideFaces = HostObjectUtils.GetSideFaces(wall, ShellLayerType.Exterior);
    Face face = uiDoc.Document.GetElement(sideFaces[0]).GetGeometryObjectFromReference(sideFaces[0]) as Face;
    
  2. 获取该面的法线向量并将其还原:

    PlanarFace pf = face as PlanarFace;
    XYZ normal_reverted = -1.0 * pf.Normal;
    
  3. 移动墙壁:

    wall.Location.Move(normal_reverted * (wall.WallType.Width / 2.0));
    
于 2013-05-16T16:49:50.457 回答