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 to dlls in Revit's default installation folders.
To build all the samples, all these files must exist. If you install Revit in a non-standard place, you can use any of the following solutions:
  1. Copy the required dlls to the default installation locations described above.
  2. Open the *.targets files and fix each <HintPath> for the dlls. The *.targets files found in "C:\<Revit_SDK_Version>\Samples\VSProps\".

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

Analysis

EnergyAnalysisModel

Annotation

AutoTagRooms
CapitalizeAllTextNotes
CivilAlignments
ColorFill
CreateDimensions
DeleteDimensions
DimensionLeaderEnd
InCanvasControlAPI
PathOfTravel
SpotDimension
TagBeam

Basics

APIAppStartup
AutoStamp
AutoUpdate
CancelSave
CapitalizeAllTextNotes
ChangesMonitor
CloudAPISample
Custom2DExporter
DeleteDimensions
DeleteObject
DesignOptionReader
DisableCommand
DuplicateGraphics
ErrorHandling
EventsMonitor
HelloRevit
InCanvasControlAPI
Journaling
ModelessForm_ExternalEvent
ModelessForm_IdlingEvent
PhaseSample
PlacementOptions
PostCommandWorkflow
PrintLog
ProgressNotifier
ProjectInfo
ReferencePlane
RevitCommands
Ribbon
RotateFramingObjects
RvtSamples
SelectionChanged
TransactionControl
UIAPI
Units
VersionChecking
WorkThread

Data Exchange

ArchSample
DWGFamilyCreation
ExportPDFSettingsSample
ExternalResourceDBServer
ExternalResourceUIServer
ImportExport
PanelSchedule
Units
ViewPrinter

Elements

AttachedDetailGroup
CivilAlignments
CompoundStructure
ContextualAnalyticalModel
CreateFillPattern
CreateTrianglesTopography
CurtainSystem
CurtainWallGrid
DatumsModification
DesignOptionReader
DisplacementElementAnimation
DuplicateViews
ExportPDFSettingsSample
ExtensibleStorageManager
ExtensibleStorageUtility
FoundationSlab
GenerateFloor
GetSetDefaultTypes
GridCreation
LevelsProperty
ModelLines
MoveLinear
MultistoryStairs
NewHostedSweep
NewOpenings
NewRoof
Openings
PathOfTravel
PerformanceAdviserControl
ShaftHolePuncher
SharedCoordinateSystem
Site
SlabProperties
SlabShapeEditing
SpanDirection
StairsAutomation
ViewFilters
WinderStairs

Families

AutoParameter
CreateAirHandler
CreateTruss
DividedSurfaceByIntersects
DWGFamilyCreation
FamilyParametersOrder
GenericModelCreation
GetSetDefaultTypes
InPlaceMembers
NewForm
PlaceFamilyInstanceByFace
PlacementOptions
RevitCommands
SinePlotter
TypeRegeneration
TypeSelector
ValidateParameters
WindowWizard

Geometry

AnalyticalViewer
AutoJoin
BRepBuilderExample
ComputedSymbolGeometry
ContextualAnalyticalModel
Custom2DExporter
DirectionCalculation
DistanceToPanels
DistanceToSurfaces
DuplicateGraphics
DynamicModelUpdate
ElementViewer
FindColumns
FreeFormElement
GeometryCreation_BooleanOperation
ManipulateForm
MaterialQuantities
MeasureHeight
MeasurePanelArea
MultithreadedCalculation
NewPathReinforcement
PanelEdgeLengthAngle
PointCloudEngine
PointCurveCreation
ProximityDetection_WallJoinControl
RayTraceBounce
ReferencePlane
RevitViewer
RoomViewer
ShaftHolePuncher
SinePlotter
SlabShapeEditing
SolidSolidCut
SpatialFieldGradient
Truss
UpdateExternallyTaggedBRep

Massing

ParameterValuesFromImage

Materials

AppearanceAssetEditing
MaterialProperties
PhysicalProp

MEP

AutoRoute
AvoidObstruction
FabricationPartLayout
PowerCircuit
RoutingPreferenceTools
TraverseSystem

Parameters

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

Rooms/Spaces

AddSpaceAndZone
DoorSwing
RoofsRooms
Rooms
RoomSchedule

Selection

Selections

Structure

AnalyticalSupportData_Info
AreaReinCurve
AreaReinParameters
BoundaryConditions
ContextualAnalyticalModel
CreateBeamsColumnsBraces
CreateBeamSystem
CreateComplexAreaRein
CreateSimpleAreaRein
CreateWallinBeamProfile
CreateWallsUnderBeams
CurvedBeam
FrameBuilder
GenericStructuralConnection
Loads
MultiplanarRebar
NewPathReinforcement
NewRebar
PathReinforcement
RebarContainerAnyShapeType
RebarFreeForm
Reinforcement
RotateFramingObjects
SampleCommandsSteelElements
StructSample
StructuralLayerFunction
Truss

UI

ContextualAnalyticalModel
DockableDialogs

View Transforms

SheetToView3D

Views

AllViews
CreateViewSection
Custom2DExporter
DisplacementElementAnimation
DuplicateViews
ObjectViewer
PathOfTravel
ScheduleAutomaticFormatter
ScheduleCreation
ScheduleToHTML
ViewTemplateCreation
VisibilityControl

By Skill Level

Advanced

DirectionCalculation
DistanceToSurfaces
DynamicModelUpdate
ExtensibleStorageManager
FindColumns
MaterialQuantities
MultithreadedCalculation
ObjectViewer
ParameterValuesFromImage
PointCloudEngine
PostCommandWorkflow
RebarFreeForm
SheetToView3D
SpatialFieldGradient
WinderStairs

Beginning

APIAppStartup
AreaReinCurve
AutoRoute
BrowseBindings
CancelSave
CapitalizeAllTextNotes
ComputedSymbolGeometry
CreateFillPattern
CreateShared
CreateTrianglesTopography
CurvedBeam
DatumsModification
DeckProperties
DeleteDimensions
DeleteObject
DesignOptionReader
DimensionLeaderEnd
DisableCommand
DistanceToPanels
DWGFamilyCreation
FireRating
GenericStructuralConnection
HelloRevit
InCanvasControlAPI
LevelsProperty
MeasurePanelArea
ModelLines
MoveLinear
PanelEdgeLengthAngle
PanelSchedule
ParameterUtils
PerformanceAdviserControl
PhaseSample
PhysicalProp
PointCurveCreation
PowerCircuit
ProjectInfo
RevitCommands
Ribbon
Rooms
RvtSamples
ScheduleCreation
SelectionChanged
Selections
SlabProperties
SolidSolidCut
SpanDirection
SpotDimension
StructSample
StructuralLayerFunction
TagBeam
TestFloorThickness
TestWallThickness
TypeRegeneration
TypeSelector
Units
ValidateParameters
VersionChecking
WindowWizard

High

BoundaryConditions
CloudAPISample
CreateBeamSystem
DisplacementElementAnimation
DuplicateGraphics
GridCreation
ImportExport
MultiplanarRebar
NewHostedSweep
NewOpenings
NewRebar
NewRoof
Openings
RebarContainerAnyShapeType
Reinforcement
RoomSchedule
SampleCommandsSteelElements
ScheduleAutomaticFormatter
ShaftHolePuncher

Medium

AddSpaceAndZone
AllViews
AnalyticalSupportData_Info
AnalyticalViewer
AppearanceAssetEditing
ArchSample
AreaReinParameters
AttachedDetailGroup
AutoJoin
AutoParameter
AutoStamp
AutoTagRooms
AutoUpdate
AvoidObstruction
BeamAndSlabNewParameter
BRepBuilderExample
ChangesMonitor
CivilAlignments
ColorFill
CompoundStructure
ContextualAnalyticalModel
CreateAirHandler
CreateBeamsColumnsBraces
CreateComplexAreaRein
CreateDimensions
CreateSimpleAreaRein
CreateTruss
CreateViewSection
CreateWallinBeamProfile
CreateWallsUnderBeams
CurtainSystem
CurtainWallGrid
Custom2DExporter
DividedSurfaceByIntersects
DockableDialogs
DoorSwing
DuplicateViews
ElementViewer
EnergyAnalysisModel
ErrorHandling
EventsMonitor
ExportPDFSettingsSample
ExtensibleStorageUtility
ExternalResourceDBServer
ExternalResourceUIServer
FabricationPartLayout
FamilyParametersOrder
FoundationSlab
FrameBuilder
FreeFormElement
GenerateFloor
GenericModelCreation
GeometryCreation_BooleanOperation
GetSetDefaultTypes
InPlaceMembers
InvisibleParam
Journaling
Loads
ManipulateForm
MaterialProperties
MeasureHeight
ModelessForm_ExternalEvent
ModelessForm_IdlingEvent
MultistoryStairs
NewForm
NewPathReinforcement
PathOfTravel
PathReinforcement
PlaceFamilyInstanceByFace
PlacementOptions
PrintLog
ProgressNotifier
ProximityDetection_WallJoinControl
RayTraceBounce
ReadonlySharedParameters
ReferencePlane
RevitViewer
RoofsRooms
RoomViewer
RotateFramingObjects
RoutingPreferenceTools
ScheduleToHTML
SharedCoordinateSystem
SinePlotter
Site
SlabShapeEditing
StairsAutomation
TransactionControl
TraverseSystem
Truss
UIAPI
UpdateExternallyTaggedBRep
ViewFilters
ViewPrinter
ViewTemplateCreation
VisibilityControl
WorkThread

By Version

8.0

AnalyticalViewer
APIAppStartup
ArchSample
AutoTagRooms
BrowseBindings
CreateShared
CurvedBeam
DuplicateGraphics
ElementViewer
FireRating
ImportExport
MoveLinear
MultistoryStairs
NewOpenings
NewPathReinforcement
PathReinforcement
PhysicalProp
ProjectInfo
RebarFreeForm
RevitCommands
RevitViewer
RoomViewer
ShaftHolePuncher
SpotDimension
StructSample
TagBeam
TestFloorThickness
TestWallThickness
TransactionControl
TypeSelector
ViewPrinter
VisibilityControl

8.1

AppearanceAssetEditing
DeckProperties
HelloRevit
InvisibleParam
ParameterUtils
SpanDirection

