RevitAPI Samples Readme


Introduction

This document provides an overview of the sample applications that come with RevitAPI for .NET developers. Whether you are new to RevitAPI or relatively experienced with it, the sample applications can be a source of ideas and an opportunity to learn new concepts. In addition to describing what each sample application does, this document gives tips on building samples and explains the sample categories, lists the skill level required to understand each application, and provides a suggested order in which to go through the sample applications.

Build_samples

The samples projects use references of RevitAPI.dll and RevitAPIUI.dll files in Revit default installation folders.
If any of the files does not exist, you will not be able to build all the samples. That means to build all the samples, you should have Revit Architecture installed in their default installation folders. If you happen to just install only one (or two) versions of Revit or install Revit products in non-standard places, you can use either of the following solutions.

Sample Categories

The RevitAPI sample applications are grouped into subdirectories according to the major focus of the sample code. The subdirectories and descriptions of the corresponding categories are listed below.

Basics

The category Contains samples related to the ExternalCommand framework, transactions, and event registration.

Geometry

Contains samples related to read and analysis of element geometry including curves and reference planes.

Parameters

Contains samples related to creation, modification and read of element and shared parameters.

Elements

Contains samples related to Revit basic elements such as walls, roofs, floors, levels, grids.

Families

Contains samples related to family creation and family instances.

Materials

Contains samples related to materials and units.

Annotation

Contains samples related to annotations such as notes, detail curves, dimensions and tags.

Views

Contains samples related to view creation and view properties.

Rooms/Spaces

Contains samples related to rooms, spaces and areas.

Data Exchange

Contains samples related to import, export, or print of Revit documents.

MEP

Contains MEP-specific samples.

Structure

Contains structure-specific samples.

Sample Skill Levels

To help you identify where to start and what skill level you need to understand a particular sample application, this document lists a skill level rating for each sample. The four levels, beginning, medium, high, and advanced, are characterized by the specific RevitAPI development skills described below.

Beginning

At this level, the developer has an understanding of the RevitAPI database and knows most of features that RevitAPI provides.

Medium

At this level, the developer knows how to:

High

At this level, the developer knows how to:

Advanced

At this level, the developer knows how to:

By Category

Basics

APIAppStartup
AutoStamp
AutoUpdate
CancelSave
ChangesMonitor
DeleteDimensions
DeleteObject
DesignOptionReader
DisableCommand
ErrorHandling
EventsMonitor
HelloRevit
Journaling
ModelessForm_ExternalEvent
ModelessForm_IdlingEvent
ModifyIniFile
PhaseSample
PrintLog
ProgressNotifier
ProjectInfo
ProjectUnit
ReferencePlane
RevitCommands
Ribbon
RotateFramingObjects
RvtSamples
TransactionControl
VersionChecking
WorkThread

Geometry

AnalyticalViewer
AutoJoin
DirectionCalculation
DistanceToPanels
DistanceToSurfaces
DynamicModelUpdate
ElementViewer
FindColumns
GeometryCreation_BooleanOperation
ManipulateForm
MaterialQuantities
MeasureHeight
MeasurePanelArea
MultithreadedCalculation
NewPathReinforcement
PanelEdgeLengthAngle
PointCloudEngine
PointCurveCreation
ProximityDetection_WallJoinControl
RayTraceBounce
ReferencePlane
RoomViewer
ShaftHolePuncher
SlabShapeEditing
SlaveSymbolGeometry
SolidSolidCut
SpatialFieldGradient
Truss

Parameters

AutoParameter
BeamAndSlabNewParameter
BrowseBindings
CreateBeamsColumnsBraces
CreateShared
DeckProperties
FamilyParametersOrder
FireRating
InvisibleParam
MoveLinear
ParameterUtils
PhysicalProp
SlabProperties
SpanDirection
TestFloorThickness
TestWallThickness
VersionChecking

Elements

CreateFillPattern
CurtainSystem
CurtainWallGrid
DesignOptionReader
ElementsBatchCreation
ExtensibleStorageManager
FoundationSlab
GenerateFloor
GridCreation
LevelsProperty
ModelLines
MoveLinear
NewHostedSweep
NewOpenings
NewRoof
Openings
PerformanceAdviserControl
ShaftHolePuncher
SharedCoordinateSystem
SlabProperties
SlabShapeEditing
SpanDirection
StairsAutomation
ViewFilters

Families

AutoParameter
CreateAirHandler
CreateTruss
DividedSurfaceByIntersects
DWGFamilyCreation
GenericModelCreation
InPlaceMembers
PlaceFamilyInstanceByFace
RevitCommands
TypeRegeneration
TypeSelector
ValidateParameters
WindowWizard

Materials

MaterialProperties
PhysicalProp

Annotation

AutoTagRooms
CreateDimensions
DeleteDimensions
SpotDimension
TagBeam

Views

AllViews
CreateViewSection
ObjectViewer
VisibilityControl

Rooms/Spaces

AddSpaceAndZone
DoorSwing
RoofsRooms
Rooms
RoomSchedule

Data Exchange

ArchSample
DWGFamilyCreation
ImportExport
PanelSchedule
ProjectUnit
ViewPrinter
ExternalResourceServer

MEP

AutoRoute
AvoidObstruction
PowerCircuit
RoutingPreferenceTools
TraverseSystem

By Skill Level

Beginning

APIAppStartup
AreaReinCurve
AutoRoute
BrowseBindings
CancelSave
CreateFillPattern
CreateShared
CurvedBeam
DeckProperties
DeleteDimensions
DeleteObject
DesignOptionReader
DistanceToPanels
DWGFamilyCreation
ElementsBatchCreation
FireRating
HelloRevit
LevelsProperty
MeasurePanelArea
ModelLines
ModifyIniFile
MoveLinear
PanelEdgeLengthAngle
PanelSchedule
ParameterUtils
PhaseSample
PhysicalProp
PointCurveCreation
PowerCircuit
ProjectInfo
ProjectUnit
RevitCommands
Ribbon
Rooms
RvtSamples
Selections
SlabProperties
SlaveSymbolGeometry
SolidSolidCut
SpanDirection
SpotDimension
StructSample
StructuralLayerFunction
TagBeam
TestFloorThickness
TestWallThickness
TypeRegeneration
TypeSelector
ValidateParameters
VersionChecking
WindowWizard

Medium

AddSpaceAndZone
AllViews
AnalyticalSupportData_Info
AnalyticalViewer
ArchSample
AreaReinParameters
AutoJoin
AutoParameter
AutoStamp
AutoTagRooms
AutoUpdate
AvoidObstruction
BeamAndSlabNewParameter
ChangesMonitor
CompoundStructure
CreateAirHandler
CreateBeamsColumnsBraces
CreateComplexAreaRein
CreateDimensions
CreateSimpleAreaRein
CreateTruss
CreateViewSection
CreateWallinBeamProfile
CreateWallsUnderBeams
CurtainSystem
CurtainWallGrid
DisableCommand
DividedSurfaceByIntersects
DoorSwing
ElementViewer
EnergyAnalysisModel
ErrorHandling
EventsMonitor
ExternalResourceServer
FoundationSlab
FrameBuilder
GenerateFloor
GenericModelCreation
GeometryCreation_BooleanOperation
InPlaceMembers
InvisibleParam
Journaling
Loads
ManipulateForm
MaterialProperties
MeasureHeight
ModelessForm_ExternalEvent
ModelessForm_IdlingEvent
NewForm
NewPathReinforcement
PathReinforcement
PlaceFamilyInstanceByFace
PrintLog
ProgressNotifier
ProximityDetection_WallJoinControl
RayTraceBounce
ReferencePlane
RoofsRooms
RoomViewer
RotateFramingObjects
RoutingPreferenceTools
SharedCoordinateSystem
SlabShapeEditing
StairsAutomation
TransactionControl
TraverseSystem
Truss
ViewFilters
ViewPrinter
VisibilityControl
WorkThread

High

BoundaryConditions
CreateBeamSystem
GridCreation
ImportExport
MultiplanarRebar
NewHostedSweep
NewOpenings
NewRebar
NewRoof
Openings
Reinforcement
RoomSchedule
ShaftHolePuncher

Advanced

DirectionCalculation
DistanceToSurfaces
DynamicModelUpdate
ExtensibleStorageManager
FindColumns
MaterialQuantities
MultithreadedCalculation
ObjectViewer
ParameterValuesFromImage
PointCloudEngine
SpatialFieldGradient

By Version

8.0

AnalyticalViewer
ArchSample
BrowseBindings
CreateShared
ElementViewer
FireRating
MoveLinear
PhysicalProp
RevitCommands
RoomViewer
StructSample
TypeSelector

8.1

DeckProperties
HelloRevit
InvisibleParam
ParameterUtils
SpanDirection

9.0

AllViews
AnalyticalSupportData_Info
AreaReinCurve
AreaReinParameters
BeamAndSlabNewParameter
CreateBeamsColumnsBraces
CreateComplexAreaRein
CreateDimensions
CreateSimpleAreaRein
CreateViewSection
CreateWallinBeamProfile
CreateWallsUnderBeams
DeleteDimensions
DeleteObject
DesignOptionReader
GenerateFloor
InPlaceMembers
LevelsProperty
Loads
MaterialProperties
ObjectViewer
PhaseSample
RotateFramingObjects
SlabProperties
StructuralLayerFunction
VersionChecking

9.1

BoundaryConditions
CreateBeamSystem
FoundationSlab
FrameBuilder
Journaling
Openings
ReferencePlane
Reinforcement
Rooms
SharedCoordinateSystem

2008.0

APIAppStartup
AutoTagRooms
CurvedBeam
ImportExport
ModifyIniFile
NewOpenings
NewPathReinforcement
PathReinforcement
ProjectInfo
ProjectUnit
ShaftHolePuncher
SpotDimension
TagBeam
TestFloorThickness
TestWallThickness
TransactionControl
ViewPrinter
VisibilityControl

2008.2

ModelLines
RoomSchedule

2009.0

AddSpaceAndZone
CurtainSystem
CurtainWallGrid
DoorSwing
ElementsBatchCreation
GridCreation
NewHostedSweep
NewRebar
NewRoof
PlaceFamilyInstanceByFace
PowerCircuit
RvtSamples
SlabShapeEditing
Truss

2009.1

RoofsRooms

2010.0

AutoJoin
AutoParameter
AutoRoute
AutoStamp
AutoUpdate
AvoidObstruction
CancelSave
CreateAirHandler
CreateTruss
DistanceToPanels
DWGFamilyCreation
EventsMonitor
GenericModelCreation
ManipulateForm
MeasurePanelArea
NewForm
PanelEdgeLengthAngle
PrintLog
RayTraceBounce
Ribbon
TraverseSystem
TypeRegeneration
ValidateParameters
WindowWizard

2011.0

ChangesMonitor
DirectionCalculation
DistanceToSurfaces
DividedSurfaceByIntersects
DynamicModelUpdate
ErrorHandling
FindColumns
MaterialQuantities
MeasureHeight
PanelSchedule
ParameterValuesFromImage
PointCurveCreation
ProximityDetection_WallJoinControl
Selections
SolidSolidCut
SpatialFieldGradient
ViewFilters

2012.0

