This guide discusses a special case of Wall System Families. Basic familiarity with Walls (Basic & Stacked) greatly helps in understanding the Curtain Walls in Autodesk Revit®.

Curtain Grids

Curtain Walls are a special Wall System Family in Autodesk Revit®. The geometry of these walls is generated based on an underlying UV Curtain Grid. The grid configuration is set in the Curtain Wall Type:

Curtain Grids have Grid Lines on the U and V axes. In Revit API, the U direction is the vertical axis of the wall, and the V direction is the direction of the wall base curve (U line swept over the V curve):

Grid Lines can form angles other than 90° (Currently only on non-curved curtain walls):

Curtain Mullions are attached to each Grid Lines segment and are joined based on the configurations set in the Curtain Wall Type:

Curtain Mullions are also attached to the vertical and horizontal borders of the wall. Remember that these border lines are part of the wall topology definition and not the Curtain Grid. The Grid only includes the grid lines created inside the wall boundaries:

4-Sided areas created by the grid are called Grid Cells:

Curtain Panels (system families) or Curtain Panel Family (special type of flexible families that are designed to be inserted into Curtain Cells and act as custom panels) instances can be inserted into these cells to complete the geometry. Curtain Panels can be customized to represent solid panels, glass panels, or even empty (!) areas:

The types of Curtain Mullions and Panels used for a wall are defined in the Curtain Wall Type and can also be overridden on the wall instance.

Walls vs Systems

Curtain Walls and Curtain Systems are almost identical in definition. The only difference is that Curtain Walls are vertical and have directionality so the Grid configuration is set for Vertical and Horizontal grid lines. Curtain Systems can be created from Mass surfaces and thus are not flowing in a certain direction. Hence the Grid configurations is set for Grid 1 and Grid 2 axes.

In Revit API, Curtain Walls are represented by DB.Wall and Curtain Systems are represented by DB.CurtainSystem

Querying Curtain Walls

Similar to collecting Basic and Stacked Walls, the components shown at Walls (Basic & Stacked) section, can help filtering the Curtain Wall instances and types:

As shown in the images below, a combination of category picker, Category Filter, and Query Types can be used to filter the Curtain Panel and Curtain Mullion types and instances in a model. However, the collector does not return anything for Curtain Grids. See Analyzing Curtain Walls for better workflows to extract Panel and Mullion information. As you can see, the Curtain Grids graph does not return any results for Grid Types. The Panel and Mullion types can be collected however:

 

And the same for collecting instances:

 

Analyzing Curtain Wall Types

Now that we can collect the Curtain Wall Types, use the components shown here to analyze their properties:

Analyzing Curtain Walls

Extracting Curtain Wall Geometry

The full geometry of a Curtain Wall instance can be extracted using the component:

The Element Bounding Geometry component shown here, can be used to extract bounding geometry of a given Curtain Wall instance:

 

Embedded Curtain Walls

Curtain Walls can be embedded inside other walls. The Analyze Curtain Wall component shown above, can provide access the to the parent/host wall (HW), embedding the given Curtain Wall instance. If Curtain Wall is not embedded, null is returned:

Extracting Grid

In Revit API, Curtain Grids are represented by the DB.CurtainGrid

The Analyze Curtain Wall component shown above, can provide access to the Curtain Grid of a Curtain Wall instance. Curtain Grid can be used to extract information about the Grid, and access the individual Cells, Mullions, and Panels on the Curtain Wall:

Analyzing Curtain Grids

Using the component shown here, the Curtain Grid can be further broken down to its properties and hosted elements:

  • Curtain Cells: Returns all the individual Curtain Cells. Cells are the bounded areas between the grid lines
  • Curtain Mullions: Returns all the individual Curtain Mullions
  • Curtain Panels: Returns all the individual Curtain Panels or Family Instances (e.g. Curtain Wall Door) hosted on the Curtain Cells
  • Curtain Grid Lines: Returns all the individual Curtain Grid Lines along U and V directions and their properties

 

Analyzing Cells

In Revit API, Curtain Cells are represented by the DB.CurtainCell

The component shown here, can analyze each curtain cell and extract the cell curves (C) and the panelized curves (PC):

Not the difference between the cell curves and the panelized curves:

As you can see in the image below, the cell curves follow the curvature of the wall, but the panelized curves, are the curves bounding the flat surface that is bounded inside the cell:

The panelized curves can be used to create faces. Notice that each cell is marked with its index and they are in order from bottom row to the top row:

Analyzing Mullions

In Revit API, Curtain Mullions are represented by the DB.Mullion

The geometry for Curtain Mullions can be extracted by passing the Mullions from Analyze Curtain Wall component, to the component:

 