9.0

AddSpaceAndZone
AllViews
AnalyticalSupportData_Info
AreaReinCurve
AreaReinParameters
BeamAndSlabNewParameter
CreateBeamsColumnsBraces
CreateComplexAreaRein
CreateDimensions
CreateSimpleAreaRein
CreateViewSection
CreateWallinBeamProfile
CreateWallsUnderBeams
CurtainSystem
CurtainWallGrid
Custom2DExporter
DeleteDimensions
DeleteObject
DesignOptionReader
DoorSwing
GenerateFloor
GridCreation
InPlaceMembers
LevelsProperty
Loads
MaterialProperties
NewHostedSweep
NewRebar
NewRoof
ObjectViewer
PhaseSample
PlaceFamilyInstanceByFace
PowerCircuit
RotateFramingObjects
RvtSamples
SampleCommandsSteelElements
SlabProperties
SlabShapeEditing
StructuralLayerFunction
Truss
VersionChecking

9.1

AttachedDetailGroup
BoundaryConditions
CreateBeamSystem
FoundationSlab
FrameBuilder
Journaling
Openings
ReferencePlane
Reinforcement
RoofsRooms
Rooms
SharedCoordinateSystem

2008.0

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

2008.2

ModelLines
RoomSchedule

2009.0

AddSpaceAndZone
CurtainSystem
CurtainWallGrid
DoorSwing
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
ComputedSymbolGeometry
CreateFillPattern
EnergyAnalysisModel
ExtensibleStorageManager
GeometryCreation_BooleanOperation
MultiplanarRebar
MultithreadedCalculation
PerformanceAdviserControl
PointCloudEngine

2013.0

DisableCommand
ModelessForm_ExternalEvent
ModelessForm_IdlingEvent
ProgressNotifier
RoutingPreferenceTools
ScheduleCreation
SinePlotter
StairsAutomation
UIAPI
WinderStairs
WorkThread

2014.0

DisplacementElementAnimation
DockableDialogs
DuplicateViews
ExtensibleStorageUtility
FreeFormElement
PostCommandWorkflow
ScheduleAutomaticFormatter
ScheduleToHTML
Site
Units

2015.0

DatumsModification
DimensionLeaderEnd
ExternalResourceDBServer
ExternalResourceUIServer
FamilyParametersOrder
GetSetDefaultTypes
ReadonlySharedParameters

2016.0

FabricationPartLayout
RebarContainerAnyShapeType

2017.0

BRepBuilderExample
CapitalizeAllTextNotes
GenericStructuralConnection
PlacementOptions

2018.0

DuplicateGraphics
MultistoryStairs
RebarFreeForm

2018.1

AppearanceAssetEditing

2019.0

Custom2DExporter
SampleCommandsSteelElements

2019.1

AttachedDetailGroup

2019.2

CreateTrianglesTopography

2020.0

CloudAPISample
ExportPDFSettingsSample
InCanvasControlAPI
PathOfTravel
ViewTemplateCreation

2021.1

CivilAlignments

2022.0

ColorFill
UpdateExternallyTaggedBRep

2023.0

ContextualAnalyticalModel
SelectionChanged
SheetToView3D

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.Creation.Document
Autodesk.Revit.DB.Mechanical.Space
Autodesk.Revit.DB.Mechanical.Zone
Autodesk.Revit.DB.Phase
Autodesk.Revit.UI.IExternalCommand
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 and edit properties of a selected viewport in a sheet.
Skill Level:Medium
Category:Views
Type:ExternalCommand,
Revit Platform:All
First Released For:9.0
Classes:Autodesk.Revit.Creation.Document.NewViewSheet
Autodesk.Revit.DB.View
Autodesk.Revit.DB.ViewSet
Summary:This sample demonstrates how to generate a new sheet that includes all the selected views. It also demonstrates how to access the properties of a viewport such as LabelLineOffset, LabelLength and Orientation.

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.

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.

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.BoundingBoxUV
Autodesk.Revit.DB.FilteredElementCollector
Autodesk.Revit.DB.TextNoteType
Autodesk.Revit.UI.Selection.Selection
Summary:Select a face and display numeric data on that face

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.DB.Structure.AnalyticalModel
Autodesk.Revit.DB.Structure.AnalyticalModelSupport
Autodesk.Revit.DB.Structure.AnalyticalSupportType
Autodesk.Revit.UI.IExternalCommand
Summary:This sample displays the supported information of the element (includes the element id, element type and supported type of the element).

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.

AppearanceAssetEditing

Subject:Edit appearance asset properties via a small control dialog
Skill Level:Medium
Category:Materials
Type:ExternalApplication, ExternalCommand,
Revit Platform:All
First Released For:2018.1
Classes:Autodesk.Revit.DB.AppearanceAssetElement
Autodesk.Revit.DB.Material
Autodesk.Revit.DB.Visual.AppearanceAssetEditScope
Autodesk.Revit.DB.Visual.AssetPropertyBoolean
Autodesk.Revit.DB.Visual.AssetPropertyDoubleArray4d
Summary:This sample demonstrates basic usage of the AppearanceAssetEditScope and AssetProperty classes to change the value of an asset property in a given material.

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.Collections.Map
Autodesk.Revit.Collections.MapIterator
Autodesk.Revit.Collections.Set
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.ElementSet
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.ParameterSet
Autodesk.Revit.UI.IExternalCommand
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.DB.BuiltInParameter
Autodesk.Revit.DB.ElementSet
Autodesk.Revit.DB.Structure.AreaReinforcementCurve
Autodesk.Revit.UI.IExternalCommand
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.DB.BuiltInParameter
Autodesk.Revit.DB.ElementIterator
Autodesk.Revit.DB.ElementSet
Autodesk.Revit.DB.Structure.AreaReinforcementCurve
Autodesk.Revit.DB.Structure.RebarBarType
Autodesk.Revit.UI.IExternalCommand
Summary:This sample shows how to use API displays and modifies parameters of AreaReinforcement. And teach user how to get all parameters of Rebar.

AttachedDetailGroup

Subject:Attached Detail Group
Skill Level:Medium
Category:Elements
Type:ExternalApplication,
Revit Platform:All
First Released For:2019.1
Classes:Autodesk.Revit.DB.Group
Autodesk.Revit.UI.IExternalApplication
Autodesk.Revit.UI.IExternalCommand
Summary:This sample shows how to show and hide the attached detail groups of a model group.

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.Connector
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Mechanical.Duct
Autodesk.Revit.DB.Mechanical.MechanicalSystem
Summary:This sample demonstrates how to route a set of ducts and fittings between a base air supply equipment and 2 terminals.

AutoTagRooms

Subject:Auto Tag Rooms.
Skill Level:Medium
Category:Annotation
Type:ExternalCommand,
Revit Platform:Architecture
First Released For:2008.0
Classes:Autodesk.Revit.Creation.Document
Autodesk.Revit.DB.Architecture.Room
Autodesk.Revit.DB.Architecture.RoomTag
Autodesk.Revit.DB.Architecture.RoomTagType
Autodesk.Revit.UI.IExternalCommand
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.

AvoidObstruction

Subject:Obstruction detects and resolve.
Skill Level:Medium
Category:MEP
Type:ExternalCommand,
Revit Platform:MEP
First Released For:2010.0
Classes:Autodesk.Revit.Creation.Document
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.Mechanical.Duct
Autodesk.Revit.DB.Plumbing.Pipe
Autodesk.Revit.UI.IExternalCommand
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.DB.CategorySet
Autodesk.Revit.DB.Definition
Autodesk.Revit.DB.DefinitionFile
Autodesk.Revit.DB.DefinitionGroup
Autodesk.Revit.DB.DefinitionGroups
Autodesk.Revit.DB.Definitions
Autodesk.Revit.DB.InstanceBinding
Autodesk.Revit.DB.Parameter
Autodesk.Revit.UI.IExternalCommand
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.DB.BoundaryConditions
Autodesk.Revit.UI.IExternalCommand
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.ApplicationServices.Application
Autodesk.Revit.DB.BindingMap
Autodesk.Revit.DB.CategorySet
Autodesk.Revit.DB.Definition
Autodesk.Revit.DB.DefinitionBindingMapIterator
Autodesk.Revit.DB.ElementBinding
Autodesk.Revit.UI.IExternalCommand
Summary:This sample browses all the shared parameters bindings used in the project.

CapitalizeAllTextNotes

Subject:Capitalize All Text
Skill Level:Beginning
Category:Annotation, Basics
Type:ExternalCommand,
Revit Platform:All
First Released For:2017.0
Classes:Autodesk.Revit.DB.FormattedText
Autodesk.Revit.DB.TextNote
Autodesk.Revit.UI.IExternalCommand
Summary:Capitalizes all the text of all the TextNotes in the project by formatting the text to use 'AllCaps'

CivilAlignments

Subject:Infrastructure alignments
Skill Level:Medium
Category:Annotation, Elements
Type:ExternalApplication, ExternalCommand,
Revit Platform:All
First Released For:2021.1
Classes:Revit.SDK.Samples.CivilAlignments.CS.CivilAlignmentsApp
Revit.SDK.Samples.CivilAlignments.CS.CreateAlignmentStationLabelSetCmd
Revit.SDK.Samples.CivilAlignments.CS.ShowProperties
Summary:Demonstrates the use of API for finding, property querying and annotating of infrastructure alignment elements.

CloudAPISample

Subject:Revit Cloud API Usage Sample
Skill Level:High
Category:Basics
Type:ExternalApplication,
Revit Platform:All
First Released For:2020.0
Classes:Revit.SDK.Samples.CloudAPISample.CS.Application
Revit.SDK.Samples.CloudAPISample.CS.Coroutine.Coroutine
Revit.SDK.Samples.CloudAPISample.CS.Coroutine.CoroutineScheduler
Revit.SDK.Samples.CloudAPISample.CS.Migration.DefaultMigrationModel
Revit.SDK.Samples.CloudAPISample.CS.Migration.FolderLocation
Revit.SDK.Samples.CloudAPISample.CS.Migration.IMigrationModel
Revit.SDK.Samples.CloudAPISample.CS.Migration.MigrationRule
Revit.SDK.Samples.CloudAPISample.CS.Migration.MigrationToBim360
Revit.SDK.Samples.CloudAPISample.CS.RunSample
Revit.SDK.Samples.CloudAPISample.CS.SampleContext
Revit.SDK.Samples.CloudAPISample.CS.SampleEngine
Revit.SDK.Samples.CloudAPISample.CS.View.ViewMigrationToBim360
Revit.SDK.Samples.CloudAPISample.CS.View.ViewSamplePortal
Summary:This is a sample helps third party developers understand how to use Revit Cloud API

