Revit API找到墙的正面

Wall.Orientation指示墙的正方向,判断Face与这个正方向的夹角一致,即为墙的正面。
//找到墙的正面
public static Face FindWallFace(Wall wall)
{
    Face normalFace = null;
    //
    Options opt = new Options();
    opt.ComputeReferences = true;
    opt.DetailLevel = Autodesk.Revit.DB.DetailLevels.Medium;
    //
    GeometryElement e = wall.get_Geometry(opt);
    foreach (GeometryObject obj in e.Objects)
    {
        Solid solid = obj as Solid;
        if (solid != null && solid.Faces.Size > 0)
        {
            foreach (Face face in solid.Faces)
            {
                PlanarFace pf = face as PlanarFace;
                if (pf != null)
                {
                    if (pf.Normal.AngleTo(wall.Orientation) < 0.01)//数值在0到PI之间
                    {
                        normalFace = face;
                    }
                }
            }
        }
    }
    return normalFace;
}
from:http://revit.5d6d.com/thread-1374-1-1.html
posted @ 2012-03-28 09:03  大气象  阅读(1413)  评论(0编辑  收藏  举报
http://www.tianqiweiqi.com