CompoundStructure
CreateFillPattern
EnergyAnalysisModel
ExtensibleStorageManager
GeometryCreation_BooleanOperation
MultiplanarRebar
MultithreadedCalculation
PerformanceAdviserControl
PointCloudEngine
SlaveSymbolGeometry

2013.0

DisableCommand
ModelessForm_ExternalEvent
ModelessForm_IdlingEvent
ProgressNotifier
RoutingPreferenceTools
StairsAutomation
WorkThread

2015.0


ExternalResourceServer
FamilyParametersOrder

By Name alphabetically

This section lists the sample applications in alphabetical order and briefly discusses what each application does.
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

AddSpaceAndZone

Subject: Create spaces and zones.
Skill Level: Medium
Category: Rooms/Spaces
Type: ExternalCommand
Revit Platform: MEP
First Released For: 2009.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Mechanical.Space
Autodesk.Revit.DB.Mechanical.Zone
Autodesk.Revit.DB.Phase
Autodesk.Revit.Creation.Document
Summary: This sample demonstrates three main features:
1. How to get all Space elements in a specified level.
2. How to get all Zone elements in a specified level.
3. How to create Space elements for each closed wall loop or closed space separation.
4. How to create a new Zone element in a specified level and phase.
5. How to add/remove spaces in a Zone element.


AllViews

Subject: Generate a new sheet that includes all the selected views.
Skill Level: Medium
Category: Views
Type: ExternalCommand
Revit Platform: All
First Released For: 9.0
Classes: Autodesk.Revit.DB.View
Autodesk.Revit.DB.ViewSet
Autodesk.Revit.Creation.Document.NewViewSheet
Summary: This sample demonstrates how to generate a new sheet that includes all the selected views.


AnalyticalSupportData_Info

Subject: Display elements' analytical support informations.
Skill Level: Medium
Category: Structure
Type: ExternalCommand
Revit Platform: Structure
First Released For: 9.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Structure.AnalyticalModel
Autodesk.Revit.DB.Structure.AnalyticalModelSupport
Autodesk.Revit.DB.Structure.AnalyticalSupportType
Summary: This sample displays the supported information of the element (includes the element id, element type and supported type of the element).


AnalyticalViewer

Subject: View analytical model wireframe.
Skill Level: Medium
Category: Geometry
Type: ExternalCommand
Revit Platform: Structure
First Released For: 8.0
Classes: Autodesk.Revit.DB.Structure.AnalyticalModel
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Wall
Autodesk.Revit.DB.ContFooting
Autodesk.Revit.DB.Floor
Summary: This program demonstrates the usage of a structural analytical model. This sample uses a helper program RevitViewer.


APIAppStartup

Subject: Launch an external application.
Skill Level: Beginning
Category: Basics
Type: ExternalApplication
Revit Platform: All
First Released For: 2008.0
Classes: Autodesk.Revit.UI.IExternalApplication
Summary: This sample demonstrates how to launch an external application when Revit starts and closes.


ArchSample

Subject: Export data to Excel.
Skill Level: Medium
Category: Data Exchange
Type: ExternalCommand
Revit Platform: All
First Released For: 8.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.Collections.Map
Autodesk.Revit.Collections.MapIterator
Autodesk.Revit.DB.ElementSet
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.ParameterSet
Autodesk.Revit.Collections.Set
Summary: This sample exports the contents of an entire project to Microsoft Excel 2003.


AreaReinCurve

Subject: Parameters of AreaReinCurve.
Skill Level: Beginning
Category: Structure
Type: ExternalCommand
Revit Platform: Structure
First Released For: 9.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.ElementSet
Autodesk.Revit.DB.Structure.AreaReinforcementCurve
Autodesk.Revit.DB.BuiltInParameter
Summary: This sample shows user how to get AreaReinforcementCurve and change its parameters.


AreaReinParameters

Subject: Parameters of AreaReinforcement and Rebar.
Skill Level: Medium
Category: Structure
Type: ExternalCommand
Revit Platform: Structure
First Released For: 9.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.ElementSet
Autodesk.Revit.DB.ElementIterator
Autodesk.Revit.DB.Structure.RebarBarType
Autodesk.Revit.DB.Structure.AreaReinforcementCurve
Autodesk.Revit.DB.BuiltInParameter
Summary: This sample shows how to use API displays and modifies parameters of AreaReinforcement. And teach user how to get all parameters of Rebar.


AutoJoin

Subject: Automatically join geometry of combinable elements.
Skill Level: Medium
Category: Geometry
Type: ExternalCommand
Revit Platform: All
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.CombinableElement
Summary: This sample demonstrates how to automatically join geometry between multiple generic forms for use in family modeling and massing.


AutoParameter

Subject: Auto add parameters to family document.
Skill Level: Medium
Category: Parameters, Families
Type: ExternalCommand
Revit Platform: All
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.Document
Autodesk.Revit.DB.FamilyManager
Autodesk.Revit.DB.FamilyParameter
Autodesk.Revit.DB.ExternalDefinition
Summary: This sample demonstrates how to automatically add parameters (shared or not) to family documents.


AutoRoute

Subject: Route ducts and fittings.
Skill Level: Beginning
Category: MEP
Type: ExternalCommand
Revit Platform: All
First Released For: 2010.0
Classes: Autodesk.Revit.DB.Mechanical.MechanicalSystem
Autodesk.Revit.DB.Mechanical.Duct
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Connector
Autodesk.Revit.DB.Document
Summary: This sample demonstrates how to route a set of ducts and fittings between a base air supply equipment and 2 terminals.


AutoStamp

Subject: Auto stamp when print view.
Skill Level: Medium
Category: Basics
Type: ExternalApplication
Revit Platform: All
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalApplication
Autodesk.Revit.DB.TextNote
Autodesk.Revit.DB.Geometry.XYZ
Autodesk.Revit.DB.Events.ViewPrintingEventArgs
Autodesk.Revit.DB.Events.ViewPrintedEventArgs
Summary: This sample demonstrates how to subscribe ViewPrint events, create and delete TextNote element in event handler and cancel events when creation failure occurred.


AutoTagRooms

Subject: Auto Tag Rooms.
Skill Level: Medium
Category: Annotation
Type: ExternalCommand
Revit Platform: Architecture
First Released For: 2008.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Architecture.Room
Autodesk.Revit.DB.Architecture.RoomTag
Autodesk.Revit.DB.Architecture.RoomTagType
Autodesk.Revit.Creation.Document
Summary: This sample demonstrates three main features:
1. How to get all rooms in a specified level.
2. How to get all room tags in current document.
3. How to create new room tags with specified room tag type to auto tag all rooms in a specified level.


AutoUpdate

Subject: Auto-update Revit model after document is opened.
Skill Level: Medium
Category: Basics
Type: ExternalApplication
Revit Platform: All
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalApplication
Autodesk.Revit.DB.Events
Summary: This sample demonstrates how to subscribe DocumentOpened event and modify model in event handler in the event handler method.


AvoidObstruction

Subject: Obstruction detects and resolve.
Skill Level: Medium
Category: MEP
Type: ExternalCommand
Revit Platform: MEP
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Document
Autodesk.Revit.Creation.Document
Autodesk.Revit.DB.Plumbing.Pipe
Autodesk.Revit.DB.Mechanical.Duct
Summary: This sample will demonstrate how to detect and resolve the obstructions of Pipe with Pipe, Pipe with Beam, or Pipe with Duct.



BeamAndSlabNewParameter

Subject: Shared parameter.
Skill Level: Medium
Category: Parameters
Type: ExternalCommand
Revit Platform: All
First Released For: 9.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.DefinitionFile
Autodesk.Revit.DB.DefinitionGroups
Autodesk.Revit.DB.DefinitionGroup
Autodesk.Revit.DB.Definitions
Autodesk.Revit.DB.Definition
Autodesk.Revit.DB.CategorySet
Autodesk.Revit.DB.InstanceBinding
Autodesk.Revit.DB.Parameter
Autodesk.Revit.UI.Selection.SelElementSet
Summary: This sample demonstrates how to add a shared instance parameter to beams and slabs, and uses GUID as the parameter's value. Users also can use the value of the parameter to find the special element.


BoundaryConditions

Subject: Create or retrieve boundary conditions.
Skill Level: High
Category: Structure
Type: ExternalCommand
Revit Platform: Structure
First Released For: 9.1
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.BoundaryConditions
Summary: This sample shows to get BoundaryConditions' parameters or create BoundaryConditons.


BrowseBindings

Subject: Display shared parameters bindings.
Skill Level: Beginning
Category: Parameters
Type: ExternalCommand
Revit Platform: All
First Released For: 8.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.ApplicationServices.Application
Autodesk.Revit.DB.BindingMap
Autodesk.Revit.DB.DefinitionBindingMapIterator
Autodesk.Revit.DB.ElementBinding
Autodesk.Revit.DB.Definition
Autodesk.Revit.DB.CategorySet
Summary: This sample browses all the shared parameters bindings used in the project.


CancelSave

Subject: Cancel document save process
Skill Level: Beginning
Category: Basics
Type: ExternalApplication
Revit Platform: All
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalApplication
Autodesk.Revit.ApplicationServices.ControlledApplication
Autodesk.Revit.DB.ProjectInfo
Summary: This sample demonstrates how to cancel the document save process through DocumentSaving / DocumentSavingAs event's arguments.


ChangesMonitor

Subject: Track the changes in document.
Skill Level: Medium
Category: Basics
Type: ExternalApplication
Revit Platform: All
First Released For: 2011.0
Classes: Autodesk.Revit.UI. IExternalApplication
Autodesk.Revit.DB.DocumentChangeArgs
Summary: This sample demonstrates how to subscribe the DocumentChanged event to controlled application level, and how this event works.


CompoundStructure

Subject: CompoundStructure
Skill Level: Medium
Category: Element
Type: ExternalCommand
Revit Platform: ALL
First Released For: 2012.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.Material
Autodesk.Revit.DB.ThermalAsset
Autodesk.Revit.DB.StructuralAsset
Autodesk.Revit.DB.CompoundStructure
Summary: This sample will demonstrate how to create a vertical CompoundStructure for walls.


CreateAirHandler

Subject: Create one air handler and add connectors.
Skill Level: Medium
Category: Families
Type: ExternalCommand
Revit Platform: MEP
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.UI.UIDocument
Autodesk.Revit.Creation.FamilyItemFactory
Autodesk.Revit.DB.Extrusion
Autodesk.Revit.DB.Mechanical.DuctConnector
Autodesk.Revit.DB.Plumbing.PipeConnector
Autodesk.Revit.DB.CombinableElement
Summary: This sample creates one air handler and adds connectors (piping, duct).


CreateBeamsColumnsBraces

Subject: Create a frame with beams, columns and braces.
Skill Level: Medium
Category: Parameters, Structure
Type: ExternalCommand
Revit Platform: All
First Released For: 9.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.FamilySymbol
Autodesk.Revit.Creation.Document.NewFamilyInstance(.) method
Summary: This sample demonstrates how to create a truss model which composes of columns, beams and braces automatically according to the user's input.


CreateBeamSystem

Subject: Create beamsystem.
Skill Level: High
Category: Structure
Type: ExternalCommand
Revit Platform: Structure
First Released For: 9.1
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.BeamSystem
Autodesk.Revit.DB.BeamSystem.LayoutRule
Autodesk.Revit.DB.FamilySymbol
Summary: This sample demonstrates how to generate a beam system with the horizontal linear beams selection's profile.


