前言
通过选择建筑标高,从楼梯创建多层楼梯。标高高度改变时多层楼梯自动调整。可以在创建楼梯时创建多层楼梯,或稍后从现有楼梯生成多层楼梯。
图片来自官方文档:
多层楼梯创建
多层楼梯需要从现有楼梯中创建出来:
// Autodesk.Revit.DB.Architecture.MultistoryStairs
public static MultistoryStairs Create(Stairs stairs);
注意,并不是所有楼梯都能用来创建多层楼梯,在使用之前需要做个判断:
// Autodesk.Revit.DB.Architecture.MultistoryStairs
public static bool IsAcceptableForMultistoryStairs(Stairs stairs);
连接楼层
可以判断和指定多层楼梯连接在哪些楼层上:
// Autodesk.Revit.DB.Architecture.MultistoryStairs
public bool CanConnectLevel(ElementId levelId);
public bool CanDisconnectLevel(ElementId levelId);
public void ConnectLevels(ISet<ElementId> levelIds);
public void DisconnectLevels(ISet<ElementId> levelIds);
修改楼梯实例
创建多层楼梯时,楼梯构件会根据标高高度而分入不同组。具有相同标高高度的楼梯被视为一组,可同时编辑。还可更改组的楼梯类型。
如果选择的楼梯属于多层楼梯中的组,则组中的所有楼梯构件都会被选中,并会显示锁定图标。
图片来自官方文档:
从分组中分出来或者加回去:
// Autodesk.Revit.DB.Architecture.MultistoryStairs
public bool IsPinned(Stairs stairs);
public Stairs Pin(ElementId levelId);
public Stairs Unpin(ElementId levelId);
多层楼梯可以共同调整的参数只有一个,实际踏板深度:
// Autodesk.Revit.DB.Architecture.MultistoryStairs
public double ActualTreadDepth { get; set; }
其它接口
还有获取所有楼层和所有楼梯,根据楼梯查询楼层和根据楼层查询楼梯的功能。
public ISet<ElementId> GetAllConnectedLevels();
public ISet<ElementId> GetAllStairsIds();
public Stairs GetStairsOnLevel(ElementId levelId);
public ISet<ElementId> GetStairsPlacementLevels(Stairs stairs);