Creating a stretchable family in Revit is one of the most valuable skills for architects and designers looking to future-proof their BIM models. Unlike standard families, a stretchable family adapts dynamically to changing dimensions, allowing for greater flexibility during the design and documentation phases. This approach minimizes the need to replace entire components when wall lengths or heights adjust, saving significant time and reducing the risk of errors in coordinated projects.

Understanding the Core Concept of Stretch Parameters

The foundation of any successful stretchable family lies in the strategic use of parameters and constraints. The primary driver is the "Length" or "Width" parameter, which must be associated with the geometry that defines the family's extents. To achieve the stretching behavior, you must lock the endpoints of lines to reference planes that are driven by this dimensional parameter. Without these specific parametric relationships, the geometry will remain rigid and fail to respond to changes in the project model.
Step-by-Step Family Creation Process

Begin by loading a generic model family template that suits your component category, such as a generic model or furniture family based on your needs. Draw the initial shape of your component, ensuring that at least two perpendicular edges are aligned with reference planes. These reference planes act as the anchor points; when you define their positions using a shared parameter like "Length" or "Width," the model will stretch proportionally when that parameter is modified in the project environment.
Managing Nested Components and Arrays

For more complex objects like furniture or modular seating, the stretch logic must be applied to both the main structure and any nested arrays. When creating patterns or repetitions, use an "Array" component and set it to drive itself based on the "Family Length" or "Family Width" parameter. This ensures that as the main geometry stretches, the number of instances or the spacing between them adjusts automatically, maintaining proportional layout integrity without manual recalculation.
| Parameter Type | Function | Application Example |
|---|---|---|
| Controls horizontal stretch | Wall-mounted cabinet depth | |
| Controls vertical stretch | Sofa seating depth | |
| Adjusts array density | Number of table legs |
Best Practices for Maintaining Performance

While the flexibility of stretchable families is powerful, it is essential to manage complexity to maintain file performance. Avoid over-constraining the geometry or creating excessive reference planes that do not contribute to the stretching logic. Clean parameter naming and organized visibility settings will make the family easier to manage for other team members and ensure that the model remains lightweight when placed in large-scale projects.
Testing is a critical final step that should never be skipped. After building the family, load it into a test project and attempt to modify the relevant dimensions in different configurations. Verify that the geometry scales correctly, that hosted components behave as expected, and that the family does not generate errors or unexpected behavior. This rigorous validation ensures that the family will perform reliably in the evolving design environment.




