CreateComplexAreaRein

Subject: Create AreaReinforcement.
Skill Level: Medium
Category: Structure
Type: ExternalCommand
Revit Platform: Structure
First Released For: 9.0
Classes: Autodesk.Revit.DB.Structural.AnalyticalModel
Autodesk.Revit.DB.CurveArray
Autodesk.Revit.DB.Line
Autodesk.Revit.DB.Structural.AreaReinforcementType
Autodesk.Revit.DB.ElementIterator
Autodesk.Revit.DB.Solid
Summary: This sample demonstrates how to create AreaReinforcement by Revit API and change its parameters.


CreateDimensions

Subject: Create dimensions.
Skill Level: Medium
Category: Annotation
Type: ExternalCommand
Revit Platform: Structure
First Released For: 9.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.View
Autodesk.Revit.DB.Wall
Autodesk.Revit.DB.Dimension
Autodesk.Revit.DB.CategorySet
Autodesk.Revit.DB.Category
Autodesk.Revit.UI.Selection.SelElementSet
Autodesk.Revit.DB.Location
Autodesk.Revit.DB.LocationCurve
Autodesk.Revit.DB.Curve
Autodesk.Revit.DB.Line
Autodesk.Revit.DB.ReferenceArray
Autodesk.Revit.DB.Options
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.GeometryObjectArray
Autodesk.Revit.DB.GeometryObject
Summary: This sample shows how to add a dimension to a selected structure wall from its start to its end.


CreateFillPattern

Subject: Create and apply FillPatternElement and LinePatternElement
Skill Level: Beginning
Category: Elements
Type: ExternalCommand
Revit Platform: All
First Released For: 2012.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.FillPatternElement
Autodesk.Revit.DB.LinePatternElement
Summary: This sample demonstrates how to create or retrieve a FillPatternElement or LinePatternElement and apply them to the surface or grid.


CreateShared

Subject: Create and modify a shared parameter.
Skill Level: Beginning
Category: Parameters
Type: ExternalCommand
Revit Platform: All
First Released For: 8.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.DefinitionFile
Autodesk.Revit.DB.DefinitionGroup
Autodesk.Revit.DB.Definition
Autodesk.Revit.DB.CategorySet
Autodesk.Revit.DB.Category
Autodesk.Revit.DB.Parameters.InstanceBinding
Autodesk.Revit.DB.ParameterSet
Autodesk.Revit.DB.Symbol
Summary: This sample shows how a shared parameter can be created via the API and how a shared parameter can be modified via the API.


CreateSimpleAreaRein

Subject: Create rectangular AreaReinforcement.
Skill Level: Medium
Category: Structure
Type: ExternalCommand
Revit Platform: Structure
First Released For: 9.0
Classes: Autodesk.Revit.DB.Structure.AreaReinforcement
Autodesk.Revit.DB.Floor
Autodesk.Revit.DB.Wall
Autodesk.Revit.DB.CurveArray
Autodesk.Revit.DB.Structure.AreaReinforcementType
Autodesk.Revit.DB.Parameter
Summary: This sample uses to show how to create AreaReinforcement and change its parameters by Revit API.


CreateTruss

Subject: Create Truss
Skill Level: Medium
Category: Families
Type: ExternalCommand
Revit Platform: Structure
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.ModelCurve
Autodesk.Revit.DB.Family
Autodesk.Revit.Creation.ItemFactoryBase
Autodesk.Revit.Creation.FamilyItemFactory
Summary: This sample demonstrates how to create a mono truss in truss family document.


CreateViewSection

Subject: Create section views.
Skill Level: Medium
Category: Views
Type: ExternalCommand
Revit Platform: Structure
First Released For: 9.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.BoundingBoxXYZ
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.ElementSet
Autodesk.Revit.DB.Wall
Autodesk.Revit.DB.LocationCurve
Autodesk.Revit.DB.Line
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Transform
Autodesk.Revit.DB.Structural.AnalyticalModel
Autodesk.Revit.DB.Structural.AnalyticalModelFrame
Autodesk.Revit.DB.Curve
Autodesk.Revit.DB.Floor
Autodesk.Revit.DB.Structural.AnalyticalModelFloor
Summary: This sample shows how to generate a section view across the mid point of a linear element, such as a wall, floor or beam


CreateWallinBeamProfile

Subject: Create wall with Profile of selected Beams.
Skill Level: Medium
Category: Structure
Type: ExternalCommand
Revit Platform: Structure
First Released For: 9.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.UI.Elements.FamilyInstance
Autodesk.Revit.DB.Curve
Autodesk.Revit.DB.Document
Summary: This sample demonstrates how to generate a wall which has the profile of beams selection. When the command is executed, a dialog should appear that contains a drop-down list for all types of wall and a check box for whether the walls are structural. Default should be checked.


CreateWallsUnderBeams

Subject: Create wall under selected Beams.
Skill Level: Medium
Category: Structure
Type: ExternalCommand
Revit Platform: Structure
First Released For: 9.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Document
Summary: This sample demonstrates how to generate simple rectangular wall(s) under the beam(s) selection. When the command is executed a dialog should appear that contains a drop-down list for all types of wall and a check box for whether the walls are structural. Default should be checked.


CurtainSystem

Subject: Create curtain systems.
Skill Level: Medium
Category: Elements
Type: ExternalCommand
Revit Platform: All
First Released For: 2009.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Document
Autodesk.Revit.Creation.Document
Autodesk.Revit.DB.CurtainSystem
Summary: This sample demonstrates 4 main features:
1. How to create curtain systems on specified faces.
2. How to delete curtain systems.
3. How to add curtain grids to curtain systems.
4. How to remove curtain grids from curtain systems.


CurtainWallGrid

Subject: Create Curtain Wall and manipulate its curtain grid.
Skill Level: Medium
Category: Elements
Type: ExternalCommand
Revit Platform: All
First Released For: 2009.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.Wall
Autodesk.Revit.DB.CurtainGrid
Autodesk.Revit.DB.CurtainGridLine
Autodesk.Revit.DB.CurtainCell
Autodesk.Revit.DB.Mullion
Summary: This sample demonstrates five main features:
1. How to create curtain wall with specific level and wall type.
2. How to retrieve the curtain grid information of the curtain wall.
3. How to edit the data of the curtain grid.
4. How to retrieve the grid lines of the curtain grid.
5. How to edit the grid lines and mullions of the curtain grid.


CurvedBeam

Subject: Curved Beam creation.
Skill Level: Beginning
Category: Structure
Type: ExternalCommand
Revit Platform: All
First Released For: 2008.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Creation.Document
Autodesk.Revit.DB.Symbols.FamilySymbol
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Level
Autodesk.Revit.DB.Geometry.Arc
Autodesk.Revit.DB.Geometry.Ellipse
Autodesk.Revit.DB.Geometry.NurbSpline
Autodesk.Revit.DB.Geometry.XYZ
Summary: This sample demonstrates how to create curved beam, this sample can create three types of curved beam: arc, ellipse and nurbspline.


DeckProperties

Subject: Display Deck Layer Properties.
Skill Level: Beginning
Category: Parameters
Type: ExternalCommand
Revit Platform: All
First Released For: 8.1
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.CompoundStructureLayer
Autodesk.Revit.DB.FloorType
Autodesk.Revit.DB.CompoundStructureLayerFunction
Summary: This sample shows that how to get the properties of deck layer by RevitAPI.


DeleteDimensions

Subject: Delete dimensions.
Skill Level: Beginning
Category: Basics, Annotation
Type: ExternalCommand
Revit Platform: All
First Released For: 9.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Dimension
Autodesk.Revit.DB.Element
Summary: Show how to delete Dimension elements.


DeleteObject

Subject: Delete Objects.
Skill Level: Beginning
Category: Basics
Type: ExternalCommand
Revit Platform: All
First Released For: 9.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Document
Autodesk.Revit.UI.Selection.SelElementSet
Summary: This sample is used to delete the objects selected by user.


DesignOptionReader

Subject: Display design options.
Skill Level: Beginning
Category: Elements, Basics
Type: ExternalCommand
Revit Platform: All
First Released For: 9.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.ApplicationServices.Application
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.DesignOption
Summary: This sample demonstrates how to get the design options in the current document of Revit.


DirectionCalculation

Subject: Identify orientation of building elements
Skill Level: Advanced
Category: Geometry
Type: ExternalCommand
Revit Platform: All
First Released For: 2011.0
Classes: Autodesk.Revit.DB.FilteredElementCollector
Autodesk.Revit.DB.Location
Autodesk.Revit.DB.ElementClassFilter
Autodesk.Revit.DB.ElementCategoryFilter
Autodesk.Revit.DB.Transform
Autodesk.Revit.UI.Selection.Selection
Summary: Find all windows and exterior walls that face the south direction.


DistanceToPanels

Subject: Divided surface panel measurement
Skill Level: Beginning
Category: Geometry
Type: ExternalCommand
Revit Platform: All
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.DividedSurface
Autodesk.Revit.DB.Panel
Summary: Measure the distance from a selected object to all divided surface panels. Store this value for each panel in an instance parameter Distance.


DirectionCalculation

Subject: Identify orientation of building elements
Skill Level: Advanced
Category: Geometry
Type: ExternalCommand
Revit Platform: All
First Released For: 2011.0
Classes: Autodesk.Revit.DB.FilteredElementCollector
Autodesk.Revit.DB.Location
Autodesk.Revit.DB.ElementClassFilter
Autodesk.Revit.DB.ElementCategoryFilter
Autodesk.Revit.DB.Transform
Autodesk.Revit.UI.Selection.Selection
Summary: Find all windows and exterior walls that face the south direction.


DisableCommand

Subject: Disable command with override
Skill Level: Medium
Category: Basics
Type: ExternalApplication
Revit Platform: All
First Released For: 2013.0
Classes: Autodesk.Revit.UI.IExternalApplication
Autodesk.Revit.UI.RevitCommandId
Autodesk.Revit.UI.AddInCommandBinding
Summary: Disable a command in the Revit UI by setting a default empty override as the execution method.


DistanceToSurfaces

Subject: Display analysis results in a Revit model using Dynamic Model Update
Skill Level: Advanced
Category: Geometry
Type: ExternalApplication
Revit Platform: All
First Released For: 2011.0
Classes: Autodesk.Revit.DB.Analysis.FieldDomainPointsByUV
Autodesk.Revit.DB.Analysis.FieldValues
Autodesk.Revit.DB.Analysis.SpatialFieldManager
Autodesk.Revit.DB.BoundingBoxUV
Autodesk.Revit.DB.Events.DocumentOpenedEventArgs
Autodesk.Revit.DB.FaceArray
Autodesk.Revit.DB.FilteredElementCollector
Autodesk.Revit.DB.LocationPoint
Autodesk.Revit.DB.UpdaterRegistry
Summary: On startup, the external application creates a trigger that will execute when walls, masses, and family instances in the project change. When this occurs, Revit calculates the distance from a family instance (sphere.rfa) to several points on each face. These distances are used as values for the analysis visualization display.


DividedSurfaceByIntersects

Subject: Divide surface with intersects.
Skill Level: Medium
Category: Families
Type: ExternalCommand
Revit Platform: All
First Released For: 2011.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.CurtainSystem
Summary: This sample demonstrates 2 main features:
1. How to add intersects to DividedSurface.
2. How to remove intersects to DividedSurface.


