PanelScheduleView は、パネル、パネルに接続されている回路、それらの回路に対応する負荷についての情報が表示されるパネル集計表を表します。
パネルに接続された回路を一覧表示し、パネル上での位置、回路名、皮相負荷といった各回路に関する情報を表示する集計表を作成できます。パネル集計表には、見出し、回路テーブル、負荷要約、フッタの 4 つの主要な情報セクションが表示されます。選択したパネルの新しい[パネル集計表]ビューが作図領域に表示され、パネル集計表が[パネル集計表]フォルダの下のプロジェクト ブラウザに追加されます。パネル集計表には、次のデータが表示されます。
表示する追加の回路とパネル情報は、パネル集計表テンプレートで指定できます。これは、Revit API では PanelScheduleTemplate クラスで表されます。
PanelScheduleView は ViewSchedule と同様に TableView クラスから派生したものです。集計表とパネル集計表で共通している機能の一部については、「集計表のクラス」トピックに説明があります。
PanelScheduleView の作成には 2 つの静的オーバーロードが必要になります。PanelScheduleView.CreateInstanceView()の 1 つのオーバーロードには、パネル集計表を作成するドキュメントと、その集計表に関連付けられている電気パネルの要素の ID のみが必要になります。このメソッドでは、既定のパネル集計表テンプレートを使用して新しいビューを作成します。もう 1 つのオーバーロードは、使用する特定の PanelScheduleTemplate の ID を取得します。
次の例では、既定のテンプレートを使用して、ユーザが選択した電気パネルから新しいパネル集計表を作成し、アクティブなビューを新しいパネル集計表ビューに切り替えます。
|
コード領域: パネル集計表を作成 |
// Create a new panel schedule and switch to that view
public void CreatePanelSchedule(UIDocument uiDocument)
{
Document doc = uiDocument.Document;
Reference selected = uiDocument.Selection.PickObject(ObjectType.Element, "Select an electrical panel");
Element panel = doc.GetElement(selected);
if (null != panel)
{
PanelScheduleView psv = null;
using (Transaction trans = new Transaction(doc, "Create a new panel schedule"))
{
trans.Start();
psv = PanelScheduleView.CreateInstanceView(doc, panel.Id);
trans.Commit();
}
if (null != psv)
{
uiDocument.ActiveView = psv; // make new view the active view
}
else
{
TaskDialog.Show("Revit", "Please select one electrical panel.");
}
}
}
|
作成した集計表は、後で修正することができます。集計表のデータを移動する際に使用できる便利なメソッドがいくつかあります。データをさまざまな場所に移動するには、PanelScheduleView.GetCellsBySlotNumber()を使用して、指定したスロット番号のセル範囲を取得します。PanelScheduleView.MoveSlotTo()は、ソース スロットの回路を特定のスロットに移動します。回路を移動する前に PanelScheduleView.CanMoveSlotTo()を呼び出し、移動可能であることを確認します。
移動する回路がグループに属している場合は、グループ内のすべての回路が一緒に移動します。IsSlotGrouped()メソッドは、スロットがグループに属しているかどうかを確認します。スロットがグループに属していない場合は、このメソッドは 0 を返します。グループに属している場合は、返された値はグループ番号(0 より大きい値)になります。