前言
这个例子介绍如何创建幕墙,以及如何通过 API 编辑幕墙。
内容
运行效果:
 
创建幕墙
幕墙在 Revit 体系里面属于墙的一种,因此,它对应的 API 类型仍然为 Wall,只是类型有差异。
// WallGeometry::CreateCurtainWall
baseline = Line.CreateBound(m_startXYZ, m_endXYZ);
Wall wall = Wall.Create(m_myDocument.Document, baseline, m_selectedWallType.Id, m_selectedView.GenLevel.Id, 20, 0, false, false);
 
获取幕墙网格
namespace Autodesk.Revit.DB
{
    public class Wall : HostObject
    {
        public CurtainGrid CurtainGrid { get; }
    	// 省略其它
    }
}
 
和幕墙网格编辑相关的接口都在 CurtainGrid,包括网格线的增减、幕墙单元的操作等 :
namespace Autodesk.Revit.DB
{
    public class CurtainGrid : APIObject
    {
        public CurtainGridAlignType Grid1Justification { get; set; }
        public double Grid1Offset { get; set; }
        public CurtainGridAlignType Grid2Justification { get; set; }
        public double Grid2Angle { get; set; }
        public double Grid2Offset { get; set; }
        public int NumULines { get; }
        public int NumVLines { get; }
        public int NumPanels { get; }
        public double Grid1Angle { get; set; }
        public CurtainGridLine AddGridLine(bool isUGridLine, XYZ position, bool oneSegmentOnly);
        public Element ChangePanelType(Element panel, ElementType newSymbol);
        public CurtainCell GetCell(ElementId uGridLineId, ElementId vGridLineId);
        public ICollection<CurtainCell> GetCurtainCells();
        public ICollection<ElementId> GetMullionIds();
        public Panel GetPanel(ElementId uGridLineId, ElementId vGridLineId);
        public ICollection<ElementId> GetPanelIds();
        public ICollection<ElementId> GetUGridLineIds();
        public ICollection<ElementId> GetUnlockedMullionIds();
        public ICollection<ElementId> GetUnlockedPanelIds();
        public ICollection<ElementId> GetVGridLineIds();
    }
}
                








![[每周一更]-(第60期):15种MySQL索引失效场景](https://img-blog.csdnimg.cn/d83b7135730245aebd12e005c49e851f.jpeg#pic_center)