ColorFill

Subject:ColorFill Scheme and Legend creation and modification.
Skill Level:Medium
Category:Annotation
Type:ExternalCommand,
Revit Platform:All
First Released For:2022.0
Classes:Autodesk.Revit.DB.ColorFillScheme
Summary:This sample demonstrates how to create ColorFill scheme, add entries and modify entries for colorFill scheme. It also demonstrates how to create colorFill legend with scheme and modify its appearance.

CompoundStructure

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

ContextualAnalyticalModel

Subject:Contextual Analytical Model
Skill Level:Medium
Category:Elements, Geometry, Structure, UI
Type:ExternalCommand,
Revit Platform:Structure
First Released For:2023.0
Classes:Autodesk.Revit.DB.Document
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.ElementId
Autodesk.Revit.DB.Reference
Autodesk.Revit.DB.Structure.AnalyticalMember
Autodesk.Revit.DB.Structure.AnalyticalOpening
Autodesk.Revit.DB.Structure.AnalyticalPanel
Autodesk.Revit.DB.Transaction
Autodesk.Revit.UI.Events
Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.UI.UIDocument
Summary:Contextual Analytical Model

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.Creation.Document.NewFamilyInstance(…) method
Autodesk.Revit.DB.FamilySymbol
Autodesk.Revit.UI.IExternalCommand
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.DB.BeamSystem
Autodesk.Revit.DB.BeamSystem.LayoutRule
Autodesk.Revit.DB.FamilySymbol
Autodesk.Revit.UI.IExternalCommand
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.CurveArray
Autodesk.Revit.DB.ElementIterator
Autodesk.Revit.DB.Line
Autodesk.Revit.DB.Solid
Autodesk.Revit.DB.Structural.AnalyticalModel
Autodesk.Revit.DB.Structural.AreaReinforcementType
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.DB.Category
Autodesk.Revit.DB.CategorySet
Autodesk.Revit.DB.Curve
Autodesk.Revit.DB.Dimension
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.GeometryObject
Autodesk.Revit.DB.GeometryObjectArray
Autodesk.Revit.DB.Line
Autodesk.Revit.DB.Location
Autodesk.Revit.DB.LocationCurve
Autodesk.Revit.DB.Options
Autodesk.Revit.DB.ReferenceArray
Autodesk.Revit.DB.View
Autodesk.Revit.DB.Wall
Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.UI.Selection.SelElementSet
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.DB.FillPatternElement
Autodesk.Revit.DB.LinePatternElement
Autodesk.Revit.UI.IExternalCommand
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.DB.Category
Autodesk.Revit.DB.CategorySet
Autodesk.Revit.DB.Definition
Autodesk.Revit.DB.DefinitionFile
Autodesk.Revit.DB.DefinitionGroup
Autodesk.Revit.DB.Parameters.InstanceBinding
Autodesk.Revit.DB.ParameterSet
Autodesk.Revit.DB.Symbol
Autodesk.Revit.UI.IExternalCommand
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.CurveArray
Autodesk.Revit.DB.Floor
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.Structure.AreaReinforcement
Autodesk.Revit.DB.Structure.AreaReinforcementType
Autodesk.Revit.DB.Wall
Summary:This sample uses to show how to create AreaReinforcement and change its parameters by Revit API.

CreateTrianglesTopography

Subject:Create triangles topography surface
Skill Level:Beginning
Category:Elements
Type:ExternalCommand,
Revit Platform:Architecture
First Released For:2019.2
Classes:Autodesk.Revit.DB
Autodesk.Revit.UI.IExternalCommand
Summary:This sample will demonstrate how to creates a new topography surface element from triangle points and triangle facets.

CreateViewSection

Subject:Create section views.
Skill Level:Medium
Category:Views
Type:ExternalCommand,
Revit Platform:Structure
First Released For:9.0
Classes:Autodesk.Revit.DB.BoundingBoxXYZ
Autodesk.Revit.DB.Curve
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.ElementSet
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Floor
Autodesk.Revit.DB.Line
Autodesk.Revit.DB.LocationCurve
Autodesk.Revit.DB.Structural.AnalyticalModel
Autodesk.Revit.DB.Structural.AnalyticalModelFloor
Autodesk.Revit.DB.Structural.AnalyticalModelFrame
Autodesk.Revit.DB.Transform
Autodesk.Revit.DB.Wall
Autodesk.Revit.UI.IExternalCommand
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.DB.Curve
Autodesk.Revit.DB.Document
Autodesk.Revit.UI.Elements.FamilyInstance
Autodesk.Revit.UI.IExternalCommand
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.DB.Document
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.UI.IExternalCommand
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.Creation.Document
Autodesk.Revit.DB.CurtainSystem
Autodesk.Revit.DB.Document
Autodesk.Revit.UI.IExternalCommand
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.DB.CurtainCell
Autodesk.Revit.DB.CurtainGrid
Autodesk.Revit.DB.CurtainGridLine
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.Mullion
Autodesk.Revit.DB.Wall
Autodesk.Revit.UI.IExternalCommand
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.DB.Creation.Document
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Geometry.Arc
Autodesk.Revit.DB.Geometry.Ellipse
Autodesk.Revit.DB.Geometry.NurbSpline
Autodesk.Revit.DB.Geometry.XYZ
Autodesk.Revit.DB.Level
Autodesk.Revit.DB.Symbols.FamilySymbol
Autodesk.Revit.UI.IExternalCommand
Summary:This sample demonstrates how to create curved beam, this sample can create three types of curved beam: arc, ellipse and nurbspline.

Custom2DExporter

Subject:Export 2D views with CustomExporter
Skill Level:Medium
Category:Basics, Geometry, Views
Type:ExternalCommand,
Revit Platform:All
First Released For:2019.0
Classes:Autodesk.Revit.DB.CustomExporter
Autodesk.Revit.DB.IExportContext2D
Autodesk.Revit.UI.IExternalCommand
Summary:Export 2D views with CustomExporter, using varying options of the exporter.

DatumsModification

Subject:Datumplane modification
Skill Level:Beginning
Category:Elements
Type:ExternalApplication, ExternalCommand,
Revit Platform:All
First Released For:2015.0
Classes:Autodesk.Revit.DB.DatumPlane
Autodesk.Revit.UI.IExternalApplication
Summary:Datumplane modification

DeckProperties

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

DeleteDimensions

Subject:Delete dimensions.
Skill Level:Beginning
Category:Annotation, Basics
Type:ExternalCommand,
Revit Platform:All
First Released For:9.0
Classes:Autodesk.Revit.DB.Dimension
Autodesk.Revit.DB.Element
Autodesk.Revit.UI.IExternalCommand
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.DB.Document
Autodesk.Revit.UI.IExternalCommand
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:Basics, Elements
Type:ExternalCommand,
Revit Platform:All
First Released For:9.0
Classes:Autodesk.Revit.ApplicationServices.Application
Autodesk.Revit.DB.DesignOption
Autodesk.Revit.DB.Element
Autodesk.Revit.UI.IExternalCommand
Summary:This sample demonstrates how to get the design options in the current document of Revit.

DimensionLeaderEnd

Subject:Dimension leader end point.
Skill Level:Beginning
Category:Annotation
Type:ExternalCommand,
Revit Platform:All
First Released For:2015.0
Classes:Autodesk.Revit.DB.Dimension
Summary:Using new dimension api to move leader end point.

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.ElementCategoryFilter
Autodesk.Revit.DB.ElementClassFilter
Autodesk.Revit.DB.FilteredElementCollector
Autodesk.Revit.DB.Location
Autodesk.Revit.DB.Transform
Autodesk.Revit.UI.Selection.Selection
Summary:Find all windows and exterior walls that face the south direction.

DisableCommand

Subject:Command replacement
Skill Level:Beginning
Category:Basics
Type:ExternalApplication,
Revit Platform:All
First Released For:2013.0
Classes:Autodesk.Revit.UI.AddInCommandBinding
Autodesk.Revit.UI.IExternalApplication
Autodesk.Revit.UI.RevitCommandId
Autodesk.Revit.UI.UIControlledApplication
Summary:Disable a command by replacing its implementation with a simple popup message

DisplacementElementAnimation

Subject:Use DisplacementElement to animate building members
Skill Level:High
Category:Elements, Views
Type:ExternalApplication,
Revit Platform:All
First Released For:2014.0
Classes:Autodesk.Revit.DB.DisplacementElement
Autodesk.Revit.UI.Events.IdlingEventArgs
Autodesk.Revit.UI.IExternalCommand
Summary:Use DisplacementElements to animate groups of building structural members, proceeding sequentially from bottom level to top.

DockableDialogs

Subject:Docking modeless dialogs
Skill Level:Medium
Category:UI
Type:ExternalApplication, ExternalCommand,
Revit Platform:All
First Released For:2014.0
Classes:Autodesk.Revit.UI.DockablePane
Autodesk.Revit.UI.IDockablePaneProvider
Instructions: Build and install the addin, and start Revit. Before opening a document, select the “Register” ribbon button in the “DockableDialogs” ribbon tab to launch the registration dialog. Select a docking style (bottom, top, tabbed, floating, etc…). After opening a document, note the docked-modeless API window in the UI. The “Hide” and “Show” buttons in the DockableDialogs ribbon can hide and show the dialog without destroying it.
Summary:DockableDialogs is a sample addin that demonstrates modeless dialog design, external events, and the new dockable dialogs UI API framework.

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.DB.DocumentChangeArgs
Autodesk.Revit.UI. IExternalApplication
Summary:This sample demonstrates how to subscribe the DocumentChanged event to controlled application level, and how this event works.

DoorSwing

