概要

概要

プロジェクト モデルには複数のビュー タイプを指定することができます。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

レポート ビュー。

集計表

集計表ビュー。

Section

断面ビュー。

ThreeD

3D ビュー。

Undefined

未定義/未指定のビュー。

ウォークスルー

ウォークスルー ビュー。

ビューを分類する 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

この例は、ビューのタイプを判別するためのビューの ViewType プロパティの使用方法を説明しています。

コード領域: ビュー タイプを決定

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;
}