Overview

Overview

A project model can have several view types. The following picture demonstrates the different types of views in the Project browser.

Figure 95: Different views in the Project browser

In the API, there are three ways to classify views. The first way is by using the view element View.ViewType property. It returns an enumerated value indicating the view type. The following table lists all available view types.

Table 44: Autodesk.Revit.DB.ViewType

Member Name

Description

AreaPlan

Area view.

CeilingPlan

Reflected ceiling plan view.

ColumnSchedule

Coulmn schedule view.

CostReport

Cost report view.

Detail

Detail view.

DraftingView

Drafting view.

DrawingSheet

Drawing sheet view.

Elevation

Elevation view.

EngineeringPlan

Engineering view.

FloorPlan

Floor plan view.

Internal

Revit's internal view.

Legend

Legend view.

LoadsReport

Loads report view.

PanelSchedule

Panel schedule view.

PressureLossReport

Pressure Loss Report view.

Rendering

Rendering view.

Report

Report view.

Schedule

Schedule view.

Section

Cross section view.

ThreeD

3-D view.

Undefined

Undefined/unspecified view.

Walkthrough

Walkthrough view.

The second way to classify views is by the class type.

The following table lists the view types and the corresponding views in the Project browser.

Table 45: Project Browser Views

Project Browser Views

View Type

Class Type

Area Plans

ViewType.AreaPlan

Elements.ViewPlan

Ceiling Plans

ViewType.CeilingPlan

Elements.ViewPlan

Graphic Column Schedule

ViewType.ColumnSchedule

Elements.View

Detail Views

ViewType.Detail

Elements.ViewSection

Drafting Views

ViewType.DraftingView

Elements.ViewDrafting

Sheets

ViewType.DrawingSheet

Elements.ViewSheet

Elevations

ViewType.Elevation

Elements.ViewSection

Structural Plans (Revit Structure)

ViewType.EngineeringPlan

Elements.ViewPlan

Floor Plans

ViewType.FloorPlan

Elements.ViewPlan

Legends

ViewType.Legend

Elements.View

Reports (Revit MEP)

ViewType.LoadsReport

Elements.View

Reports (Revit MEP)

ViewType.PanelSchedule

Elements.PanelScheduleView

Reports (Revit MEP)

ViewType.PresureLossReport

Elements.View

Renderings

ViewType.Rendering

Elements.ViewDrafting

Reports

ViewType.Report

Elements.View

Schedules/Quantities

ViewType.Schedule

Elements.ViewSchedule

Sections

ViewType.Section

Elements.ViewSection

3D Views

ViewType.ThreeD

Elements.View3D

Walkthroughs

ViewType.Walkthrough

Elements.View3D

This example shows how to use the ViewType property of a view to determine the view's type.

Code Region: Determining the View type

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

The third way to classify views is using the ViewFamilyType class. Most view creation methods required the Id of a ViewFamilyType for the new view. The Id of the ViewFamilyType can be retrieved from the View.GetTypeId() method. The ViewFamilyType.ViewFamily property returns a ViewFamily enumeration which specifies the family of the ViewFamilyType and similar to the ViewType enum documented above. The following example shows how to get the ViewFamily from a View.

Code Region: Determining view type from 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;
}