Subject:Manage opening of the door and rooms relevant to the door.
Skill Level:Medium
Category:Rooms/Spaces
Type:ExternalApplication, ExternalCommand,
Revit Platform:Architecture
First Released For:2009.0
Classes:Autodesk.Revit. UI.PushButton
Autodesk.Revit.ApplicationServices.ControlledApplication
Autodesk.Revit.DB.BindingMap
Autodesk.Revit.DB.BoundingBoxXYZ
Autodesk.Revit.DB.Definition
Autodesk.Revit.DB.DefinitionFile
Autodesk.Revit.DB.DocumentType.Family
Autodesk.Revit.DB.ElementBinding
Autodesk.Revit.DB.Events.DocumentSavingAsEventArgs
Autodesk.Revit.DB.Events.DocumentSavingEventArgs
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.GeometryElement
Autodesk.Revit.DB.InstanceBinding
Autodesk.Revit.DB.Options
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.TypeBinding
Autodesk.Revit.UI.IExternalApplication
Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.UI.RibbonPanel
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.

DuplicateGraphics

Subject:Display graphics using DirectContext3D
Skill Level:High
Category:Basics, Geometry
Type:ExternalApplication, ExternalCommand,
Revit Platform:All
First Released For:2018.0
Classes:Autodesk.Revit.DB.DirectContext3D.DrawContext
Autodesk.Revit.DB.DirectContext3D.IDirectContext3DServer
Autodesk.Revit.DB.ExternalService.IExternalApplication
Autodesk.Revit.UI.IExternalCommand
Summary:The sample demonstrates basic usage of DirectContext3D. The external application creates DirectContext3D servers that extract geometry from selected Revit elements, encode it in pairs of vertex and index buffers, and submit it for rendering using DirectContext3D. The effect of the process, which is triggered using an ExternalCommand, is to display the geometry content of selected Revit elements at an offset, so that the graphics appear to be duplicated.

DuplicateViews

Subject:Copy paste drafting views and schedules from one document to another
Skill Level:Medium
Category:Elements, Views
Type:ExternalApplication,
Revit Platform:All
First Released For:2014.0
Classes:Autodesk.Revit.DB.CopyPasteOptions
Autodesk.Revit.DB.ElementTransformUtils
Autodesk.Revit.DB.FilteredElementCollector
Autodesk.Revit.DB.IDuplicateTypeNamesHandler
Autodesk.Revit.DB.IFailuresPreprocessor
Autodesk.Revit.UI.IExternalCommand
Summary:Use the copy paste APIs to copy drafting views and schedules from one document to another. The drafting view contents will also be copied.

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.ElementCategoryFilter
Autodesk.Revit.DB.ElementClassFilter
Autodesk.Revit.DB.LocationPoint
Autodesk.Revit.DB.LogicalAndFilter
Autodesk.Revit.DB.UpdaterRegistry
Summary:Move a section marker to maintain relative position with a window

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.DB.FilteredElementCollector
Autodesk.Revit.DB.ParameterFilterElement
Autodesk.Revit.DB.ParameterFilterRuleFactory
Autodesk.Revit.DB.ParameterFilterUtilities
Autodesk.Revit.UI.IExternalCommand
Summary:This sample demonstrates how to create and modify view filters by 2011 new element iteration API.

ErrorHandling

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

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.DB.Events.ViewPrintedEventArgs
Autodesk.Revit.DB.Events.ViewPrintingEventArgs
Autodesk.Revit.DB.Geometry.XYZ
Autodesk.Revit.DB.TextNote
Autodesk.Revit.UI.IExternalApplication
Summary:This sample demonstrates how to subscribe ViewPrint events, create and delete TextNote element in event handler and cancel events when creation failure occurred.

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.DB.Events
Autodesk.Revit.UI.IExternalApplication
Summary:This sample demonstrates how to subscribe DocumentOpened event and modify model in event handler in the event handler method.

CancelSave

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

EventsMonitor

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

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.DB.Events.DocumentPrintedEventArgs
Autodesk.Revit.DB.Events.DocumentPrintingEventArgs
Autodesk.Revit.DB.Events.ViewPrintedEventArgs
Autodesk.Revit.DB.Events.ViewPrintingEventArgs
Autodesk.Revit.UI.IExternalApplication
Autodesk.Revit.UI.IExternalCommand
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.DB.Events.ProgressChangedEventArgs
Autodesk.Revit.UI.IExternalCommand
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.

SelectionChanged

Subject:SelectionChanged event
Skill Level:Beginning
Category:Basics
Type:ExternalApplication,
Revit Platform:All
First Released For:2023.0
Classes:Autodesk.Revit.ApplicationServices.ControlledApplication
Autodesk.Revit.UI.Events.SelectionChangedEventArgs
Autodesk.Revit.UI.IExternalApplication
Summary:The sample implements IExternalApplication interface and subscribes SelectionChanged event in OnStartUp; the registered event handler will dump selected references related information to log files.

ExportPDFSettingsSample

Subject:ExportPDFSettings examples.
Skill Level:Medium
Category:Data Exchange, Elements
Type:ExternalApplication,
Revit Platform:All
First Released For:2020.0
Classes:Autodesk.Revit.DB.ExportPDFSettings
Autodesk.Revit.DB.PDFExportOptions
Autodesk.Revit.DB.TableCellCombinedParameterData
Summary:Provides examples for manipulating ExportPDFSettings.

ExtensibleStorageManager

Subject:Create, read, update, and delete third party extensible storage in Revit Elements.
Skill Level:Advanced
Category:Elements
Type:ExternalApplication, ExternalCommand,
Revit Platform:All
First Released For:2012.0
Classes:Autodesk.Revit.DB.Element
Autodesk.Revit.DB.ExtensibleStorage.Entity
Autodesk.Revit.DB.ExtensibleStorage.Field
Autodesk.Revit.DB.ExtensibleStorage.FieldBuilder
Autodesk.Revit.DB.ExtensibleStorage.Schema
Autodesk.Revit.DB.ExtensibleStorage.SchemaBuilder
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.

ExtensibleStorageUtility

Subject:ExtensibleStorageUtility
Skill Level:Medium
Category:Elements
Type:ExternalCommand,
Revit Platform:All
First Released For:2014.0
Classes:StorageUtility – provides all methods to query and delete, and display extensible storage.
Summary:This sample shows that query if storage of given schemas exists in a document using the ExtensibleStorageFilter as well as how to delete it.

ExternalResourceDBServer

Subject:Sample External Resource Server
Skill Level:Medium
Category:Data Exchange
Type:ExternalApplication,
Revit Platform:All
First Released For:2015.0
Classes:Application.cs
Autodesk.Revit.DB.IExternalDBApplication
Autodesk.Revit.DB.IExternalResourceServer
Autodesk.Revit.DB.IGetLocalPathForOpenCallback
Autodesk.Revit.DB.IOnLocalLinkSharedCoordinatesSavedCallback
Contains GetLinkPathForOpen and LocalLinkSharedCoordinatesSaved, which are implementations of additional external resource server interfaces - IGetLocalPathForOpenCallback and IOnLocalLinkSharedCoordinatesSavedCallback. These callback classes are required in order to support Revit links.
Contains the class DBApplication which inherits from interface IExternalDBApplication and implements the OnStartup and OnShutdown methods. The Sample External Resource DB Server is registered with Revit in the OnStartup method.
Contains the KeynotesDatabase class, which is a "fake" database used to demonstrate how keynote data can be loaded into Revit from an arbitrary source, rather than a traditional text file.
Contains the SampleExternalResourceDBServer class - an implementation of the IExternalResourceServer interface.
KeynotesDatabase.cs
Project Files
SampleExternalResourceDBServer.cs
ServerInterfaceExtensionsForRevitLinks.cs
Summary:Demonstrates a concrete class derived from 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.

ExternalResourceUIServer

Subject:An External Resource UI Server Class
Skill Level:Medium
Category:Data Exchange
Type:ExternalApplication,
Revit Platform:All
First Released For:2015.0
Classes:Autodesk.Revit.UI.IExternalApplication
Autodesk.Revit.UI.IExternalResourceUIServer
Summary:An IExternalResourceUIServer implementation to provide messages and other UI in support of the SampleExternalResourceServer in the ExternalResourceDBServer project.

FabricationPartLayout

Subject:Fabrication Part
Skill Level:Medium
Category:MEP
Type:ExternalCommand,
Revit Platform:MEP
First Released For:2016.0
Classes:Autodesk.Revit.DB.Connector
Autodesk.Revit.DB.ConnectorSet
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.ElementId
Autodesk.Revit.DB.Fabrication.CustomDataType
Autodesk.Revit.DB.Fabrication.DesignToFabricationConverter
Autodesk.Revit.DB.Fabrication.DesignToFabricationConverterResult
Autodesk.Revit.DB.Fabrication.FabricationAncillaryType
Autodesk.Revit.DB.Fabrication.FabricationAncillaryUsageType
Autodesk.Revit.DB.Fabrication.FabricationPartCompareType
Autodesk.Revit.DB.Fabrication.FabricationPartFitResult
Autodesk.Revit.DB.Fabrication.FabricationPartRouteEnd
Autodesk.Revit.DB.Fabrication.FabricationUtils
Autodesk.Revit.DB.FabricationAncillaryUsage
Autodesk.Revit.DB.FabricationConfiguration
Autodesk.Revit.DB.FabricationDimensionDefinition
Autodesk.Revit.DB.FabricationItemFile
Autodesk.Revit.DB.FabricationItemFolder
Autodesk.Revit.DB.FabricationPart
Autodesk.Revit.DB.FabricationRodInfo
Autodesk.Revit.DB.FabricationService
Autodesk.Revit.DB.FabricationServiceButton
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Level
Autodesk.Revit.DB.MEPConnectorInfo
Autodesk.Revit.DB.Parameter
Autodesk.Revit.UI.IExternalCommand
Summary:This sample shows how to use the Fabrication Part API to create a sample layout and make modifications to fabrication data in the model. This includes:rectangular and round ductworktap placementrotationsstraight optimizationsconnections to a generic Revit family instancestretch fabrication part fitting to a target elementconverting design elements into fabrication partsrenumbering the straight/coupling fabrication partsloading and unloading of item filesexporting fabrication parts to PCF and MAJaccessing fabrication part mesh geometry.flip a fabrication part

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.DB.CombinableElement
Autodesk.Revit.DB.Document
Autodesk.Revit.UI.IExternalCommand
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:Families, Parameters
Type:ExternalCommand,
Revit Platform:All
First Released For:2010.0
Classes:Autodesk.Revit.DB.ExternalDefinition
Autodesk.Revit.DB.FamilyManager
Autodesk.Revit.DB.FamilyParameter
Autodesk.Revit.Document
Autodesk.Revit.UI.IExternalCommand
Summary:This sample demonstrates how to automatically add parameters (shared or not) to family documents.

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.Creation.FamilyItemFactory
Autodesk.Revit.DB.CombinableElement
Autodesk.Revit.DB.Extrusion
Autodesk.Revit.DB.Mechanical.DuctConnector
Autodesk.Revit.DB.Plumbing.PipeConnector
Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.UI.UIDocument
Summary:This sample creates one air handler and adds connectors (piping, duct).

