2027 Method
Changes 0
M

Railing.Create

Description:
Automatically creates new railings with the specified railing type on all sides of a stairs or ramp element.
Overloads (3):
Create(Document,ElementId,ElementId,RailingPlacementPosition)
public static ICollection<ElementId> Create(
	Document document,
	ElementId stairsOrRampId,
	ElementId railingTypeId,
	RailingPlacementPosition placePosition
)
  • document
    The document.
  • stairsOrRampId
    The stairs or ramp to which the new railing will host. The stairs or ramp should have no associated railings yet. If the stairs are a part of MultistoryStairs element railings will be populated on all levels.
  • railingTypeId
    The railing type of the new railing to be created.
  • placePosition
    The placement position of the new railing.
Return Value ICollection<ElementId> The new railing instances successfully created on the stairs.
private void CreateRailing(Document document, Stairs stairs)
{
    using (Transaction trans = new Transaction(document, "Create Railings"))
    {
        trans.Start();

        // Delete existing railings
        ICollection<ElementId> railingIds = stairs.GetAssociatedRailings();
        foreach (ElementId railingId in railingIds)
        {
            document.Delete(railingId);
        }
        // Find RailingType
        FilteredElementCollector collector = new FilteredElementCollector(document);
        ICollection<ElementId> RailingTypeIds = collector.OfClass(typeof(RailingType)).ToElementIds();
        Railing.Create(document, stairs.Id, RailingTypeIds.First(), RailingPlacementPosition.Treads);
        trans.Commit();
    }
}