階段コンポーネント

階段コンポーネント

Stairs クラスは、Revit で階段要素を表し、階段の踏み板、蹴込み板、階数とともに階段の高さ、上の高さと下の高さについての情報を表すプロパティが含まれています。Stairs クラスのメソッドを使用して、階段の踊り場コンポーネント、階段経路コンポーネント、階段支持を取得できます。

次の例では、コンポーネントによる階段をすべて検索し、各階段についての情報をタスク ダイアログに出力します。この例では、すべての階段の ElementId を返す BuiltInCategory.OST_Stairs を使用するカテゴリ フィルタを使用しているため、ドキュメントから取得した際に Stairs クラスにキャストする前に、各 ElementId が[コンポーネントによる階段]を表しているかどうか確認するテストが必要です。

コード領域: 階段情報を取得

private Stairs GetStairInfo(Document document)
{
    Stairs stairs = null;

    FilteredElementCollector collector = new FilteredElementCollector(document);
    ICollection<ElementId> stairsIds = collector.WhereElementIsNotElementType().OfCategory(BuiltInCategory.OST_Stairs).ToElementIdsElementId();
    foreach (ElementId stairId in stairsIds)
    {
        if (Stairs.IsByComponent(document, stairId) == true)
        {
            stairs = document.GetElement(stairId) as Stairs;
                   
            // Format the information
            String info = "\nNumber of stories:  " + stairs.NumberOfStories;
            info += "\nHeight of stairs:  " + stairs.Height;
            info += "\nNumber of treads:  " + stairs.ActualTreadsNumber;
            info += "\nTread depth:  " + stairs.ActualTreadDepth;
            
            // Show the information to the user.
            TaskDialog.Show("Revit", info);
        }
    }
  
    return stairs;
}

StairsType クラスは、階段要素のタイプを表します。これには、Stairs オブジェクトのすべての踏面や踊り場のタイプ、階段の左側、右側、中央の支持のタイプおよびオフセット、および階段要素の各蹴込み板の最大高さなどの階段生成に関する他の多くのプロパティなど、階段に関する情報が含まれます。次の例では、階段要素の StairsType を取得し、タスク ダイアログにこれに関する情報を表示しています。

コード領域: StairsType 情報を取得

private void GetStairsType(Stairs stairs)
{
    StairsType stairsType = stairs.Document.GetElement(stairs.GetTypeId()) as StairsType;

    // Format stairs type info for display
    string info = "Stairs Type:  " + stairsType.Name;
    info += "\nLeft Lateral Offset:  " + stairsType.LeftLateralOffset;
    info += "\nRight Lateral Offset:  " + stairsType.RightLateralOffset;
    info += "\nMax Riser Height:  " + stairsType.MaxRiserHeight;
    info += "\nMin Run Width:  " + stairsType.MinRunWidth;

    TaskDialog.Show("Revit", info);
}

階段経路

コンポーネントによる階段は、階段経路、踊り場、支持で構成されています。これらの各項目は、Stairs クラスから取得できます。Revit API では、踏面は StairsRun クラスによって表されます。次の例では、Stairs オブジェクトの各踏面を取得し、これが蹴込み板で開始、終了することを確認しています。

コード領域: StairsRun を使用して作業

private void AddStartandEndRisers(Stairs stairs)
{
    ICollection<ElementId> runIds = stairs.GetStairsRuns();
            
    foreach (ElementId runId in runIds)
    {
        StairsRun run = stairs.Document.GetElement(runId) as StairsRun;
        if (null != run)
        {
            run.BeginsWithRiser = true;
            run.EndsWithRiser = true;
        }
    }
}

StairsRun クラスは、StairsRunStyle (直線、曲り階段など)、BaseElevation、TopElevationなどの踏面プロパティおよび蹴込み板などのプロパティにアクセスして実行します。また、踏面によってホストされる支持、および踏面の境界線のすべてまたは左右側のいずれかにアクセスする StairsRun のメソッドもあります。GetStairsPath()メソッドは、踏面の階段パスを表す曲線を返します。これは階段の基準レベルに投影されます。GetFootprintBoundary()メソッドは、階段の基準レベルに投影される踏面の境界曲線を返します。