CreateTruss

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

DWGFamilyCreation

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

GenericModelCreation

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

TypeRegeneration

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

ValidateParameters

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

WindowWizard

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

FamilyParametersOrder

Subject:Sort family parameters' order.
Skill Level:Medium
Category:Families, Parameters
Type:ExternalCommand,
Revit Platform:All
First Released For:2015.0
Classes:Autodesk.Revit.ApplicationServices.Application;
Autodesk.Revit.DB
Autodesk.Revit.DB.Document;
Autodesk.Revit.DB.Family;
Autodesk.Revit.DB.FamilyManager;
Autodesk.Revit.DB.FamilySource;
Autodesk.Revit.DB.FilteredElementCollector;
Autodesk.Revit.DB.IFamilyLoadOptions;
Autodesk.Revit.UI.IExternalApplication;
Autodesk.Revit.UI.IExternalCommand;
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.Document
Autodesk.Revit.DB.FilteredElementCollector
Autodesk.Revit.DB.FilteredElementIterator
Autodesk.Revit.DB.Transform
Autodesk.Revit.DB.XYZ
Autodesk.Revit.UI.Selection.Selection
Summary:This sample shows how to find columns that are embedded in walls with the Revit API method FindReferencesWithContextByDirection.

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.BoundingBoxXYZ
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.FilteredElementCollector
Autodesk.Revit.DB.ModelCurve
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.

RayTraceBounce

Subject:Ray Trace Bounce
Skill Level:Medium
Category:Geometry
Type:ExternalCommand,
Revit Platform:All
First Released For:2010.0
Classes:Autodesk.Revit.DB.Document
Autodesk.Revit.DB.ElementSet
Autodesk.Revit.DB.GeometryObject
Autodesk.Revit.UI.IExternalCommand
Summary:This sample shows how to find intersection between ray and face and create connecting lines by 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.DB.Category
Autodesk.Revit.UI.IExternalCommand
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.DB.Document
Autodesk.Revit.DB.Floor
Autodesk.Revit.DB.FloorType
Autodesk.Revit.UI.IExternalCommand
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.DB.Document
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.FamilySymbol
Autodesk.Revit.DB.Level
Autodesk.Revit.UI.IExternalCommand
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.

FreeFormElement

Subject:FreeFormElement creation
Skill Level:Medium
Category:Geometry
Type:ExternalApplication,
Revit Platform:All
First Released For:2014.0
Classes:Autodesk.Revit.DB.BooleanOperationsUtils
Autodesk.Revit.DB.Curve
Autodesk.Revit.DB.CurveLoop
Autodesk.Revit.DB.FreeFormElement
Autodesk.Revit.UI.IExternalCommand
Summary:Use geometry tools to create a new family which has a cutout from an existing element.

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.

GenericStructuralConnection

Subject:Generic structural connection
Skill Level:Beginning
Category:Structure
Type:ExternalCommand,
Revit Platform:All
First Released For:2017.0
Classes:Autodesk.Revit.DB.ElementTransformUtils
Autodesk.Revit.DB.ExtensibleStorage.Entity
Autodesk.Revit.DB.ExtensibleStorage.Schema
Autodesk.Revit.DB.Structure.StructuralConnectionHandler
Autodesk.Revit.DB.Structure.StructuralConnectionHandlerType
Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.UI.Selection.ISelectionFilter
Summary:Demonstrates basic Create Read Update Delete operations on a generic / detailed structural connection

BRepBuilderExample

Subject:BRepBuilder usage example
Skill Level:Medium
Category:Geometry
Type:ExternalApplication,
Revit Platform:All
First Released For:2017.0
Classes:Autodesk.Revit.DB.BRepBuilder
Autodesk.Revit.DB.DirectShape
Autodesk.Revit.UI.IExternalApplication
Autodesk.Revit.UI.IExternalCommand
Summary:Several cases of BRepBuilder usage for constructing Revit geometry using API.

ComputedSymbolGeometry

Subject:ComputedSymbolGeometry
Skill Level:Beginning
Category:Geometry
Type:ExternalCommand,
Revit Platform:All
First Released For:2012.0
Classes:Autodesk.Revit.DB.Analysis;
Autodesk.Revit.DB;
Autodesk.Revit.Document
Autodesk.Revit.Element
Autodesk.Revit.UI.IExternalCommand
Summary:This sample is to demonstrate how to get computed 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.

EnergyAnalysisModel

Subject:EnergyAnalysisModel
Skill Level:Medium
Category:Analysis
Type:ExternalCommand,
Revit Platform:All
First Released For:2012.0
Classes:Autodesk.Revit.DB.Analysis;
Autodesk.Revit.DB;
Autodesk.Revit.Document
Autodesk.Revit.Element
Autodesk.Revit.UI.IExternalCommand
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.

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.DB.Analysis;
Autodesk.Revit.DB;
Autodesk.Revit.Document
Autodesk.Revit.Element
Autodesk.Revit.UI.IExternalCommand
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 (http://en.wikipedia.org/wiki/Constructive_solid_geometry, http://en.wikipedia.org/wiki/File:Csg_tree.png) and show it in a new view by AVF – Analysis Visualization Framework.

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.DB;
Autodesk.Revit.Document
Autodesk.Revit.Element
Autodesk.Revit.UI.IExternalCommand
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.

UpdateExternallyTaggedBRep

Subject:UpdateExternallyTaggedBRep usage example.
Skill Level:Medium
Category:Geometry
Type:ExternalApplication,
Revit Platform:All
First Released For:2022.0
Classes:Autodesk.Revit.DB.BRepBuilder
Autodesk.Revit.DB.DirectShape
Autodesk.Revit.DB.ExternalGeometryId
Autodesk.Revit.DB.ExternallyTaggedBRep
Autodesk.Revit.UI.IExternalApplication
Autodesk.Revit.UI.IExternalCommand
Summary:This sample shows how UpdateExternallyTaggedBRep can be used for creation and updating the geometry using DirectShape/DirectShapeType.

GetSetDefaultTypes

Subject:Get and set default family or element types
Skill Level:Medium
Category:Elements, Families
Type:ExternalApplication, ExternalCommand,
Revit Platform:All
First Released For:2015.0
Classes:Autodesk.Revit.DB ElementType.IsValidDefaultFamilyType
Autodesk.Revit.DB.Docuemnt.GetDefaultFamilyTypeId
Autodesk.Revit.DB.Docuemnt.SetDefaultFamilyTypeId
Autodesk.Revit.DB.Document.GetDefaultElementTypeId
Autodesk.Revit.DB.Document.IsDefaultElementTypeIdValid
Autodesk.Revit.DB.Document.IsDefaultFamilyTypeIdValid
Autodesk.Revit.DB.Document.SetDefaultElementTypeId
Summary:GetSetDefaultTypes is a sample addin that demonstrates how to get and set default family and element types.

GridCreation

Subject:Create Grid.
Skill Level:High
Category:Elements
Type:ExternalCommand,
Revit Platform:All
First Released For:2009.0
Classes:Autodesk.Revit.DB
Autodesk.Revit.UI.IExternalCommand
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.DB.DGNExportOptions
Autodesk.Revit.DB.DWFExportOptions
Autodesk.Revit.DB.DWFXExportOptions
Autodesk.Revit.DB.DWGExportOptions
Autodesk.Revit.DB.DWGImportOptions
Autodesk.Revit.DB.DXFExportOptions
Autodesk.Revit.DB.FBXExportOptions
Autodesk.Revit.DB.GBXMLExportOptions
Autodesk.Revit.DB.GBXMLImportOptions
Autodesk.Revit.DB.ImageExportOptions
Autodesk.Revit.DB.ImageImportOptions
Autodesk.Revit.DB.InventorImportOptions
Autodesk.Revit.DB.PDFExportOptions
Autodesk.Revit.DB.SATExportOptions
Autodesk.Revit.UI.IExternalCommand
Summary:This sample shows how to export current project to dwg, sat,dxf, dwf(x), gbxml, fbx, dgn, pdf or image files and how to import a dwg, image, GBXML or Inventor file into Revit.

InCanvasControlAPI

Subject:In-Canvas controls
Skill Level:Beginning
Category:Annotation, Basics
Type:ExternalApplication, ExternalCommand,
Revit Platform:All
First Released For:2020.0
Classes:.
Autodesk.Revit.UI.InCanvasControlData
Autodesk.Revit.UI.ITemporaryGraphicsHandler
Autodesk.Revit.UI.TemporaryGraphicsCommandData
Autodesk.Revit.UI.TemporaryGraphicsManager
Summary:This sample will demonstrate how to create, keep track of and handle clicks on In-Canvas controls.

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.DB.Curve
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Structure.AnalyticalModel
Autodesk.Revit.UI.IExternalCommand
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.ApplicationServices.Application
Autodesk.Revit.DB.Definition
Autodesk.Revit.DB.DefinitionFile
Autodesk.Revit.DB.DefinitionGroup
Autodesk.Revit.DB.InstanceBinding
Autodesk.Revit.UI.IExternalCommand
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
Skill Level:Medium
Category:Basics
Type:ExternalCommand,
Revit Platform:All
First Released For:9.1
Classes:Autodesk.Revit.DB.Collections.StringStringMap
Autodesk.Revit.DB.Creation
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.Element
Autodesk.Revit.UI.IExternalCommand
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.Creation.Document
Autodesk.Revit.DB.Level
Autodesk.Revit.UI.IExternalCommand
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.Creation.Document
Autodesk.Revit.DB.Structure.LoadCase
Autodesk.Revit.DB.Structure.LoadCombination
Autodesk.Revit.DB.Structure.LoadNature
Autodesk.Revit.UI.IExternalCommand
Summary:This sample shows how to operate Load Case, Load Nature, Load Usage and Load Combination.

DistanceToPanels

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

DividedSurfaceByIntersects

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

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.Creation.FamilyItemFactory
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.ElementSet
Autodesk.Revit.DB.ReferenceArray
Autodesk.Revit.DB.ReferenceArrayArray
Autodesk.Revit.UI.IExternalCommand
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.

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.DB.DividedSurface
Autodesk.Revit.DB.Panel
Autodesk.Revit.UI.IExternalCommand
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.

NewForm

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

PanelEdgeLengthAngle

Subject:Divided surface panel measurement
Skill Level:Beginning
Category:Geometry
Type:ExternalCommand,
Revit Platform:All
First Released For:2010.0
Classes:Autodesk.Revit.DB.DividedSurface
Autodesk.Revit.DB.Panel
Autodesk.Revit.UI.IExternalCommand
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.

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:Autodesk.Revit.DB.DividedSurface
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Parameter
System.Drawing.Bitmap
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.

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.CurveByPoints
Autodesk.Revit.DB.Form
Autodesk.Revit.DB.PointOnEdge
Autodesk.Revit.DB.ReferencePoint
System.IO.StreamReader
Summary:Use equations and external data files to create massing geometry

MaterialProperties

Subject:Display Material Properties.
Skill Level:Medium
Category:Materials
Type:ExternalCommand,
Revit Platform:All
First Released For:9.0
Classes:Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Material
Autodesk.Revit.DB.Parameter
Autodesk.Revit.UI.IExternalCommand
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:Autodesk.Revit.DB.ElementCategoryFilter
Autodesk.Revit.DB.ElementClassFilter
Autodesk.Revit.DB.FilteredElementCollector
Autodesk.Revit.DB.LogicalAndFilter
Autodesk.Revit.DB.Material
Autodesk.Revit.DB.Transaction
System.Collections.Generic.Dictionary
System.Diagnostics.Process
Summary:Outputs an analysis of the materials that make up walls, floors, and roofs, and displays the output in Excel.

ModelessForm_ExternalEvent

Subject:Show Modeless Form (External Event)
Skill Level:Medium
Category:Basics
Type:ExternalApplication, ExternalCommand,
Revit Platform:All
First Released For:2013.0
Classes:Autodesk.Revit.DB;
Autodesk.Revit.UI.Events;
Autodesk.Revit.UI;
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:ExternalApplication, ExternalCommand,
Revit Platform:All
First Released For:2013.0
Classes:Autodesk.Revit.DB;
Autodesk.Revit.UI.Events;
Autodesk.Revit.UI;
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.Creation.Application
Autodesk.Revit.DB.Arc
Autodesk.Revit.DB.Line
Autodesk.Revit.DB.ModelArc
Autodesk.Revit.DB.ModelCurve
Autodesk.Revit.DB.ModelCurveArray
Autodesk.Revit.DB.ModelLine
Autodesk.Revit.DB.SketchPlane
Autodesk.Revit.DB.XYZ
Autodesk.Revit.UI.IExternalCommand
Summary:This sample shows how to get model lines of all kinds and how to create model lines using Revit API.

MoveLinear

Subject:Move an element which is based on Line.
Skill Level:Beginning
Category:Elements, Parameters
Type:ExternalCommand,
Revit Platform:All
First Released For:8.0
Classes:Autodesk.Revit.Creation.Application
Autodesk.Revit.DB.Curve
Autodesk.Revit.DB.LocationCurve
Autodesk.Revit.UI.IExternalCommand
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.Creation.Document
Autodesk.Revit.DB.DefinitionGroup
Autodesk.Revit.DB.ExternalDefinition
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.Solid
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.UI.IExternalCommand
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).

