プロジェクト モデルには複数のビュー タイプを指定することができます。API には、ビューの分類方法が 3 つあります。最初の方法では、ビュー要素 View.ViewType プロパティを使用します。これは、ビュー タイプを示す列挙値を返します。次の表は、使用可能なすべてのビュー タイプの一覧です。
表 44: Autodesk.Revit.DB.ViewType
|
メンバー名 |
説明 |
|
AreaPlan |
エリア ビュー。 |
|
CeilingPlan |
天井伏図ビュー。 |
|
ColumnSchedule |
柱の集計表ビュー。 |
|
CostReport |
見積書ビュー。 |
|
Detail |
詳細図。 |
|
DraftingView |
製図ビュー。 |
|
DrawingSheet |
図面シート ビュー。 |
|
Elevation |
立面図ビュー。 |
|
EngineeringPlan |
エンジニアリング ビュー。 |
|
FloorPlan |
平面図ビュー。 |
|
Internal |
Revit の内部ビュー。 |
|
Legend |
凡例ビュー。 |
|
LoadsReport |
負荷レポート ビュー。 |
|
PanelSchedule |
パネル集計表ビュー。 |
|
PressureLossReport |
圧力損失レポート ビュー。 |
|
Rendering |
レンダリング ビュー。 |
|
Report |
レポート ビュー。 |
|
Schedule |
集計表ビュー。 |
|
Section |
断面ビュー。 |
|
ThreeD |
3D ビュー。 |
|
Undefined |
未設定/未指定のビュー。 |
|
Walkthrough |
ウォークスルー ビュー。 |
ビューを分類する 2 番目の方法はクラス タイプによる分類です。
次の表は、ビュー タイプとプロジェクト ブラウザ内の対応するビューの一覧です。
表 45: プロジェクト ブラウザ ビュー
|
プロジェクト ブラウザ ビュー |
ビュー タイプ |
クラス タイプ |
|
エリア プラン |
ViewType.AreaPlan |
Elements.ViewPlan |
|
天井伏図 |
ViewType.CeilingPlan |
Elements.ViewPlan |
|
柱リスト図 |
ViewType.ColumnSchedule |
Elements.View |
|
詳細ビュー |
ViewType.Detail |
Elements.ViewSection |
|
製図ビュー |
ViewType.DraftingView |
Elements.ViewDrafting |
|
シート |
ViewType.DrawingSheet |
Elements.ViewSheet |
|
立面図 |
ViewType.Elevation |
Elements.ViewSection |
|
構造伏図(Revit Structure) |
ViewType.EngineeringPlan |
Elements.ViewPlan |
|
平面図 |
ViewType.FloorPlan |
Elements.ViewPlan |
|
凡例 |
ViewType.Legend |
Elements.View |
|
レポート(Revit MEP) |
ViewType.LoadsReport |
Elements.View |
|
レポート(Revit MEP) |
ViewType.PanelSchedule |
Elements.PanelScheduleView |
|
レポート(Revit MEP) |
ViewType.PresureLossReport |
Elements.View |
|
レンダリング |
ViewType.Rendering |
Elements.ViewDrafting |
|
レポート |
ViewType.Report |
Elements.View |
|
集計表/数量 |
ViewType.Schedule |
Elements.ViewSchedule |
|
断面 |
ViewType.Section |
Elements.ViewSection |
|
3D ビュー |
ViewType.ThreeD |
Elements.View3D |
|
ウォークスルー |
ViewType.Walkthrough |
Elements.View3D |
|
コード領域: ビュー タイプを決定 |
public void GetViewType(Autodesk.Revit.DB.View view)
{
// Get the view type of the given view, and format the prompt string
String prompt = "The view is ";
switch (view.ViewType)
{
case ViewType.AreaPlan:
prompt += "an area view.";
break;
case ViewType.CeilingPlan:
prompt += "a reflected ceiling plan view.";
break;
case ViewType.ColumnSchedule:
prompt += "a column schedule view.";
break;
case ViewType.CostReport:
prompt += "a cost report view.";
break;
case ViewType.Detail:
prompt += "a detail view.";
break;
case ViewType.DraftingView:
prompt += "a drafting view.";
break;
case ViewType.DrawingSheet:
prompt += "a drawing sheet view.";
break;
case ViewType.Elevation:
prompt += "an elevation view.";
break;
case ViewType.EngineeringPlan:
prompt += "an engineering view.";
break;
case ViewType.FloorPlan:
prompt += "a floor plan view.";
break;
// ...
default:
break;
}
// Give the user some information
MessageBox.Show(prompt, "Revit", MessageBoxButtons.OK);
}
|
ビューを分類する 3 番目の方法は ViewFamilyType クラスによる分類です。ほとんどのビュー作成メソッドでは、新しいビューの ViewFamilyType の ID が必要になります。ViewFamilyType の ID は View.GetTypeId()メソッドにより取得できます。ViewFamilyType.ViewFamily プロパティは、ViewFamilyType のファミリを指定する ViewFamily 列挙値を返します。これは上述の ViewType 列挙値に似ています。次の例は、ビューから ViewFamily を取得する方法を説明しています。
|
コード領域: ViewFamilyType からビュー タイプを決定 |
public ViewFamily GetViewFamily(Document doc, View view)
{
ViewFamily viewFamily = ViewFamily.Invalid;
ElementId viewTypeId = view.GetTypeId();
if (viewTypeId.IntegerValue > 1) // some views may not have a ViewFamilyType
{
ViewFamilyType viewFamilyType = doc.GetElement(viewTypeId) as ViewFamilyType;
viewFamily = viewFamilyType.ViewFamily;
}
return viewFamily;
}
|