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 があります。
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);
}
|