MultistoryStairs

Subject:MultistoryStairs
Skill Level:Medium
Category:Elements
Type:ExternalApplication,
Revit Platform:All
First Released For:2018.0
Classes:Autodesk.Revit.DB.Architecture.MultistoryStairs
Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.UI.Selection.ISelectionFilter
Summary:MultistoryStairs editing utilities, including creating multistory stairs by a standard stairs, adding/removing stairs by picking level.

WorkThread

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

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.Creation.Document
Autodesk.Revit.DB.Architecture.Fascia
Autodesk.Revit.DB.Architecture.FasciaType
Autodesk.Revit.DB.Architecture.Gutter
Autodesk.Revit.DB.Architecture.GutterType
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.Edge
Autodesk.Revit.DB.HostedSweep
Autodesk.Revit.DB.HostedSweepType
Autodesk.Revit.DB.Reference
Autodesk.Revit.DB.SlabEdge
Autodesk.Revit.DB.SlabEdgeType
Autodesk.Revit.DB.Solid
Autodesk.Revit.DB.Transform
Autodesk.Revit.UI.IExternalCommand
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.Edge
Autodesk.Revit.DB.Floor
Autodesk.Revit.DB.Opening
Autodesk.Revit.DB.Wall
Autodesk.Revit.DB.XYZ
Summary:Shows how to create Openings by Revit API.

NewPathReinforcement

Subject:Create PathReinforcement.
Skill Level:Medium
Category:Geometry, Structure
Type:ExternalCommand,
Revit Platform:Structure
First Released For:2008.0
Classes:Autodesk.Revit.Creation.Document
Autodesk.Revit.DB.Edge
Autodesk.Revit.DB.Face
Autodesk.Revit.DB.Solid
Autodesk.Revit.DB.Structure.PathReinforcement
Autodesk.Revit.DB.Structure.PathReinforcementType
Autodesk.Revit.UI.IExternalCommand
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.Creation.Document
Autodesk.Revit.DB.DefinitionGroup
Autodesk.Revit.DB.ExternalDefinition
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.Solid
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.UI.IExternalCommand
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.Creation.Document
Autodesk.Revit.DB.Curve
Autodesk.Revit.DB.ExtrusionRoof
Autodesk.Revit.DB.FootPrintRoof
Autodesk.Revit.DB.Level
Autodesk.Revit.DB.RoofType
Autodesk.Revit.DB.Wall
Autodesk.Revit.UI.IExternalCommand
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.DB.Element
Autodesk.Revit.DB.GeometryElement
Autodesk.Revit.DB.GeometryObject
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.Structure.AnalyticalModel
Autodesk.Revit.DB.Transform
Autodesk.Revit.UI.IExternalCommand
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.DB.Document
Autodesk.Revit.DB.Opening
Autodesk.Revit.UI.IExternalCommand
Summary:Shows how to get geometry profile and properties of an opening and how to add x model lines to opening bounding box.

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.PanelScheduleSheetInstance
Autodesk.Revit.DB.Electrical.PanelScheduleView
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.Document
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.Parameter
Summary:This sample demonstrates how to get the parameters of a Revit element.

PathOfTravel

Subject:Create PathOfTravel.
Skill Level:Medium
Category:Annotation, Elements, Views
Type:ExternalCommand,
Revit Platform:Architecture
First Released For:2020.0
Classes:Autodesk.Revit.DB.Analysis.PathOfTravel
Autodesk.Revit.DB.Architecture.Door
Autodesk.Revit.DB.Architecture.Room
Autodesk.Revit.DB.Creation.Document
Autodesk.Revit.UI.IExternalCommand
Summary:This sample demonstrated how to create PathOfTravel elements from room(s) to door(s) in a plan view.

PathReinforcement

Subject:Display PathReinforcement informations.
Skill Level:Medium
Category:Structure
Type:ExternalCommand,
Revit Platform:All
First Released For:2008.0
Classes:Autodesk.Revit.DB.ModelCurve
Autodesk.Revit.DB.Structure.PathReinforcement
Autodesk.Revit.DB.Structure.RebarBarType
Autodesk.Revit.UI.IExternalCommand
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:Beginning
Category:Elements
Type:ExternalApplication, ExternalCommand,
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.DB.ElementSet
Autodesk.Revit.Elements.Phase
Autodesk.Revit.UI.IExternalCommand
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:Materials, Parameters
Type:ExternalCommand,
Revit Platform:Structure
First Released For:8.0
Classes:Autodesk.Revit.DB.Document
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Parameter
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.DB.Face
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.FamilySymbol
Autodesk.Revit.DB.Options
Autodesk.Revit.DB.Solid
Autodesk.Revit.UI.IExternalCommand
Summary:This sample demonstrates how to create family instance on face.

PlacementOptions

Subject:Interactive placement of family instance via options
Skill Level:Medium
Category:Basics, Families
Type:ExternalCommand,
Revit Platform:All
First Released For:2017.0
Classes:Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.FamilySymbol
Autodesk.Revit.UI.FaceBasedPlacementType
Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.UI.PromptForFamilyInstancePlacementOptions
Autodesk.Revit.UI.SketchGalleryOptions
Autodesk.Revit.UI.UIDocument
Summary:This sample demonstrates how to place the family instance via options.

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.PointCloudInstance
Autodesk.Revit.DB.PointClouds.CloudPoint
Autodesk.Revit.DB.PointClouds.IPointCloudAccess
Autodesk.Revit.DB.PointClouds.IPointCloudEngine
Autodesk.Revit.DB.PointClouds.IPointSetIterator
Autodesk.Revit.DB.PointClouds.PointCloudFilter
Autodesk.Revit.DB.PointCloudType
Summary:Offers a variety of examples for custom point cloud engines.

PostCommandWorkflow

Subject:Demonstration of use of PostCommand() to drive user workflows
Skill Level:Advanced
Category:Basics
Type:ExternalApplication,
Revit Platform:All
First Released For:2014.0
Classes:Autodesk.Revit.DB.DocumentSavingEventArgs
Autodesk.Revit.UI.AddInCommandBinding
Autodesk.Revit.UI.Events.BeforeExecutedEventArgs
Autodesk.Revit.UI.Events.TaskDialogShowingEventArgs
Autodesk.Revit.UI.IExternalEventHandler
Autodesk.Revit.UI.PushButton
Autodesk.Revit.UI.RevitCommandId
Autodesk.Revit.UI.TaskDialog
Autodesk.Revit.UI.UIApplication
Summary:Use PostCommand() as a part of a customized workflow. When a document does not have a new revision added, prompt to add one before saving.