The component shown here can be used to extract information about the individual Curtain Mullions:

The C output provides the base curve of the Mullion. Notice how the horizontal curves are not intersecting the vertical curves, as the curves follow the join settings for the associated Mullions:

The Mullion location curve can also be extracted by passing the Mullion to a Curve component. Note that some of the mullions might have a length of zero and are not visible as geometries on the curtain walls:

Analyzing Mullion Types

In Revit API, Curtain Mullion Types are represented by the DB.MullionType

The Analyze Mullion Type component shown here can be used to analyze the Mullion Types extracted by the Analyze Mullion component:

The Curtain Mullion System Family value picker can be used to filter the Mullions by their System Family e.g. L Corner Mullions

Analyzing Panels

Curtain Walls can host two types of inserts. They can be either Curtain Panels or instances of Custom Families designed to work with Curtain Walls like a Curtain Wall Door instance. The components shown here help analyzing the Curtain Panels. The family instances can be analyzed using the methods and components provided in Data Model: Types and Data Model: Instances guides.

In Revit API, Curtain Panels are represented by the DB.Panel

The geometry for Curtain Panels can be extracted by passing the Panels from Analyze Curtain Wall component, to the component:

Notice how the panels are in order from bottom to top row:

Since the Curtain Grid Panel (P) output parameter can return both Panels (DB.Panel) and Custom Family Instances (DB.FamilyInstance), the same workflow can extract the geometry of all these insert types:

 

However when extracting information about individual Curtain Panels:, the P output needs to be filtered for Panels (DB.Panel), otherwise the Analyze Panel will show an error:

Use the custom Filter Elements component shared here, in combination with other filter components e.g. (Category Filter), to filter for Panels (DB.Panel):

Filter Elements
Place under Grasshopper User Objects folder. Find in Revit > Custom panel

The Analyze Panel component also provides access to the Panel base point(BP) and normal/orientation vectors (O):

 

Analyzing Panel Types

In Revit API, Curtain Panel Types are represented by the DB.PanelType

The Analyze Panel Type component shown here can be used to analyze the Panel Types extracted by the Analyze Panel component:

Note that Panel Type (T) output parameter can return a System Panel Type (DB.PanelType) or a Custom Family Symbol (DB.FamilySymbol) depending on the type of Panel inserted into the Grid:

Analyzing Grid Lines

In Revit API, Curtain Grid Lines are represented by the DB.CurtainGridLine

The curve for Curtain Grid Lines can be extracted by passing the Grid Lines from Analyze Curtain Grid component, to the Curve component:

The component shown here can be used to extract info about each individual Curtain Grid Line:

Notice the difference between the Curtain Grid Line curves and segments. The C output parameter provide access to a single curve for each Curtain Grid Line along the U or V axes:

Whereas the S output parameter provides access to all the line segments per each Curtain Grid Line and it also includes the unused segments outside of the wall boundaries:

Curtain Grid Line curves and segments are shown here:

Extract Associated Mullions and Panels

The Analyze Curtain Grid Line component also provides the Mullions and Panels that are associated with each Grid Line. Notice that the Mullions and Panels on the wall borders are not included since they are not part of the Curtain Grid definition:

 

Panel association is slightly different from Mullions. Each Mullion is associated with a single Grid Line, however a single Panel (since it has two sides) is associated with a Grid Line along the U axis and also another Grid Line along the V:

Modifying Curtain Wall Types

Work in Progress...

Modifying Curtain Walls

Work in Progress...

Creating Curtain Wall Types

Work in Progress...

Creating Curtain Walls

Work in Progress...

Creating Non-Linear Curtain Walls

Work in Progress...

Querying Curtain System Types

In Revit API, Curtain System Types are represented by DB.CurtainSystemType

Querying Curtain Systems

In Revit API, Curtain Systems are represented by DB.CurtainSystem

Analyzing Curtain System Types

Analyze Curtain System Type component shown here can be used to extract information about curtain system types. Note the similarity between the Curtain System Type and Curtain Wall Types:

Analyzing Curtain Systems

Extracting information from Curtain System instances are very similar to Curtain Wall instances. Similar to Analyze Curtain Wall component, the Analyze Curtain System component provides access to the Curtain Grid definition:

Note that Curtain Systems can have multiple Curtain Grids, each associated with a single face of the source geometry. These curtain grids have independent boundaries and are generated based on the Curtain System Type definition

Once you gain access to the Curtain Grid definition, you can use the Analyze Curtain Grid to extract information, very similar to grids on Curtain Walls:

Modifying Curtain System Types

Work in Progress...

Modifying Curtain Systems

Work in Progress...

Creating Curtain System Types

Work in Progress...

Creating Curtain Systems

Work in Progress...