新しい踏面を作成するための、StairsRun クラスの 3 つの静的メソッドがあります。これらについては、「階段を作成、編集する」セクションで取り扱います。

StairsRunType クラスは、StairsRun のタイプを表します。これには、踏面の踏み板と蹴込み板についての多くのプロパティと、踏面に関するその他の情報が含まれています。次の例では、階段要素の最初の踏面に StairsRunType を取得して、タイプの名前とともに蹴込み板と踏み板の厚さが表示されています。

コード領域: StairsRunType 情報を取得

private void GetRunType(Stairs stairs)
{
    ICollection<ElementId> runIds = stairs.GetStairsRuns();

    ElementId firstRunId = runIds.First();

    StairsRun firstRun = stairs.Document.GetElement(firstRunId) as StairsRun;
    if (null != firstRun)
    {
        StairsRunType runType = stairs.Document.GetElement(firstRun.GetTypeId()) as StairsRunType;
        // Format landing type info for display
        string info = "Stairs Run Type:  " + runType.Name;
        info += "\nRiser Thickness:  " + runType.RiserThickness;
        info += "\nTread Thickness:  " + runType.TreadThickness;

        TaskDialog.Show("Revit", info);
    }
}

踊り場

踊り場は、StairsLanding クラスで表されます。次の例では、Stairs オブジェクトの各踊り場の厚さを検索しています。

コード領域: StairsLanding を使用して作業

private void GetStairLandings(Stairs stairs)
{
    ICollection<ElementId> landingIds = stairs.GetStairsLandings();
    string info = "Number of landings:  " + landingIds.Count;

    int landingIndex = 0;
    foreach (ElementId landingId in landingIds)
    {
        landingIndex++;
        StairsLanding landing = stairs.Document.GetElement(landingId) as StairsLanding;
        if (null != landing)
        {
            info += "\nThickness of Landing " + landingIndex + ":  " + landing.Thickness;
        }
    }

    TaskDialog.Show("Revit", info);
}

StairsRun と同様に、StairsLanding には、階段の基準レベルに投影される踊り場の階段パスを表す曲線を返す StairsLanding has a GetStairsPath()メソッドと、踊り場の境界曲線を返し、これも階段の基準レベルに投影される GetFootprintBoundary()メソッドがあります。また StairsRun と同様、踊り場によってホストされるすべての支持を取得するメソッドがあります。

StairsLanding クラスには、2 つの踏面の間に新しい踊り場を作成するメソッドがあります。これについては、「階段を作成、編集する」セクションで取り扱います。

StairsLandingType クラスは、Revit API では踊り場のタイプを表します。StairsLandingType クラスには、これに固有のいくつかのプロパティがあり、階段の踊り場が一体式階段である場合は true を取る IsMonolithic、階段の踊り場の厚さを表す Thickness があります。

StairsComponentConnection

StairsRun と Stairs Landing の両方に、階段コンポーネント間(踏面から踏面、または踏面から踊り場)の接続に関する情報を提供する GetConnections()メソッドがあります。メソッドは、接続タイプ(踊り場方向、階段の踏面の開始、階段の踏面の終了)や接続された階段コンポーネントの ID などの各接続に関するプロパティを持つ StairsComponentConnection オブジェクトの集合を返します。

Revit API は階段支持のクラスを公開していません。階段、StairsRun、または StairsLanding を取得すると、支持は Revit の一般要素になります。次の例では、Stairs オブジェクトのすべての支持の名前を取得しています。

コード領域: 階段支持を取得

private void GetStairSupports(Stairs stairs)
{
    ICollection<ElementId> supportIds = stairs.GetStairsSupports();
    string info = "Number of supports:  " + supportIds.Count;

    int supportIndex = 0;
    foreach (ElementId supportId in supportIds)
    {
        supportIndex++;
        Element support = stairs.Document.GetElement(supportId);
        if (null != support)
        {
            info += "\nName of support " + supportIndex + ":  " + support.Name;
        }
    }

    TaskDialog.Show("Revit", info);
}