Revit SDK 介绍:CurtainWallGrid 幕墙网格

前言

这个例子介绍如何创建幕墙,以及如何通过 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();
    }
}

你可能感兴趣的:(Revit,SDK,介绍,C#)