DoorSwing

Subject: Manage opening of the door and rooms relevant to the door.
Skill Level: Medium
Category: Rooms/Spaces
Type: ExternalCommand, ExternalApplication
Revit Platform: Architecture
First Released For: 2009.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.UI.IExternalApplication
Autodesk.Revit.ApplicationServices.ControlledApplication
Autodesk.Revit.UI.RibbonPanel
Autodesk.Revit. UI.PushButton
Autodesk.Revit.DB.DocumentType.Family
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.GeometryElement
Autodesk.Revit.DB.BoundingBoxXYZ
Autodesk.Revit.DB.Options
Autodesk.Revit.DB.DefinitionFile
Autodesk.Revit.DB.Definition
Autodesk.Revit.DB.BindingMap
Autodesk.Revit.DB.ElementBinding
Autodesk.Revit.DB.InstanceBinding
Autodesk.Revit.DB.TypeBinding
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.Events.DocumentSavingEventArgs
Autodesk.Revit.DB.Events.DocumentSavingAsEventArgs
Summary: This sample will demonstrate how to create and maintain door opening parameters, internal door parameter, From/To Room and how to schedule these parameters. Feature to customize to your country standard is also provided.


DWGFamilyCreation

Subject: Import dwg file into family document.
Skill Level: Beginning
Category: Families, Data Exchange
Type: ExternalCommand
Revit Platform: All
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB
Summary: This sample shows how to import a dwg file into a family document and add parameters to the family through Revit API.


DynamicModelUpdate

Subject: Dynamic Model Update used to maintain relative position between elements
Skill Level: Advanced
Category: Geometry
Type: ExternalApplication
Revit Platform: All
First Released For: 2011.0
Classes: Autodesk.Revit.DB.UpdaterRegistry
Autodesk.Revit.DB.ElementClassFilter
Autodesk.Revit.DB.ElementCategoryFilter
Autodesk.Revit.DB.LogicalAndFilter
Autodesk.Revit.DB.LocationPoint
Autodesk.Revit.DB.ExtensibleStorage.Schema
Autodesk.Revit.DB.ExtensibleStorage.SchemaBuilder
Autodesk.Revit.DB.ExtensibleStorage.Field
Autodesk.Revit.DB.ExtensibleStorage.FieldBuilder
Autodesk.Revit.DB.ExtensibleStorage.Entity
Summary: Move a section marker to maintain relative position with a window


ElementsBatchCreation

Subject: Elements batch creation.
Skill Level: Beginning
Category: Elements
Type: ExternalCommand
Revit Platform: All
First Released For: 2009.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.Creation.Document
Autodesk.Revit.DB.Area
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Room
Autodesk.Revit.DB.TextNote
Autodesk.Revit.DB.Wall
Summary: This sample demonstrates how to create a batch of Revit elements via batch creation methods.


ElementViewer

Subject: View element wireframe.
Skill Level: Medium
Category: Geometry
Type: ExternalCommand
Revit Platform: All
First Released For: 8.0
Classes: Autodesk.Revit.DB.GeometryElement
Autodesk.Revit.DB.GeometryObject
Summary: This program demonstrates the usage of element's geometry. This sample uses a helper program RevitViewer.


EnergyAnalysisModel

Subject: EnergyAnalysisModel
Skill Level: Medium
Category: Analysis
Type: ExternalCommand
Revit Platform: ALL
First Released For: 2012.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.Document
Autodesk.Revit.Element
Autodesk.Revit.DB;
Autodesk.Revit.DB.Analysis;
Summary: This sample is to demonstrate how to create use EnergyAnalysisModel. This project will get energy analytical model according to the defined options and show faces structure by a tree view.


ErrorHandling

Subject: How to use the error handling framework.
Skill Level: Medium
Category: Basics
Type: ExternalCommand, ExternalApplication
Revit Platform: All
First Released For: 2011.0
Classes: Autodesk.Revit.Document
Autodesk.Revit.DB.FailureDefinitionId
Autodesk.Revit.DB.FailureDefinition
Autodesk.Revit.DB.FailureMessage
Autodesk.Revit.DB.IFailuresPreprocessor
Autodesk.Revit.DB.IFailuresProcessor
Summary: This sample demonstrates how to create failure definition id, failure definition, failure message and how to resolve failures in failure (pro)processing steps.


EventsMonitor

Subject: Track Event.
Skill Level: Medium
Category: Basics
Type: ExternalApplication
Revit Platform: All
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.UI.IExternamApplication
Autodesk.Revit.DB.Events
Summary: This sample demonstrates how to subscribe to controlled application level Events.


ExtensibleStorageManager

Subject: Create, read, update, and delete third party extensible storage in Revit Elements.
Skill Level: Advanced
Category: Elements
Type: ExternalCommand, ExternalApplication
Revit Platform: All
First Released For: 2012.0
Classes: Autodesk.Revit.DB.ExtensibleStorage.Schema
Autodesk.Revit.DB.ExtensibleStorage.SchemaBuilder
Autodesk.Revit.DB.ExtensibleStorage.Field
Autodesk.Revit.DB.ExtensibleStorage.FieldBuilder
Autodesk.Revit.DB.ExtensibleStorage.Entity
Autodesk.Revit.DB.Element
Summary: This application demonstrates the ExtensibleStorage classes and related APIs by creating a wrapper class and control dialog that creates schemas, serializes and deserializes them to XML, and extracts and displays all data in Entities of those Schemas. This is an advanced sample. If you are not familiar with ExtensibleStorage, first look at the "DynamicModelUpdate" sample.


ExternalResourceServer

Subject: Load Revit link models, as well as keynote data, from a remote server.
Skill Level: Medium
Category: Data Exchange
Type: ExternalApplication
Revit Platform: All
First Released For: 2015.0
Classes: Autodesk.Revit.DB.IExternalDBApplication
Autodesk.Revit.DB.IExternalResourceServer
Autodesk.Revit.DB.IGetLocalPathForOpenCallback
Autodesk.Revit.DB.IOnLocalLinkSharedCoordinatesSavedCallback
Summary: Demonstrates an implementation of the IExternalResourceServer interface. The class simulates the provision of keynote data and Revit link models from files in a remote storage location, as well as keynote data created from a database.

FamilyParametersOrder

Subject: Sample of sort family parameters' order
Skill Level: Medium
Category: Families, Parameters
Type: ExternalCommand and ExternalApplication
Revit Platform: All
First Released For: 2015.0
Classes: Autodesk.Revit.DB
Autodesk.Revit.UI.IExternalCommand;
Autodesk.Revit.UI.IExternalApplication;
Autodesk.Revit.DB.FilteredElementCollector;
Autodesk.Revit.DB.Family;
Autodesk.Revit.DB.FamilyManager;
Autodesk.Revit.DB.IFamilyLoadOptions;
Autodesk.Revit.DB.FamilySource;
Autodesk.Revit.DB.Document;
Autodesk.Revit.ApplicationServices.Application;
Summary: This sample demonstrates how to sort the family parameters' order. The family could be a disk file or have been loaded into a project.


FindColumns

Subject: Columns Embedded in Walls
Skill Level: Advanced
Category: Geometry
Type: ExternalCommand
Revit Platform: All
First Released For: 2011.0
Classes: Autodesk.Revit.DB.FilteredElementCollector
Autodesk.Revit.DB.FilteredElementIterator
Autodesk.Revit.DB.Transform
Autodesk.Revit.DB.XYZ
Autodesk.Revit.DB.Document
Autodesk.Revit.UI.Selection.Selection
Summary: This sample shows how to find columns that are embedded in walls with the Revit API method FindReferencesWithContextByDirection.


FireRating

Subject: Create shared parameter; export and import form excel.
Skill Level: Beginning
Category: Parameters
Type: ExternalCommand
Revit Platform: All
First Released For: 8.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Category
Summary: This program defines three commands: ApplyParameter which is used to add a new shared parameter; ExportFireRating which is used to export fire rating values to an Excel file and ImportFireRating which is used to import fire rating values from the Excel file and apply them to doors.


FoundationSlab

Subject: Create Foundation Slab.
Skill Level: Medium
Category: Elements
Type: ExternalCommand
Revit Platform: All
First Released For: 9.1
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Floor
Autodesk.Revit.DB.FloorType
Autodesk.Revit.DB.Document
Summary: This sample demonstrates how to create Foundation Slab.


FrameBuilder

Subject: Create a frame composed of columns, beams and braces.
Skill Level: Medium
Category: Structure
Type: ExternalCommand
Revit Platform: All
First Released For: 9.1
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.Level
Autodesk.Revit.DB.FamilySymbol
Summary: This sample demonstrates how to create a frame composed of columns, beams and braces. User can input parameters to create a frame consist of column, beam and brace. It has a user visible option to use the suspended updating function to increase the speed of the model creation. And users can duplicate the type of column, beam and brace.


GenerateFloor

Subject: Generate a floor using the closed outline made by a selection of walls.
Skill Level: Medium
Category: Elements
Type: ExternalCommand
Revit Platform: All
First Released For: 9.0
Classes: Autodesk.Revit.Creation.Document
Autodesk.Revit.DB.Floor
Autodesk.Revit.DB.FloorType
Autodesk.Revit.DB.Level
Summary: This sample demonstrates how to generate a floor using the closed outline made by a selection of walls.


GenericModelCreation

Subject: Create Generic Model
Skill Level: Medium
Category: Families
Type: ExternalCommand
Revit Platform: All
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.ElementSet
Autodesk.Revit.DB.GeometryObject
Autodesk.Revit.Creation.FamilyItemFactory
Summary: This sample shows how to create Generic Model through Revit API


GeometryCreation_BooleanOperation

Subject: Geometry Creation & Geometric Boolean Operation
Skill Level: Medium
Category: Geometry
Type: ExternalCommand
Revit Platform: All
First Released For: 2012.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.Document
Autodesk.Revit.Element
Autodesk.Revit.DB;
Autodesk.Revit.DB.Analysis;
Summary: This sample is to demonstrate how to create the geometry solid using GeometryCreationUtils and operate the geometric boolean operation using BooleanOperationUtils. This project will create a constructive solid geometry - CSG tree (, ) and show it in a new view by AVF - Analysis Visualization Framework.


GridCreation

Subject: Create Grid.
Skill Level: High
Category: Elements
Type: ExternalCommand
Revit Platform: All
First Released For: 2009.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB
Summary: This sample shows how to create grids and modify grids' properties through Revit API.


HelloRevit

Subject: Add ExternalCommand to the Revit user interface.
Skill Level: Beginning
Category: Basics
Type: ExternalCommand
Revit Platform: All
First Released For: 8.1
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.UI.TaskDialog
Summary: Shows how a basic ExternalCommand can be added to the Revit user interface. It uses a Revit task dialog to communicate information to the interactive user.


ImportExport