PowerCircuit

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

ProjectInfo

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

ReadonlySharedParameters

Subject:Read-only Shared Parameters
Skill Level:Medium
Category:Parameters
Type:ExternalApplication, ExternalCommand,
Revit Platform:All
First Released For:2015.0
Classes:Autodesk.Revit.DB.DefinitionFile
Autodesk.Revit.DB.DefinitionGroup
Autodesk.Revit.DB.ElementParameterFilter
Autodesk.Revit.DB.FilteredElementCollector
Autodesk.Revit.DB.FilterRule
Autodesk.Revit.DB.Parameter
Autodesk.Revit.UI.IExternalApplication
Autodesk.Revit.UI.IExternalCommand
Summary:

RebarContainerAnyShapeType

Subject:Create Rebar Container Object.
Skill Level:High
Category:Structure
Type:ExternalCommand,
Revit Platform:Structure
First Released For:2016.0
Classes:Autodesk.Revit.Creation.Document
Autodesk.Revit.DB.Structure.Rebar
Autodesk.Revit.DB.Structure.StructuralType
Autodesk.Revit.UI.IExternalCommand
Summary:Show how to create a Rebar Container in a concrete element (Beam or Column) which does not currently host reinforcement.

RebarFreeForm

Subject:Rebar Free Form
Skill Level:Advanced
Category:Structure
Type:ExternalApplication, ExternalCommand,
Revit Platform:All
First Released For:2018.0
Classes:AddSharedParams
Application
Command
CurveElementRegenUpdater
RebarUpdateServer
TargetFace
Summary:External command to create a Rebar FreeForm element and external application to implement the custom server used to regenerate the rebar geometry based on constraints

ReferencePlane

Subject:Create ReferencePlane.
Skill Level:Medium
Category:Basics, Geometry
Type:ExternalCommand,
Revit Platform:All
First Released For:9.1
Classes:Autodesk.Revit.Creation.Document
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.Floor
Autodesk.Revit.DB.Line
Autodesk.Revit.DB.Mesh
Autodesk.Revit.DB.Options
Autodesk.Revit.DB.Solid
Autodesk.Revit.DB.Wall
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.Creation.Document
Autodesk.Revit.DB.Structure.Rebar
Autodesk.Revit.DB.Structure.StructuralType
Autodesk.Revit.UI.IExternalCommand
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.ApplicationServices.ApplicationServices.Application
Autodesk.Revit.DB.Curve
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.GeometryElement
Autodesk.Revit.DB.Instance
Autodesk.Revit.DB.Location
Autodesk.Revit.DB.Mesh
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.Solid
Summary:These sample contains 5 commands, demonstrates1. 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.IExternalApplication
Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.UI.PulldownButton
Autodesk.Revit.UI.PulldownButtonData
Autodesk.Revit.UI.PushButton
Autodesk.Revit.UI.PushButtonData
Autodesk.Revit.UI.RibbonPanel
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:MEP
First Released For:2009.1
Classes:Autodesk.Revit.DB.Architecture.Room
Autodesk.Revit.DB.Architecture.RoomFilter
Autodesk.Revit.DB.BuiltInCategory
Autodesk.Revit.DB.ElementCategoryFilter
Autodesk.Revit.DB.Face
Autodesk.Revit.DB.FilteredElementCollector
Autodesk.Revit.DB.LogicalOrFilter
Autodesk.Revit.DB.Mechanical.Space
Autodesk.Revit.DB.Mechanical.SpaceFilter
Autodesk.Revit.DB.Solid
Autodesk.Revit.DB.SpatialElementBoundarySubface
Autodesk.Revit.DB.SpatialElementGeometryCalculator
Autodesk.Revit.DB.SpatialElementGeometryResults
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.DB.Architecture.Room
Autodesk.Revit.DB.Architecture.RoomTag
Autodesk.Revit.DB.Creation.Document
Autodesk.Revit.DB.Parameters.BuiltInParameter
Autodesk.Revit.UI.IExternalCommand
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:ExternalApplication, ExternalCommand,
Revit Platform:Architecture
First Released For:2008.2
Classes:Autodesk.Revit.DB.Architecture.Room
Autodesk.Revit.DB.Category
Autodesk.Revit.DB.Document
Autodesk.Revit.DB.Events.DocumentClosed
Autodesk.Revit.DB.Events.DocumentSaving
Autodesk.Revit.DB.Events.DocumentSavingAs
Autodesk.Revit.DB.Level
Autodesk.Revit.DB.Parameters.BuildInParameter
Autodesk.Revit.DB.Parameters.Definition
Autodesk.Revit.DB.Parameters.DefinitionGroup
Autodesk.Revit.DB.Parameters.InstanceBinding
Autodesk.Revit.DB.Phase
Autodesk.Revit.UI.IExternalCommand
System.Data.DataTable
System.Data.OleDb.OleDbCommand
System.Data.OleDb.OleDbConnection
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.

RotateFramingObjects

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

RoutingPreferenceTools

Subject:Tools for routing preferences
Skill Level:Medium
Category:MEP
Type:ExternalCommand,
Revit Platform:MEP
First Released For:2013.0
Classes:Autodesk.Revit.DB
Autodesk.Revit.DB.Plumbing
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 AnalysisSubject: 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:The first rule in a group (e.g. “Elbows”) has a range of “None.”All rules in a group have a range of “None.”A preferred junction type of Tee or Tap is set, but no fittings of that type are assigned to rules.A segment’s size range is not fully covered by the sizes ranges covered by elbow, junction, or cross fittings.

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.PulldownButton
Autodesk.Revit.UI.PulldownButtonData
Autodesk.Revit.UI.PushButton
Autodesk.Revit.UI.PushButtonData
Autodesk.Revit.UI.RibbonPanel
Summary:This sample integrates all other samples excluding ExternalApplications into a panel named “RvtSamples” under menu “Add-Ins”.

SampleCommandsSteelElements

Subject:Sample commands for steel elements
Skill Level:High
Category:Structure
Type:ExternalCommand,
Revit Platform:All
First Released For:2019.0
Classes:Autodesk.Revit.DB.Document
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.ElementId
Autodesk.Revit.DB.Reference
Autodesk.Revit.DB.Steel.SteelElementProperties
Autodesk.Revit.DB.Structure.StructuralConnectionHandler
Autodesk.Revit.DB.Structure.StructuralConnectionHandlerType
Autodesk.Revit.DB.Transaction
Autodesk.Revit.UI.Events
Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.UI.UIDocument
Summary:Sample commands for steel elements. These API samples allow for creation, modification and deletion of steel elements.

ScheduleAutomaticFormatter

Subject:Schedule formatting tool
Skill Level:High
Category:Views
Type:ExternalApplication,
Revit Platform:All
First Released For:2014.0
Classes:Autodesk.Revit.DB.ExtensibleStorage.Entity
Autodesk.Revit.DB.ExtensibleStorage.ExtensibleStorageFilter
Autodesk.Revit.DB.ExtensibleStorage.Schema
Autodesk.Revit.DB.IUpdater
Autodesk.Revit.DB.ScheduleDefinition
Autodesk.Revit.DB.TableCellStyle
Autodesk.Revit.DB.TableCellStyleOverrideOptions
Autodesk.Revit.DB.ViewSchedule
Summary:Automatically formats alternating columns of a schedule to have a different background color.

ScheduleCreation

Subject:ScheduleAPI
Skill Level:Beginning
Category:Views
Type:ExternalCommand,
Revit Platform:All
First Released For:2013.0
Classes:Autodesk.Revit.DB.SchedulableField
Autodesk.Revit.DB.ScheduleDefinition
Autodesk.Revit.DB.ScheduleField
Autodesk.Revit.DB.ScheduleFieldId
Autodesk.Revit.DB.ScheduleFilter
Autodesk.Revit.DB.ScheduleSheetInstance
Autodesk.Revit.DB.ScheduleSortGroupField
Autodesk.Revit.DB.ViewSchedule
Autodesk.Revit.UI.IExternalCommand
Summary:This sample introduces how to create a view schedule and how to show its data on a sheet.

ScheduleToHTML

Subject:Schedules
Skill Level:Medium
Category:Views
Type:ExternalApplication,
Revit Platform:All
First Released For:2014.0
Classes:Autodesk.Revit.DB.TableCellStyle
Autodesk.Revit.DB.TableData
Autodesk.Revit.DB.TableMergedCell
Autodesk.Revit.DB.TableSectionData
Autodesk.Revit.DB.ViewSchedule
Summary:Export Schedule to formatted HTML

Selections

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

ShaftHolePuncher

Subject:Create all Kinds Opening.
Skill Level:High
Category:Elements, Geometry
Type:ExternalCommand,
Revit Platform:All
First Released For:2008.0
Classes:Autodesk.Revit.Creation.Document
Autodesk.Revit.DB.CurveArray
Autodesk.Revit.DB.Edge
Autodesk.Revit.DB.Face
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Instance
Autodesk.Revit.DB.Level
Autodesk.Revit.DB.Opening
Autodesk.Revit.DB.Solid
Autodesk.Revit.DB.Transform
Autodesk.Revit.UI.IExternalCommand
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.DB.CitySet
Autodesk.Revit.DB.Element
Autodesk.Revit.DB.GeometryElement
Autodesk.Revit.DB.GeometryObject
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.SiteLocation
Autodesk.Revit.DB.Structure.AnalyticalModel
Autodesk.Revit.DB.Transform
Autodesk.Revit.UI.IExternalCommand
Summary:This sample demonstrates how to get place, location of project, and change their values.

SheetToView3D

Subject:Click on a ViewPlan viewport on a sheet to create a new perspective 3D view with its camera at that point in the model
Skill Level:Advanced
Category:View Transforms
Type:ExternalCommand,
Revit Platform:All
First Released For:2023.0
Classes:Autodesk.Revit.DB.Curveloop
Autodesk.Revit.DB.Plane
Autodesk.Revit.DB.Transform
Autodesk.Revit.DB.TransformWithBoundary
Autodesk.Revit.DB.View
Autodesk.Revit.DB.View3D.CreatePerspective
Autodesk.Revit.DB.Viewport
Autodesk.Revit.DB.ViewSheet
Summary:This sample demonstrates how to use the View and Viewport transforms to map a point on a sheet to a location in the 3D model. It also demonstrates how to use TransformWithBoundary to inspect the view crop regions if the view crop has been broken (split) into many pieces.