Subject: Import and Export data.
Skill Level: High
Category: Data Exchange
Type: ExternalCommand
Revit Platform: All
First Released For: 2008.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.GBXMLExportOptions
Autodesk.Revit.DB.DWFExportOptions
Autodesk.Revit.DB.DWFXExportOptions
Autodesk.Revit.DB.DWGExportOptions
Autodesk.Revit.DB.FBXExportOptions
Autodesk.Revit.DB.BuildingSiteExportOptions
Autodesk.Revit.DB.DGNExportOptions
Autodesk.Revit.DB.DWGImportOptions
Autodesk.Revit.DB.ImageImportOptions
Autodesk.Revit.DB.GBXMLImportOptions
Autodesk.Revit.DB.InventorImportOptions
Autodesk.Revit.DB.DXFExportOptions
Autodesk.Revit.DB.SATExportOptions
Autodesk.Revit.DB.ImageExportOptions
Summary: This sample shows how to export current project to dwg, sat,dxf, dwf(x), gbxml, fbx, dgn, image or Civil3D files and how to import a dwg, image, GBXML or Inventor file into Revit.


InPlaceMembers

Subject: Display In-place Familyinstance properties.
Skill Level: Medium
Category: Families
Type: ExternalCommand
Revit Platform: Structure
First Released For: 9.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Structure.AnalyticalModel
Autodesk.Revit.DB.Curve
Summary: This sample demonstrates how to get the In-place Family instance and its properties in the current document of Revit.


InvisibleParam

Subject: Create shared parameters.
Skill Level: Medium
Category: Parameters
Type: ExternalCommand
Revit Platform: All
First Released For: 8.1
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.ApplicationServices.Application
Autodesk.Revit.DB.DefinitionFile
Autodesk.Revit.DB.Definition
Autodesk.Revit.DB.DefinitionGroup
Autodesk.Revit.DB.InstanceBinding
Summary: This sample demonstrates how to use share parameter file to create share parameters and how to bind share parameters and instance.


Journaling

Subject: Journaling mechanism: Journal Data read and write.
Skill Level: Medium
Category: Basics
Type: ExternalCommand
Revit Platform: All
First Released For: 9.1
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.Creation
Autodesk.Revit.DB.Collections.StringStringMap
Summary: This sample demonstrates how an external application can be incorporated into the journaling mechanism.


LevelsProperty

Subject: Display and Create Levels.
Skill Level: Beginning
Category: Elements
Type: ExternalCommand
Revit Platform: All
First Released For: 9.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Level
Autodesk.Revit.Creation.Document
Summary: This sample demonstrates how to get all the levels in a document, and how to create or delete a level and set its properties.


Loads

Subject: Operate Load Case, Load Nature, Load Usage and Load Combination.
Skill Level: Medium
Category: Structure
Type: ExternalCommand
Revit Platform: Structure
First Released For: 9.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Structure.LoadCase
Autodesk.Revit.DB.Structure.LoadNature
Autodesk.Revit.DB.Structure.LoadCombination
Autodesk.Revit.Creation.Document
Summary: This sample shows how to operate Load Case, Load Nature, Load Usage and Load Combination.


ManipulateForm

Subject: Add profile/edge to a form and manipulate edges/profiles of the form
Skill Level: Medium
Category: Geometry
Type: ExternalCommand
Revit Platform: All
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.ElementSet
Autodesk.Revit.DB.ReferenceArrayArray
Autodesk.Revit.DB.ReferenceArray
Autodesk.Revit.Creation.FamilyItemFactory
Summary: This sample will demonstrate how to create a simple form and add profile/edge to the form and how to move, rotate scale and delete the existing/added profile/edge.


MaterialProperties

Subject: Display Material Properties.
Skill Level: Medium
Category: Materials
Type: ExternalCommand
Revit Platform: All
First Released For: 9.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.Material
Summary: This sample demonstrates how to get the material physical properties of a selected beam, column or brace, how to change the material type of the selected beam and how to change the unit weight of a selected beam, column or brace.


MaterialQuantities

Subject: Material quantity data extraction
Skill Level: Advanced
Category: Geometry
Type: ExternalCommand
Revit Platform: All
First Released For: 2011.0
Classes: System.Diagnostics.Process
System.Collections.Generic.Dictionary
Autodesk.Revit.DB.FilteredElementCollector
Autodesk.Revit.DB.LogicalAndFilter
Autodesk.Revit.DB.ElementClassFilter
Autodesk.Revit.DB.ElementCategoryFilter
Autodesk.Revit.DB.Material
Autodesk.Revit.DB.Transaction
Summary: Outputs an analysis of the materials that make up walls, floors, and roofs, and displays the output in Excel.


MeasureHeight

Subject: Measure height of skylight window
Skill Level: Medium
Category: Geometry
Type: ExternalCommand
Revit Platform: All
First Released For: 2011.0
Classes: Autodesk.Revit.DB.FilteredElementCollector
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.ModelCurve
Autodesk.Revit.DB.BoundingBoxXYZ
Autodesk.Revit.DB.Document
Autodesk.Revit.UI.Selection.Selection
Summary: This sample shows how to find the height of a skylight window above the ground level using the Revit API method FindReferencesWithContextByDirection.


MeasurePanelArea

Subject: Divided surface panel measurement and modification
Skill Level: Beginning
Category: Geometry
Type: ExternalCommand
Revit Platform: All
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.DividedSurface
Autodesk.Revit.DB.Panel
Summary: Measure the area of curtain panels in divided surfaces. Identify panels with area greater than and less than user-specified values. A text file is created in the same folder as the sample DLL file listing the area and element ID of every panel.


ModelessForm_ExternalEvent

Subject: Show Modeless Form (External Event)
Skill Level: Medium
Category: Basics
Type: ExternalCommand and ExternalApplication
Revit Platform: All
First Released For: 2013.0
Classes: Autodesk.Revit.DB;
Autodesk.Revit.UI;
Autodesk.Revit.UI.Events;
Summary: This sample shows how to utilize an External Event object in order to communicate with the Revit API from an external modeless dialog.


ModelessForm_IdlingEvent

Subject: Show Modeless Form (Idling Event)
Skill Level: Medium
Category: Basics
Type: ExternalCommand and ExternalApplication
Revit Platform: All
First Released For: 2013.0
Classes: Autodesk.Revit.DB;
Autodesk.Revit.UI;
Autodesk.Revit.UI.Events;
Summary: This sample shows how to utilize the Idling event in order to communicate with the Revit API from an external, modeless dialog.


ModelLines

Subject: Display and Create ModelLines.
Skill Level: Beginning
Category: Elements
Type: ExternalCommand
Revit Platform: All
First Released For: 2008.2
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.ModelArc
Autodesk.Revit.DB.ModelLine
Autodesk.Revit.DB.ModelCurveArray
Autodesk.Revit.DB.ModelCurve
Autodesk.Revit.DB.SketchPlane
Autodesk.Revit.Creation.Application
Autodesk.Revit.DB.Arc
Autodesk.Revit.DB.XYZ
Autodesk.Revit.DB.Line
Summary: This sample shows how to get model lines of all kinds and how to create model lines using Revit API.


ModifyIniFile

Subject: Modify Revit.ini.
Skill Level: Beginning
Category: Basics
Type: N/A
Revit Platform: All
First Released For: 2008.0
Classes:
Summary: Provides sample that shows how to add an external command that represents the menu item "Tools-> External Tools-> (Command)" to Revit.ini using program.


MoveLinear

Subject: Move an element which is based on Line.
Skill Level: Beginning
Category: Parameters, Elements
Type: ExternalCommand
Revit Platform: All
First Released For: 8.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.LocationCurve
Autodesk.Revit.Creation.Application
Autodesk.Revit.DB.Curve
Summary: This sample demonstrates how to move element which is based on a Line.


MultiplanarRebar

Subject: Create multi-planar Rebar.
Skill Level: High
Category: Structure
Type: ExternalCommand
Revit Platform: Structure
First Released For: 2012.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.Creation.Document
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Structure.Rebar
Autodesk.Revit.DB.Structure.RebarShape
Autodesk.Revit.DB.Structure.RebarShapeDefinition
Autodesk.Revit.DB.Structure.RebarShapeDefinitionBySegments
Autodesk.Revit.DB.Structure.RebarShapeMultiplanarDefinition
Autodesk.Revit.DB.Structure.StructuralType
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.DefinitionGroup
Autodesk.Revit.DB.ExternalDefinition
Autodesk.Revit.DB.Solid
Summary: This sample is to demo multiplanar rebar creation in API. A user scenario of multiplanar rebar is corbel `s reinforcement. This sample is to reinforce sloped corbel(s).


MultithreadedCalculation

Subject: Analysis Visualization Framework
Skill Level: Advanced
Category: Geometry
Type: ExternalCommand
Revit Platform: All
First Released For: 2012.0
Classes: Autodesk.Revit.DB.Analysis.FieldDomainPointsByUV
Autodesk.Revit.DB.Analysis.FieldValues
Autodesk.Revit.DB.Analysis.SpatialFieldManager
Autodesk.Revit.DB.UpdaterRegistry
System.Threading.Thread
Summary: A combination of Analysis Visualization Framework, multi-threading, Revit's Idling event, and Dynamic Model Update to simulate how analysis results can be periodically updated during computation and re-started when the Revit model changes.


NewForm

Subject: Create Form
Skill Level: Medium
Category: Create
Type: ExternalCommand
Revit Platform: All
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.ModelCurve
Autodesk.Revit.DB.Form
Autodesk.Revit.Creation.FamilyItemFactory
Summary: This sample shows how to create form through Revit API


NewHostedSweep

Subject: Create hosted sweep (Fascia, Gutter, and SlabEdge).
Skill Level: High
Category: Elements
Type: ExternalCommand
Revit Platform: Architecture
First Released For: 2009.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Document
Autodesk.Revit.Creation.Document
Autodesk.Revit.DB.HostedSweep
Autodesk.Revit.DB.HostedSweepType
Autodesk.Revit.DB.SlabEdge
Autodesk.Revit.DB.SlabEdgeType
Autodesk.Revit.DB.Architecture.Fascia
Autodesk.Revit.DB.Architecture.Gutter
Autodesk.Revit.DB.Architecture.FasciaType
Autodesk.Revit.DB.Architecture.GutterType
Autodesk.Revit.DB.Solid
Autodesk.Revit.DB.Edge
Autodesk.Revit.DB.Reference
Autodesk.Revit.DB.Transform
Summary: This sample will demonstrate how to create hosted sweep (includes Fascia, Gutter and SlabEdge), and how to modify their properties.


NewOpenings

Subject: Create openings.
Skill Level: High
Category: Elements
Type: ExternalCommand
Revit Platform: All
First Released For: 2008.0
Classes: Autodesk.Revit.Creation.Application
Autodesk.Revit.Creation.Document
Autodesk.Revit.DB.Wall
Autodesk.Revit.DB.Floor
Autodesk.Revit.DB.Opening
Autodesk.Revit.DB.XYZ
Autodesk.Revit.DB.Edge
Summary: Shows how to create Openings by Revit API.


NewPathReinforcement

Subject: Create PathReinforcement.
Skill Level: Medium
Category: Structure , Geometry
Type: ExternalCommand
Revit Platform: Structure
First Released For: 2008.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Structure.PathReinforcement
Autodesk.Revit.DB.Structure.PathReinforcementType
Autodesk.Revit.DB.Face
Autodesk.Revit.DB.Edge
Autodesk.Revit.DB.Solid
Autodesk.Revit.Creation.Document
Summary: This sample demonstrates how to create PathReinforcement by API.


NewRebar

Subject: Create Rebar and ReabrShapes.
Skill Level: High
Category: Structure
Type: ExternalCommand
Revit Platform: Structure
First Released For: 2009.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.Creation.Document
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Structure.Rebar
Autodesk.Revit.DB.Structure.RebarShape
Autodesk.Revit.DB.Structure.RebarShapeDefinition
Autodesk.Revit.DB.Structure.RebarShapeDefinitionByArc
Autodesk.Revit.DB.Structure.RebarShapeDefinitionBySegments
Autodesk.Revit.DB.Structure.StructuralType
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.DefinitionGroup
Autodesk.Revit.DB.ExternalDefinition
Autodesk.Revit.DB.Solid
Summary: This sample will demonstrate how to create rebar via NewRebar (RebarShape rebarShape, RebarBarType rebarType, Element host, XYZ origin, XYZ xVec, XYZ yVec) and how to customize RebarShape (include straight segment and arc shape).


NewRoof

Subject: Create footprint and extrusion roof.
Skill Level: High
Category: Elements
Type: ExternalCommand
Revit Platform: All
First Released For: 2009.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.FootPrintRoof
Autodesk.Revit.DB.ExtrusionRoof
Autodesk.Revit.DB.Level
Autodesk.Revit.DB.RoofType
Autodesk.Revit.DB.Wall
Autodesk.Revit.DB.Curve
Autodesk.Revit.Creation.Document
Summary: This sample demonstrates four main features:
1. How to create a new footprint roof.
2. How to create an extrusion roof.
3. How to edit an existed footprint roof.
4. How to edit an existed extrusion roof.


ObjectViewer

Subject: Show element's geometry,get and set its parameter value.
Skill Level: Advanced
Category: Views
Type: ExternalCommand
Revit Platform: All
First Released For: 9.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.GeometryElement
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.GeometryObject
Autodesk.Revit.DB.Transform
Autodesk.Revit.DB.Structure.AnalyticalModel
Summary: This sample demonstrates two main features:
1. How to get physical or analytical model of selected element.
2. How to get and set parameter's value of selected element.


Openings

Subject: Display Opening informations.
Skill Level: High
Category: Elements
Type: ExternalCommand
Revit Platform: All
First Released For: 9.1
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Opening
Autodesk.Revit.DB.Document
Summary: Shows how to get geometry profile and properties of an opening and how to add x model lines to opening bounding box.


PanelEdgeLengthAngle

Subject: Divided surface panel measurement
Skill Level: Beginning
Category: Geometry
Type: ExternalCommand
Revit Platform: All
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.DividedSurface
Autodesk.Revit.DB.Panel
Summary: Measure the edge length and angle of curtain panels in divided surfaces. Save the length and angle data to the instance parameters of curtain panels.


PanelSchedule

Subject: Show how the Panel Schedule API works.
Skill Level: Beginning
Category: Data Exchange
Type: ExternalCommand
Revit Platform: MEP
First Released For: 2011.0
Classes: Autodesk.Revit.DB.Electrical.PanelScheduleView
Autodesk.Revit.DB.Electrical.PanelScheduleSheetInstance
Autodesk.Revit.DB.SectionType
Autodesk.Revit.DB.TableSectionData
Summary: This sample contains 3 external commands to show how to use the Panel Schedule API:
1. PanelScheduleExport - gets the panel schedule view data via the API and generates a CSV file or a HTML page for it.
2. InstanceViewCreation - Create a panel schedule view instance for an electrical panel you selected.
3. SheetImport - Place the panel schedule view(s) on a sheet view.


ParameterUtils

Subject: Display parameters.
Skill Level: Beginning
Category: Parameters
Type: ExternalCommand
Revit Platform: All
First Released For: 8.1
Classes: Autodesk.Revit.DB.Element
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.Document
Summary: This sample demonstrates how to get the parameters of a Revit element.


ParameterValuesFromImage

Subject: Set parameter values based on image data
Skill Level: Advanced
Category: Massing
Type: ExternalCommand
Revit Platform: All
First Released For: 2011.0
Classes: System.Drawing.Bitmap
Autodesk.Revit.DB.DividedSurface
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Parameter
Summary: Compute a grayscale value for each pixel in an image file. Use this value to set a parameter that will change the model's geometry.


PathReinforcement

Subject: Display PathReinforcement informations.
Skill Level: Medium
Category: Structure
Type: ExternalCommand
Revit Platform: All
First Released For: 2008.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Structure.PathReinforcement
Autodesk.Revit.DB.Structure.RebarBarType
Autodesk.Revit.DB.ModelCurve
Summary: This sample demonstrates how to retrieve curves, profile and properties of path reinforcement object.


PerformanceAdviserControl

Subject: View, select, and run PerformanceAdviser rules.
Skill Level: Beginner
Category: Elements
Type: ExternalCommand, ExternalApplication
Revit Platform: All
First Released For: 2012.0
Classes: Autodesk.Revit.DB.IPerformanceAdviserRule
Autodesk.Revit.DB.PerformanceAdviser
Summary: This program demonstrates the usage the PerformanceAdviser class and related APIs.


PhaseSample

Subject: Filter elements by their phases.
Skill Level: Beginning
Category: Basics
Type: ExternalCommand
Revit Platform: All
First Released For: 9.0
Classes: Autodesk.Revit.DB.Document
Autodesk.Revit.DB.Element
Autodesk.Revit.Elements.Phase
Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.ElementSet
Summary: This sample demonstrates how to use phase to filter elements and how to highlight filtered elements by Execute method parameters.


PhysicalProp

Subject: Display physical property.
Skill Level: Beginning
Category: Parameters, Materials
Type: ExternalCommand
Revit Platform: Structure
First Released For: 8.0
Classes: Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.Document
Summary: This sample demonstrates how to get the physical material of a column or beam.


PlaceFamilyInstanceByFace

Subject: Create family instance on face.
Skill Level: Medium
Category: Families
Type: ExternalCommand
Revit Platform: All
First Released For: 2009.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.FamilySymbol
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Face
Autodesk.Revit.DB.Options
Autodesk.Revit.DB.Solid
Summary: This sample demonstrates how to create family instance on face.


PointCloudEngine

Subject: Point cloud engine examples.
Skill Level: Advanced
Category: Geometry
Type: ExternalCommand
Revit Platform: All
First Released For: 2012.0
Classes: Autodesk.Revit.DB.PointClouds.IPointCloudAccess
Autodesk.Revit.DB.PointClouds.IPointCloudEngine
Autodesk.Revit.DB.PointClouds.IPointSetIterator
Autodesk.Revit.DB.PointClouds.CloudPoint
Autodesk.Revit.DB.PointClouds.PointCloudFilter
Autodesk.Revit.DB.PointCloudType
Autodesk.Revit.DB.PointCloudInstance
Summary: Offers a variety of examples for custom point cloud engines.


PointCurveCreation

Subject: Reference point and Curve By Point creation
Skill Level: Beginning
Category: Geometry
Type: ExternalCommand
Revit Platform: All
First Released For: 2011.0
Classes: Autodesk.Revit.DB.ReferencePoint
Autodesk.Revit.DB.PointOnEdge
Autodesk.Revit.DB.CurveByPoints
Autodesk.Revit.DB.Form
Microsoft.Office.Interop.Excel.Application
System.IO.StreamReader
Summary: Use equations and external data files to create massing geometry


PowerCircuit

Subject: Operate power circuits.
Skill Level: Beginning
Category: MEP
Type: ExternalCommand
Revit Platform: MEP
First Released For: 2009.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB
Summary: This sample shows how to operate power circuits.


PrintLog

Subject: Dump print information to log.
Skill Level: Medium
Category: Basics
Type: ExternalApplication
Revit Platform: All
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalApplication
Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Events.ViewPrintingEventArgs
Autodesk.Revit.DB.Events.ViewPrintedEventArgs
Autodesk.Revit.DB.Events.DocumentPrintingEventArgs
Autodesk.Revit.DB.Events.DocumentPrintedEventArgs

System.DateTime
System.Diagnostics.Stopwatch
Summary: This sample demonstrates how to subscribe Print related events, access properties in argument of event handlers and dump print related information to log file.


ProgressNotifier

Subject: Show progress information for an action in a stack data structure for easier analysis.
Skill Level: Medium
Category: Basics
Type: ExternalCommand
Revit Platform: All
First Released For: 2013.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Events.ProgressChangedEventArgs
Summary: This sample demonstrates how to subscribe ProgressNotify related events, access properties in argument of event handlers, and organize the subtransaction progress information into a stack.


ProjectInfo

Subject: Display project information.
Skill Level: Beginning
Category: Basics
Type: ExternalCommand
Revit Platform: All
First Released For: 2008.0
Classes: Autodesk.Revit.DB.Element
Autodesk.Revit.DB.ProjectInfo
Autodesk.Revit.DB.Analysis.EnergyDataSettings
Autodesk.Revit.DB.BuiltInParameter
Autodesk.Revit.DB.Analysis.gbXMLBuildingType
Autodesk.Revit.DB.Mechanical.MEPBuildingConstruction
Autodesk.Revit.DB.Analysis.gbXMLServiceType
Autodesk.Revit.DB.ProjectLocation
Autodesk.Revit.DB.ProjectPosition
Autodesk.Revit.DB.Construction
Summary: Demonstrates how to manipulate project information.


ProjectUnit

Subject: List and set units and format options.
Skill Level: Beginning
Category: Data Exchange, Basics
Type: ExternalCommand
Revit Platform: All
First Released For: 2008.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.ProjectUnit
Autodesk.Revit.DB.FormatOptions
Summary: Add a command which lists all the units in the current project and displays their format information; Display the decimal symbol type of current project's units. Users could set it to comma or dot; Display the slope type of current project units, users can set it to Rise or Angle.


ProximityDetection_WallJoinControl

Subject: Proximity Detection and Wall Join Control
Skill Level: Medium
Category: Geometry
Type: ExternalCommand
Revit Platform: All
First Released For: 2011.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.Document
Autodesk.Revit.Element
Autodesk.Revit.DB;
Autodesk.Revit.UI;
Summary: This sample is to demonstrate how to "find columns in wall", "find elements blocking egress", "find walls (nearly joined to) end of walls" and "check walls join/disjoin states" by ElementIntersectsSolidFilter, ElementIntersectsElementFilter and WallUtils.


RayTraceBounce

Subject: Ray Trace Bounce
Skill Level: Medium
Category: Geometry
Type: ExternalCommand
Revit Platform: All
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.ElementSet
Autodesk.Revit.DB.GeometryObject
Summary: This sample shows how to find intersection between ray and face and create connecting lines by Revit API method FindReferencesWithContextByDirection.


ReferencePlane

Subject: Create ReferencePlane.
Skill Level: Medium
Category: Basics, Geometry
Type: ExternalCommand
Revit Platform: All
First Released For: 9.1
Classes: Autodesk.Revit.DB.Document
Autodesk.Revit.DB.Floor
Autodesk.Revit.DB.Wall
Autodesk.Revit.DB.Options
Autodesk.Revit.DB.Line
Autodesk.Revit.DB.Solid
Autodesk.Revit.DB.Mesh
Autodesk.Revit.Creation.Document
Summary: This sample shows how to create Reference Plane by Revit API.


Reinforcement

Subject: Create Rebars.
Skill Level: High
Category: Structure
Type: ExternalCommand
Revit Platform: Structure
First Released For: 9.1
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.Creation.Document
Autodesk.Revit.DB.Structure.Rebar
Autodesk.Revit.DB.Structure.StructuralType
Summary: Show how to create Rebar in concrete element (Beam or Column) which does not have any reinforcement.


RevitCommands

Subject: Simple Revit commands.
Skill Level: Beginning
Category: Basics, Families
Type: ExternalCommand
Revit Platform: All
First Released For: 8.0
Classes: Autodesk.Revit.DB.Element
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.Document
Autodesk.Revit.ApplicationServices.ApplicationServices.Application
Autodesk.Revit.DB.Location
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.GeometryElement
Autodesk.Revit.DB.Solid
Autodesk.Revit.DB.Instance
Autodesk.Revit.DB.Curve
Autodesk.Revit.DB.Mesh
Summary: These sample contains 5 commands, demonstrates:
1. How to load family from family file.
2. How to load family symbol from family file.
3. How to access the selection set.
4. How to get and set library paths in Revit.
5. How to retrieve data from selected elements.


Ribbon

Subject: Create customized Ribbon by Ribbon API
Skill Level: Beginning
Category: Basics
Type: ExternalApplication
Revit Platform: All
First Released For: 2010.0
Classes: Autodesk.Revit.ApplicationServices.ControlledApplication
Autodesk.Revit.UI.RibbonPanel
Autodesk.Revit.UI.PushButton
Autodesk.Revit.UI.PulldownButton
Autodesk.Revit.UI.PushButtonData
Autodesk.Revit.UI.PulldownButtonData
Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.UI.IExternalApplication
Summary: This sample demonstrates how to create customized ribbon for Add-In and how to create different types of ribbon items (RibbonPanel, PushButton, PulldownButton, Stackable Buttons, RadioButtonGroup, TextBox, SplitButton).


RoofsRooms

Subject: Geometry checking for Roofs and Rooms (Spaces).
Skill Level: Medium
Category: Rooms/Spaces
Type: ExternalCommand
Revit Platform: Architecture, MEP
First Released For: 2009.1
Classes: Autodesk.Revit.DB.Mechanical.SpaceFilter
Autodesk.Revit.DB.Architecture.RoomFilter
Autodesk.Revit.DB.ElementCategoryFilter
Autodesk.Revit.DB.FilteredElementCollector
Autodesk.Revit.DB.LogicalOrFilter
Autodesk.Revit.DB.Architecture.Room
Autodesk.Revit.DB.Mechanical.Space
Autodesk.Revit.DB.BuiltInCategory
Autodesk.Revit.DB.SpatialElementGeometryCalculator
Autodesk.Revit.DB.SpatialElementGeometryResults
Autodesk.Revit.DB.SpatialElementBoundarySubface
Autodesk.Revit.DB.Solid
Autodesk.Revit.DB.Face
Summary: This sample demonstrates how to check whether a Room/Space has a bounding Roof.


Rooms

Subject: Room data retrieval and modification.
Skill Level: Beginning
Category: Rooms/Spaces
Type: ExternalCommand
Revit Platform: Architecture
First Released For: 9.1
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Creation.Document
Autodesk.Revit.DB.Architecture.Room
Autodesk.Revit.DB.Architecture.RoomTag
Autodesk.Revit.DB.Parameters.BuiltInParameter
Summary: This sample demonstrates how to get Room's information (Number, Area, Department, etc), add room tags and change Room numbers.


RoomSchedule

Subject: Room creation and modification; Excel data import and export.
Skill Level: High
Category: Rooms/Spaces
Type: ExternalCommand, ExternalApplication
Revit Platform: Architecture
First Released For: 2008.2
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.Architecture.Room
Autodesk.Revit.DB.Level
Autodesk.Revit.DB.Phase
Autodesk.Revit.DB.Category
Autodesk.Revit.DB.Parameters.BuildInParameter
Autodesk.Revit.DB.Parameters.Definition
Autodesk.Revit.DB.Parameters.DefinitionGroup
Autodesk.Revit.DB.Parameters.InstanceBinding

Autodesk.Revit.DB.Events.DocumentSaving
Autodesk.Revit.DB.Events.DocumentSavingAs
Autodesk.Revit.DB.Events.DocumentClosed

System.Data.OleDb.OleDbConnection
System.Data.OleDb.OleDbCommand
System.Data.DataTable
Summary: This sample demonstrates: how to retrieve spread sheet data, how to create rooms without placing them and how to update spreadsheet data with data of rooms mapped to.


RoomViewer

Subject: View room boundary wireframe.
Skill Level: Medium
Category: Geometry
Type: ExternalCommand
Revit Platform: Architecture
First Released For: 8.0
Classes: Autodesk.Revit.DB.Architecture.Room
Autodesk.Revit.DB.Architecture.BoundarySegmentArrayArray
Summary: This sample demonstrates the usage of room boundary and uses a helper program RevitViewer.


RotateFramingObjects

Subject: Rotate framing objects.
Skill Level: Medium
Category: Basics, Structure
Type: ExternalCommand
Revit Platform: Structure
First Released For: 9.0
Classes: Autodesk.Revit.DB.Element
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.Structural.Enums.StructuralType
Autodesk.Revit.Creation.Application
Summary: Demonstrates how to rotate beams, braces or structural columns around their directional axis rather than project axis.


RoutingPreferenceTools


Subject: Tools for routing preferences Summary: This sample contains three commands.
[Note] - all samples only work properly when created from MEP document templates, such as "Systems-Default.rte."
Routing Preference Analysis Subject: Analyze the routing preferences of a given pipe type to check for common problems. Summary: This sample demonstrates how to use the routing preferences API to look at all rules and criteria for a given PipeType and check for several common problems, including:
1) The first rule in a group (e.g. "Elbows") has a range of "None." 2) All rules in a group have a range of "None." 3) A preferred junction type of Tee or Tap is set, but no fittings of that type are assigned to rules. 4) A segment's size range is not fully covered by the sizes ranges covered by elbow, junction, or cross fittings.
Classes: Autodesk.Revit.DB.Plumbing Autodesk.Revit.DB
Project Files: Command.cs Analyzer.cs Performs all routing preference analysis and exports an XDocument with XML data reporting any warnings.
PartIdInfo.cs Contains a routing preference rule group and list of ElementIds that correspond to found segments and fittings that meet criteria specified through a routing preference manager.
Instructions: 1. In Revit MEP, open or create a new document, load several pipe fittings, and define several pipe segments for several pipe types. 2. In the routing preferences manager for a pipe type, add these fittings and segments with minimum and maximum size ranges. 3. Run the Routing Preference Analysis command, and select a pipe type. 4. Click the "Find problems" button and read the XML output containing the warnings listed above.
To examine what segments and fittings your routing preferences will use for a give size, select a pipe size from the combo box, click the "Check Specific Size" button, read the output.

Routing Preference Builder (CommandReadPreferences and CommandWritePreferences)
Subject: A tool for setting pipe type, fitting, and routing preferences in a project from data in an XML file and also exporting those same preferences to XML for archival, documentation, and collaboration.
Skill Level: Medium
Category: MEP
Type: ExternalCommand
Revit Platform: MEP
First Released For: 2013.0
Classes: Autodesk.Revit.DB.RoutingPreferenceManager -manages routing preference rules and conditions for various MEP curve types.
Autodesk.Revit.DB.RoutingPreferenceRule
Autodesk.Revit.DB.Plumbing.PipeType
Autodesk.Revit.DB.Plumbing.PipeSegment
Autodesk.Revit.DB.Plumbing.PipeScheduleType
Autodesk.Revit.DB.PrimarySizeCriterion
Autodesk.Revit.DB.FamilySymbol
Autodesk.Revit.DB.Material
Summary: These commands allow a user to work with routing preference data in a shareable XML format suitable for reuse in a wide variety of BIM management environments.


RvtSamples

Subject: Add menu items of samples to Revit.
Skill Level: Beginning
Category: Basics
Type: ExternalApplication
Revit Platform: All
First Released For: 2009.0
Classes: Autodesk.Revit.ApplicationServices.ControlledApplication
Autodesk.Revit.UI.RibbonPanel
Autodesk.Revit.UI.PulldownButton
Autodesk.Revit.UI.PulldownButtonData
Autodesk.Revit.UI.PushButton
Autodesk.Revit.UI.PushButtonData
Summary: This sample integrates all other samples excluding ExternalApplications into a panel named "RvtSamples" under menu "Add-Ins".


Selections

Subject: Selections
Skill Level: Beginning
Category: Selection
Type: ExternalCommand
Revit Platform: ALL
First Released For: 2011.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.Reference
Autodesk.Revit.UI.Selection.Selection
Autodesk.Revit.UI.Selection.ObjectType
Autodesk.Revit.UI.Selection.ISelectionFilter
Autodesk.Revit.UI.Selection.ObjectSnapTypes
Autodesk.Revit.Exceptions.OperationCanceledException
Summary: This sample will demonstrate how to perform selection operations.


ShaftHolePuncher

Subject: Create all Kinds Opening.
Skill Level: High
Category: Geometry, Elements
Type: ExternalCommand
Revit Platform: All
First Released For: 2008.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Opening
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Level
Autodesk.Revit.DB.Face
Autodesk.Revit.DB.Edge
Autodesk.Revit.DB.Solid
Autodesk.Revit.DB.Instance
Autodesk.Revit.DB.Transform
Autodesk.Revit.DB.CurveArray
Autodesk.Revit.Creation.Document
Summary: This sample demonstrates how to create single or Shaft Opening on a wall, floor or beam.


SharedCoordinateSystem

Subject: Get and set project's place,location.
Skill Level: Medium
Category: Elements
Type: ExternalCommand
Revit Platform: All
First Released For: 9.1
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.GeometryElement
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.GeometryObject
Autodesk.Revit.DB.Transform
Autodesk.Revit.DB.Structure.AnalyticalModel
Autodesk.Revit.DB.SiteLocation
Autodesk.Revit.DB.CitySet
Summary: This sample demonstrates how to get place, location of project, and change their values.


SlabProperties

Subject: Slab properties retrieval.
Skill Level: Beginning
Category: Parameters, Elements
Type: ExternalCommand
Revit Platform: Structure
First Released For: 9.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Floor
Autodesk.Revit.DB.Structural.CompoundStructureLayer
Autodesk.Revit.DB.Structural.CompoundStructureLayerArray
Autodesk.Revit.DB.BuiltInParameter
Summary: This sample demonstrates how to get Slab's properties which consist of Level, Type Name, Span Direction and Slab's Layers information (Material Name, Thickness, Young Modulus X, Y and Z).


SlabShapeEditing

Subject: Create SlabShapeVertex and SlabShapeCrease.
Skill Level: Medium
Category: Geometry, Elements
Type: ExternalCommand
Revit Platform: Architecture, Structure
First Released For: 2009.0
Classes: Autodesk.Revit.DB.SlabShapeEditor
Autodesk.Revit.DB.SlabShapeCrease
Autodesk.Revit.DB.SlabShapeCreaseArray
Autodesk.Revit.DB.SlabShapeCreaseArrayIterator
Autodesk.Revit.DB.SlabShapeVertex
Autodesk.Revit.DB.Line
Autodesk.Revit.DB.Edge
Autodesk.Revit.DB.CurveArray
Autodesk.Revit.DB.GeometryObject
Summary: This sample demonstrates how to create SlabShapeVertex and SlabShapeCrease, and then use them to edit slab's shape.


SlaveSymbolGeometry

Subject: SlaveSymbolGeometry
Skill Level: Beginning
Category: Geometry
Type: ExternalCommand
Revit Platform: ALL
First Released For: 2012.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.Document
Autodesk.Revit.Element
Autodesk.Revit.DB;
Autodesk.Revit.DB.Analysis;
Summary: This sample is to demonstrate how to get slave symbol geometry of a family instance. This project will get various types of geometry information from the family instances in current Revit model and display them in different views by AVF.


SolidSolidCut

Subject: Solid-Solid Cut and Uncut.
Skill Level: Beginning
Category: Geometry
Type: ExternalCommand
Revit Platform: All
First Released For: 2011.0
Classes: Autodesk.Revit.IExternalCommand
Autodesk.Revit.DB.SolidSolidCutUtils
Summary: Shows how to use Solid-Solid Cut and Uncut.


SpanDirection

Subject: Date retrieval for structural Floor (Slab).
Skill Level: Beginning
Category: Parameters, Elements
Type: ExternalCommand
Revit Platform: Structure
First Released For: 8.1
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.ElementSet
Autodesk.Revit.DB.Floor
Autodesk.Revit.DB.ElementArray
Autodesk.Revit.DB.ElementArrayIterator
Summary: This sample demonstrates how to get span direction and span direction symbols of structural Floor (Slab).


SpatialFieldGradient

Subject: Display analysis results in a Revit model
Skill Level: Advanced
Category: Geometry
Type: ExternalCommand
Revit Platform: All
First Released For: 2011.0
Classes: Autodesk.Revit.DB.Analysis.AnalysisDisplayColoredSurfaceSettings
Autodesk.Revit.DB.Analysis.AnalysisDisplayColorSettings
Autodesk.Revit.DB.Analysis.AnalysisDisplayLegendSettings
Autodesk.Revit.DB.Analysis.AnalysisDisplayStyle
Autodesk.Revit.DB.Analysis.FieldDomainPointsByUV
Autodesk.Revit.DB.Analysis.FieldValues
Autodesk.Revit.DB.Analysis.SpatialFieldManager
Autodesk.Revit.DB.FilteredElementCollector
Autodesk.Revit.DB.TextNoteType
Autodesk.Revit.DB.BoundingBoxUV
Autodesk.Revit.UI.Selection.Selection
Summary: Select a face and display numeric data on that face


SpotDimension

Subject: Display Spot Dimensions.
Skill Level: Beginning
Category: Annotation
Type: ExternalCommand
Revit Platform: All
First Released For: 2008.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.SpotDimension
Autodesk.Revit.DB.Parameter
Summary: This sample demonstrates how to retrieve all the spot dimensions and theirs properties in all views of Revit document.


StairsAutomation

Subject: Stairs creation.
Skill Level: Medium
Category: Elements
Type: ExternalCommand
Revit Platform: Architecture
First Released For: 2013.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Architecture.Stairs
Autodesk.Revit.DB.Architecture.StairsRun
Autodesk.Revit.DB.Architecture.StairsLanding
Autodesk.Revit.DB.Architecture.StairsEditMode
Summary: A utility sample that creates a series of stairs, stairs runs and stairs landings configurations based upon predefined rules and parameters.


SpotDimension

Subject: Display Spot Dimensions.
Skill Level: Beginning
Category: Annotation
Type: ExternalCommand
Revit Platform: All
First Released For: 2008.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.SpotDimension
Autodesk.Revit.DB.Parameter
Summary: This sample demonstrates how to retrieve all the spot dimensions and theirs properties in all views of Revit document.


StructSample

Subject: Column creation and placing.
Skill Level: Beginning
Category: Structure
Type: ExternalCommand
Revit Platform: All
First Released For: 8.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.ElementSet
Autodesk.Revit.DB.Wall
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.BuiltInParameter
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Family
Autodesk.Revit.DB.Symbols.FamilySymbol
Autodesk.Revit.DB.Geometry.XYZ
Autodesk.Revit.DB.Geometry.UV
Autodesk.Revit.DB.Geometry.Line
Summary: This sample demonstrates how to place a set of columns in the selected wall.


StructuralLayerFunction

Subject: Function retrieval for structural layers.
Skill Level: Beginning
Category: Structure
Type: ExternalCommand
Revit Platform: All
First Released For: 9.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.ElementSet
Autodesk.Revit.DB.Structural.CompoundStructureLayer
Autodesk.Revit.DB.Structural.Enum.CompoundStructureLayerFunction
Summary: This sample demonstrates how to retrieve the function of each structural layer of selected floor in order from outside to inside in a dialog box.


TagBeam

Subject: Create tags for beam or rebar; Create text.
Skill Level: Beginning
Category: Annotation
Type: ExternalCommand
Revit Platform: All
First Released For: 2008.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.LocationCurve
Autodesk.Revit.DB.Family
Autodesk.Revit.DB.FamilySymbol
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.IndependentTag
Autodesk.Revit.DB.Structure.Rebar
Autodesk.Revit.DB.TextNote
Summary: This sample demonstrates how to create tags at the start and end of selected beams, how to create a rebar tag at the end of the first curve of selected rebar and how to create a text.


TestFloorThickness

Subject: Change the thickness of floor.
Skill Level: Beginning
Category: Parameters
Type: ExternalCommand
Revit Platform: All
First Released For: 2008.0
Classes: Autodesk.Revit.DB.Floor
Autodesk.Revit.DB.FloorType
Summary: Retrieve and change floor thickness.


TestWallThickness

Subject: Change the thickness of wall.
Skill Level: Beginning
Category: Parameters
Type: ExternalCommand
Revit Platform: All
First Released For: 2008.0
Classes: Autodesk.Revit.DB.Wall
Autodesk.Revit.DB.WallType
Summary: Retrieve and change wall thickness.


TransactionControl

Subject: How to deal with transaction group, transaction and sub transaction.
Skill Level: Medium
Category: Basics
Type: ExternalCommand
Revit Platform: All
First Released For: 2008.0
Classes: Autodesk.Revit.Document
Autodesk.Revit.DB.TransactionGroup
Autodesk.Revit.DB.Transaction
Autodesk.Revit.DB.SubTransaction
Summary: This sample demonstrates how to use transaction group, transaction and sub transaction.


TraverseSystem

Subject: Traverse a well-connected mechanical or piping system in the direction of flow.
Skill Level: Medium
Category: MEP
Type: ExternalCommand
Revit Platform: MEP
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB
Summary: This sample shows how to traverse a well-connected mechanical or piping system in the direction of flow and dump the traversal into an XML file.


Truss

Subject: Create truss, edit truss Profile and Members.
Skill Level: Medium
Category: Structure , Geometry
Type: ExternalCommand
Revit Platform: Structure
First Released For: 2009.0
Classes: Autodesk.Revit.DB.Structure.Truss
Autodesk.Revit.DB.Structure.TrussType
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.FamilySymbol
Autodesk.Revit.DB.ViewPlan
Autodesk.Revit.DB.Strucure.TrussMemberInfo
Autodesk.Revit.DB.Line
Autodesk.Revit.DB.CurveArray
Summary: This sample demonstrates how to create a truss and modify its truss members and profile.


TypeRegeneration

Subject: Family type regeneration
Skill Level: Beginning
Category: Families
Type: ExternalCommand
Revit Platform: All
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.UI.UIDocument
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.FamilyManager
Autodesk.Revit.DB.ParameterSet
Summary: This sample demonstrates Family type regeneration by Revit API.


TypeSelector

Subject: Wall types retrieval.
Skill Level: Beginning
Category: Families
Type: ExternalCommand
Revit Platform: All
First Released For: 8.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.ElementId
Autodesk.Revit.DB.Family
Autodesk.Revit.DB.FamilySymbol
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.FamilySymbol
Autodesk.Revit.DB.FamilySymbolSet
Autodesk.Revit.DB.WallType
Autodesk.Revit.DB.WallTypeSet
Summary: This sample demonstrates how to retrieve all types in project of one specific family (wall) and how to change the type of one family instance or wall.


ValidateParameters

Subject: Validate Parameters
Skill Level: Beginning
Category: Families
Type: ExternalCommand, ExternalApplication
Revit Platform: All
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.UI.IExternalApplication
Autodesk.Revit.UI.UIDocument
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.FamilyManager
Autodesk.Revit.DB.ParameterSet
Summary: This sample will demonstrate if every type has valid values for certain parameters.


VersionChecking

Subject: Version information of Revit application.
Skill Level: Beginning
Category: Parameters, Basics
Type: ExternalCommand
Revit Platform: All
First Released For: 9.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.ApplicationServices.Application
Summary: This sample demonstrates how to get Revit version information: product name, product version and product build number.


ViewFilters

Subject: Create and modify view filters.
Skill Level: Medium
Category: Elements
Type: ExternalCommand
Revit Platform: All
First Released For: 2011.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.DB.FilteredElementCollector
Autodesk.Revit.DB.ParameterFilterElement
Autodesk.Revit.DB.ParameterFilterUtilities
Autodesk.Revit.DB.ParameterFilterRuleFactory
Summary: This sample demonstrates how to create and modify view filters by 2011 new element iteration API.


ViewPrinter

Subject: Print the printable views.
Skill Level: Medium
Category: Data Exchange
Type: ExternalCommand
Revit Platform: All
First Released For: 2008.0
Classes: Autodesk.Revit.DB.Document.PrintManager
Autodesk.Revit.DB.VirtualPrinterType
Autodesk.Revit.DB.PrintRange
Autodesk.Revit.DB.PrintSetup
Autodesk.Revit.DB.PrintSetting
Autodesk.Revit.DB.ViewSheetSetting
Autodesk.Revit.DB.ViewSheetSet
Summary: This sample demonstrates how to print the printable view and sheets.


VisibilityControl

Subject: Control visibility by category.
Skill Level: Medium
Category: Views
Type: ExternalCommand
Revit Platform: All
First Released For: 2008.0
Classes: Autodesk.Revit.DB.View
Autodesk.Revit.Document
Autodesk.Revit.UI.Selection
Autodesk.Revit.DB.Document.Settings
Autodesk.Revit.DB.Categories
Summary: This sample demonstrates how to control visibility by category, and how the API supports the options to pick a single element or pick multiple elements.


WindowWizard

Subject: Windows Wizard
Skill Level: Beginning
Category: Families
Type: ExternalCommand
Revit Platform: ALL
First Released For: 2010.0
Classes: Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.UI.IExternalApplication
Autodesk.Revit.UI.UIDocument
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.FamilyManager
Autodesk.Revit.DB.ParameterSet
Autodesk.Revit.DB.GeometryElement
Summary: This sample will demonstrate how to create a window family via wizard.


WorkThread

Subject: Sample of a multi-htreaded application utilizing the Idling event
Skill Level: Medium
Category: Basics
Type: ExternalCommand and ExternalApplication
Revit Platform: All
First Released For: 2013.0
Classes: Autodesk.Revit.DB
Autodesk.Revit.UI;
Autodesk.Revit.UI.Selection;
Autodesk.Revit.UI.Events;
Autodesk.Revit.DB.Events;
Autodesk.Revit.DB.Analysis;
Summary: This sample shows how to utilize the Applicaiton.Idling event in order to communicate with the Revit API from an external work thread.