SinePlotter

Subject:A simple sine curve demonstration
Skill Level:Medium
Category:Families, Geometry
Type:ExternalApplication, ExternalCommand,
Revit Platform:All
First Released For:2013.0
Classes:Autodesk.Revit.UI.IExternalApplication
Autodesk.Revit.UI.IExternalCommand
Summary:Array a series of prism family instances over a sine curve

Site

Subject:Site
Skill Level:Medium
Category:Elements
Type:ExternalApplication,
Revit Platform:All
First Released For:2014.0
Classes:Autodesk.Revit.DB.Architecture.SiteSubRegion
Autodesk.Revit.DB.Architecture.TopographyEditScope
Autodesk.Revit.DB.Architecture.TopographySurface
Autodesk.Revit.UI.IExternalCommand
Summary:TopographySurface and SiteSubRegion editing utilities, including Adding predefined regions of points, changing points elevations, moving points, and deleting points.

SlabProperties

Subject:Slab properties retrieval.
Skill Level:Beginning
Category:Elements, Parameters
Type:ExternalCommand,
Revit Platform:Structure
First Released For:9.0
Classes:Autodesk.Revit.DB.BuiltInParameter
Autodesk.Revit.DB.Floor
Autodesk.Revit.DB.Structural.CompoundStructureLayer
Autodesk.Revit.DB.Structural.CompoundStructureLayerArray
Autodesk.Revit.UI.IExternalCommand
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:Elements, Geometry
Type:ExternalCommand,
Revit Platform:Structure
First Released For:2009.0
Classes:Autodesk.Revit.DB.CurveArray
Autodesk.Revit.DB.Edge
Autodesk.Revit.DB.GeometryObject
Autodesk.Revit.DB.Line
Autodesk.Revit.DB.SlabShapeCrease
Autodesk.Revit.DB.SlabShapeCreaseArray
Autodesk.Revit.DB.SlabShapeCreaseArrayIterator
Autodesk.Revit.DB.SlabShapeEditor
Autodesk.Revit.DB.SlabShapeVertex
Summary:This sample demonstrates how to create SlabShapeVertex and SlabShapeCrease, and then use them to edit slab’s shape.

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.DB.SolidSolidCutUtils
Autodesk.Revit.IExternalCommand
Summary:Shows how to use Solid-Solid Cut and Uncut.

SpanDirection

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

SpotDimension

Subject:Display Spot Dimensions.
Skill Level:Beginning
Category:Annotation
Type:ExternalCommand,
Revit Platform:All
First Released For:2008.0
Classes:Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.SpotDimension
Autodesk.Revit.UI.IExternalCommand
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.DB.Architecture.Stairs
Autodesk.Revit.DB.Architecture.StairsEditScope
Autodesk.Revit.DB.Architecture.StairsLanding
Autodesk.Revit.DB.Architecture.StairsRun
Autodesk.Revit.UI.IExternalCommand
Summary:A utility sample that creates a series of stairs, stairs runs and stairs landings configurations based upon predefined rules and parameters.

StructSample

Subject:Column creation and placing.
Skill Level:Beginning
Category:Structure
Type:ExternalCommand,
Revit Platform:All
First Released For:8.0
Classes:Autodesk.Revit.DB.BuiltInParameter
Autodesk.Revit.DB.ElementSet
Autodesk.Revit.DB.Family
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Geometry.Line
Autodesk.Revit.DB.Geometry.UV
Autodesk.Revit.DB.Geometry.XYZ
Autodesk.Revit.DB.Parameter
Autodesk.Revit.DB.Symbols.FamilySymbol
Autodesk.Revit.DB.Wall
Autodesk.Revit.UI.IExternalCommand
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.DB.ElementSet
Autodesk.Revit.DB.Structural.CompoundStructureLayer
Autodesk.Revit.DB.Structural.Enum.CompoundStructureLayerFunction
Autodesk.Revit.UI.IExternalCommand
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.DB.Document
Autodesk.Revit.DB.Family
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.FamilySymbol
Autodesk.Revit.DB.IndependentTag
Autodesk.Revit.DB.LocationCurve
Autodesk.Revit.DB.Structure.Rebar
Autodesk.Revit.DB.TextNote
Autodesk.Revit.UI.IExternalCommand
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.DB.SubTransaction
Autodesk.Revit.DB.Transaction
Autodesk.Revit.DB.TransactionGroup
Autodesk.Revit.Document
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.DB
Autodesk.Revit.UI.IExternalCommand
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:Geometry, Structure
Type:ExternalCommand,
Revit Platform:Structure
First Released For:2009.0
Classes:Autodesk.Revit.DB.CurveArray
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.FamilySymbol
Autodesk.Revit.DB.Line
Autodesk.Revit.DB.Structure.Truss
Autodesk.Revit.DB.Structure.TrussType
Autodesk.Revit.DB.Strucure.TrussMemberInfo
Autodesk.Revit.DB.ViewPlan
Summary:This sample demonstrates how to create a truss and modify its truss members and profile.

TypeSelector

Subject:Wall types retrieval.
Skill Level:Beginning
Category:Families
Type:ExternalCommand,
Revit Platform:All
First Released For:8.0
Classes:Autodesk.Revit.DB.Document
Autodesk.Revit.DB.ElementId
Autodesk.Revit.DB.Family
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.FamilySymbol
Autodesk.Revit.DB.FamilySymbolSet
Autodesk.Revit.DB.WallType
Autodesk.Revit.DB.WallTypeSet
Autodesk.Revit.UI.IExternalCommand
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.

UIAPI

Subject:API UI Usage.
Skill Level:Medium
Category:Basics
Type:ExternalApplication,
Revit Platform:All
First Released For:2013.0
Classes:Autodesk.Revit.ApplicationServices.Application
Autodesk.Revit.UI.ContextualHelp
Autodesk.Revit.UI.TabbedDialogExtension
Autodesk.Revit.UI.UIApplication
Summary:This sample demonstrates how to use API UI abilities.

Units

Subject:Units API
Skill Level:Beginning
Category:Basics, Data Exchange
Type:ExternalCommand,
Revit Platform:All
First Released For:2014.0
Classes:Autodesk.Revit.DB.FormatOptions
Autodesk.Revit.DB.UnitFormatUtils
Autodesk.Revit.DB.Units
Autodesk.Revit.DB.UnitUtils
Autodesk.Revit.UI.IExternalCommand
Summary:Add a command which lists all the units in the current project and displays their format information, users can set the format options of each unit type; Display the decimal symbol type, digit grouping symbol, digit grouping amount of current project’s units, users could set them.

VersionChecking

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

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.ContFooting
Autodesk.Revit.DB.FamilyInstance
Autodesk.Revit.DB.Floor
Autodesk.Revit.DB.Structure.AnalyticalModel
Autodesk.Revit.DB.Wall
Summary:This program demonstrates the usage of a structural analytical model. This sample uses a helper program RevitViewer.

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.

RevitViewer

Subject:View geometry information.
Skill Level:Medium
Category:Geometry
Type:ExternalCommand,
Revit Platform:All
First Released For:8.0
Classes:Autodesk.Revit.IExternalCommand
Summary:A simple sample to help viewing the geometry information which obtained by Revit API.

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.BoundarySegmentArrayArray
Autodesk.Revit.DB.Architecture.Room
Summary:This sample demonstrates the usage of room boundary and uses a helper program RevitViewer.

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.PrintRange
Autodesk.Revit.DB.PrintSetting
Autodesk.Revit.DB.PrintSetup
Autodesk.Revit.DB.ViewSheetSet
Autodesk.Revit.DB.ViewSheetSetting
Autodesk.Revit.DB.VirtualPrinterType
Summary:This sample demonstrates how to print the printable view and sheets.

ViewTemplateCreation

Subject:Create and configure new view template
Skill Level:Medium
Category:Parameters, Views
Type:ExternalCommand,
Revit Platform:All
First Released For:2020.0
Classes:Autodesk.Revit.DB.BuiltInCategory;
Autodesk.Revit.DB.BuiltInParameter;
Autodesk.Revit.DB.Color;
Autodesk.Revit.DB.Document;
Autodesk.Revit.DB.ElementId;
Autodesk.Revit.DB.FillPatternElement;
Autodesk.Revit.DB.FillPatternTarget;
Autodesk.Revit.DB.FilteredElementCollector;
Autodesk.Revit.DB.OverrideGraphicSettings;
Autodesk.Revit.DB.Transaction;
Autodesk.Revit.DB.View;
Autodesk.Revit.DB.ViewDetailLevel;
Autodesk.Revit.UI.IExternalCommand;
Autodesk.Revit.UI.Result;
Summary:In this sample is showed a process of new view template creation from a regular view and view template settings configuration.

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.Categories
Autodesk.Revit.DB.Document.Settings
Autodesk.Revit.DB.View
Autodesk.Revit.Document
Autodesk.Revit.UI.Selection
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.

WinderStairs

Subject:API Sketched Winder Stairs
Skill Level:Advanced
Category:Elements
Type:ExternalCommand,
Revit Platform:Architecture
First Released For:2013.0
Classes:Autodesk.Revit.DB.Arc
Autodesk.Revit.DB.Architecture.Stairs
Autodesk.Revit.DB.Architecture.StairsRun
Autodesk.Revit.DB.Curve
Autodesk.Revit.DB.IUpdater
Autodesk.Revit.DB.Line
Autodesk.Revit.DB.StairsEditScope
Autodesk.Revit.DB.Transaction
Autodesk.Revit.DB.Transform
Autodesk.Revit.DB.UpdaterRegistry
Autodesk.Revit.DB.XYZ
Autodesk.Revit.UI.ExternalEvent
Autodesk.Revit.UI.IExternalCommand
Autodesk.Revit.UI.IExternalEventHandler
Summary:This sample demos the Winder Stairs creation via sketched stairs API. It implemented the single point L-Winder and U-Winder layout algorithms. And also it utilizes the DMU (dynamic model update) framework to regenerate the winder stairs.