BIMtopia
/
Building Modeling Course Videos
/
Parametric Design & Optimization

Parametric Design & Optimization

‣

Module 2 | Getting Started

‣

Overview

Module 2 RoadmapModule 2 RoadmapModule 2 Kickoff Session - Spring 2023Module 2 Kickoff Session - Spring 2023Module 2 Kickoff Session - Spring 2024Module 2 Kickoff Session - Spring 2024Module 2 Kickoff Session - Spring 2025Module 2 Kickoff Session - Spring 2025
‣

Motivation: Why Focus on Parametric Design?

🤔Transforming Design in Architecture, Engineering, & Construction🤔Our Design Approach: Parametric Design & Optimization
‣

Examples

‣
Using Parametric Models
🔵Example: Flexing Parametric Families in Revit
‣
Visual Programing Basics
‣
Dynamo
🔵Example: Exploring the Dynamo Interface🔵Example: Creating Numbers & Series🔵Example: Performing Basic Arithmetic & Creating Formulas🔵Example: Creating Dynamo Geometry
‣
Grasshopper
🟢Example: Exploring the Grasshopper Interface🟢Example: Creating Numbers & Series🟢Example: Performing Basic Arithmetic & Creating Formulas🟢Example: Creating Rhino Geometry
‣
Using Math to Control Geometry
‣
Dynamo
🔵Example: Modeling a Sine Wave Curve in Dynamo🔵Example: Using Dynamo to Set Revit Element Parameters - Varying Tower Height using a Sine Curve
‣
Using Attractor Logic to Control Geometry
‣
Dynamo
🔵Example: Using Attractor Logic to Control Dynamo Points & Circles🔵Example: Using Attractor Logic to Control Revit Elements
‣
Grasshopper
🟢Example: Using Attractor Logic to Control Rhino Points & Spheres🟢More Examples: Using Attractor Logic to Create Patterns
‣
Creating Parametric Objects
‣
Grasshopper
🟢Example: Creating a Parametric Box
‣
Dynamo
🔵Example: A Parametric Building Generator
‣

CA Workshop Session

Module 2 CA Workshop Session - Spring 2021Module 2 CA Workshop Session - Spring 2021
‣

Module 3 | Manipulating Geometry & Placing Model Elements

‣

Overview

Module 3 RoadmapModule 3 RoadmapModule 3 Kickoff Session - Spring 2023Module 3 Kickoff Session - Spring 2023Module 3 Kickoff Session - Spring 2024Module 3 Kickoff Session - Spring 2024Module 3 Kickoff Session - Spring 2025Module 3 Kickoff Session - Spring 2025
‣

Workflows

Parametric Modeling WorkflowsParametric Modeling Workflows🔵Building Your Visual Programming Toolkit in Dynamo🟢Building Your Visual Programming Toolkit in GrasshopperCEE 120C/220C Shared LibraryCEE 120C/220C Shared Library
‣

Examples

‣
Creating Placement Geometry
‣
Creating Lines & Curves
🔵Example: Creating Points & Lines🔵Example: Creating Dynamo Curves by Selecting Revit Elements🔵Example: Creating Dynamo Curves from Revit Family Geometry🔵Example: Defining Curves Mathematically in Dynamo🟢Example: Defining Curves Mathematically in Grasshopper
‣
Creating Surfaces
🔵Example: Lofting a Surface in Dynamo🟢Example: Lofting a Surface in Grasshopper
‣
Manipulating Placement Geometry
‣
Dividing Curves
🔵Example: Dividing a Curve in Dynamo🟢Example: Dividing a Curve in Grasshopper
‣
Dividing Surfaces
🔵Example: Dividing a Surface into a Rectangular Grid in Dynamo🟢Example: Dividing a Surface into Alternate Grid Patterns in Grasshopper
‣
Reshaping Lines and Curves
🔵Example: Transforming a Line into a Curve or Wave in Dynamo
‣
Placing Model Elements
‣
Placing Geometry Elements
🟢Example: Placing Geometry at Placement Points in Grasshopper
‣
Placing & Flexing Revit Families
🔵Example: Placing & Flexing Parametric Revit Components
‣
Reshaping Revit Mass Families
🔵Example: Placing Reference Points & Curves in a Revit Mass Family
‣
Placing Beams to Support a Surface
‣
Creating & Placing Adaptive Components
🔵Example: Creating Revit Adaptive Component Families🔵Example: Placing Adaptive Components using Revit Model Elements🔵Example: Placing Adaptive Components using Dynamo Geometry Curves
‣
Creating Forms by Sweeping Profiles along Curves
🟢Example: Creating Beams by Sweeping Profiles Along Grasshopper Placement Curves
‣
Panelizing a Surface
‣
Creating & Placing Adaptive Panels
🔵Example: Placing Adaptive Panels in Revit🔵Example: Creating Adaptive Panel Families in Revit
‣
Panelizing a Divided Surface
🟢Example: Creating Panels in Rhino🟢Example: Dividing and Panelizing a Surface in Grasshopper🟢Example: Panelizing a Surface and Scaling the Panels in Grasshopper
‣
Modeling a Parametric Structure
🔵Example: Creating a Parametric Structure in Revit🟢Example: Creating a Parametric Structure in Rhino
‣

CA Workshop Session

Module 3 CA Workshop Session - Prior YearModule 3 CA Workshop Session - Prior Year
‣

Module 4 | Creating Responsive Structures

‣

Overview

Module 4 RoadmapModule 4 RoadmapModule 4 Kickoff Session - Spring 2023Module 4 Kickoff Session - Spring 2023Module 4 Kickoff Session - Spring 2024Module 4 Kickoff Session - Spring 2024Module 4 Assignment Tips Session - Spring 2024Module 4 Assignment Tips Session - Spring 2024Module 4 Kickoff Session - Spring 2025Module 4 Kickoff Session - Spring 2025
‣

Workflows

Responsive Structure WorkflowsResponsive Structure Workflows🔵Building Your Visual Programming Toolkit in Dynamo (recap)🟢Building Your Visual Programming Toolkit in Grasshopper (recap)CEE 120C/220C Shared LibraryCEE 120C/220C Shared Library
‣

Examples

‣
Responding to Data
‣
Responding to List Position
‣
Dynamo
🔵Example: Creating Patterns by List Position in Dynamo
‣
Grasshopper
🟢Example: Creating Patterns by List Position in Grasshopper
‣
Responding to Data from Image Files
‣
Dynamo
🔵Example: Mapping Panels to Image Data in Dynamo
‣
Grasshopper
🟢Example: Mapping Panels to Image Data in Grasshopper
‣
Responding to Element Location
‣
Dynamo
🔵Example: Creating Patterns by Element Properties in Dynamo
‣
Responding to Element Orientation
‣
Computing Element Orientation using Dot Products
🔵Example: Exploring Vector Dot Products🔵Example: Evaluating Panel Orientation Relative to Sun Position
‣
Changing Element Appearance Based on Orientation
‣
Dynamo
🔵Example: Changing Panel Appearance Based on Orientation in Dynamo🔵Example: Changing Panel Parameters Based on Orientation in Dynamo
‣
Grasshopper
🟢Example: Changing Panel Appearance Based on Orientation in Grasshopper🟢Example Changing Panel Parameters Based on Orientation in Grasshopper
‣
Modeling a Responsive Structure
‣
Using Adaptive Components & Adaptive Panels in Revit
🔵Example: Modeling a Parametric Stadium - Trusses & Panel Elements🔵Example: Making the Stadium Panels Responsive
‣
Using Responsive Panels in Grasshopper
🟢Example: Rotating Shade Panel in Grasshopper🟢Example: Folding Shutter Panel in Grasshopper🟢Example: Rotating Louver Panel Responding to Adjustable Line in Grasshopper🟢Example: Rotating Louver Panel Responding to an Attractor or Function in Grasshopper🟢Example: Folding Sunshade Panels in Grasshopper
‣

CA Workshop Session

Module 4 CA Workshop Session - Prior YearModule 4 CA Workshop Session - Prior Year
‣

Module 5 | Generating Alternatives

‣

Overview

Module 5 RoadmapModule 5 RoadmapModule 5 Kickoff Session - Spring 2023Module 5 Kickoff Session - Spring 2023Module 5 Kickoff Session - Spring 2024Module 5 Kickoff Session - Spring 2024Module 5 Kickoff Session - Spring 2025Module 5 Kickoff Session - Spring 2025
‣

Workflows

Typical Optimization WorkflowTypical Optimization Workflow🔵Building Your Visual Programming Toolkit in Dynamo (recap)🟢Building Your Visual Programming Toolkit in Grasshopper - New AdditionsCEE 120C/220C Shared LibraryCEE 120C/220C Shared Library
‣

Examples

‣
Creating Parametric Components
‣
Revit
🔵Example: Creating Parametric Component Families in Revit🔵Example: Creating Adaptive Member Components in Revit🔵Example: Creating Adaptive Panel Components in Revit
‣
Creating Parametric Building Forms
‣
Dynamo
🔵Example: Creating Parametric Building Forms using Revit Conceptual Masses🔵Example: Creating Parametric Building Forms using Dynamo
‣
Grasshopper
🟢Example: Creating Parametric Building Forms using Grasshopper
‣
Flexing Parametric Forms to Generate Alternatives
‣
Dynamo
🔵Example: Flexing a Single Input Variable using Dynamo🔵Example: Flexing Combinations of Input Variables using Dynamo🔵Example: Flexing Dynamo-Defined Parametric Building Forms
‣
Grasshopper
🟢Example: Flexing Combinations of Input Variables using Grasshopper🟢Example: Looping with Anemone
‣
Reporting Metrics and Evaluations of Alternatives
🔵Example: Reporting Values for Tested Alternatives
‣

CA Workshop Session

Module 5 CA Workshop Session - Prior YearModule 5 CA Workshop Session - Prior Year
‣

Module 6 | Evaluating Design Alternatives

‣

Overview

Module 6 RoadmapModule 6 RoadmapModule 6 Kickoff Session - Spring 2023Module 6 Kickoff Session - Spring 2023Module 6 Kickoff Session - Spring 2024Module 6 Kickoff Session - Spring 2024Module 6 Kickoff Session - Spring 2025Module 6 Kickoff Session - Spring 2025
‣

Workflows

Adding Evaluations to the Optimization WorkflowAdding Evaluations to the Optimization Workflow🔵Building Your Visual Programming Toolkit in Dynamo - Module 6 Additions
🟢Building Your Visual Programming Toolkit in Grasshopper - Module 6 AdditionsCEE 120C/220C Shared LibraryCEE 120C/220C Shared Library
‣

Examples

‣
Setting Up Your Testing Graph
🔵Example: Setting Up Your Testing Graphs -- Comparing Approaches & Strategies to Improve Efficiency
‣
Evaluating Forms using Model Geometry
‣
Dynamo
🔵Example: Evaluating Value using Floor Areas in Dynamo🔵Example: Evaluating Directness of a View in Dynamo🔵Example: Evaluating Lines of Sight for Varying Building Shapes in Dynamo🔵Example: Evaluating Lines of Sight for Varying Building Locations in Dynamo
‣
Evaluating Forms using Analysis Tools
‣
Dynamo
🔵Example: Evaluating Solar Potential in Dynamo — Roof Surface🔵Example: Evaluating Solar Potential in Dynamo — All Building Surfaces
‣
🚫 LadyBug Tools No Longer Work for Dynamo
🔴Examples: LadyBug for Dynamo🔴Examples: HoneyBee for Dynamo🔴Examples: Butterfly for Dynamo
‣
Grasshopper
🟢Example: Evaluating using Analysis Tools in Grasshopper🟢Examples: LadyBug for Grasshopper🟢Examples: HoneyBee for Grasshopper🟢Examples: Dragonfly for Grasshopper
‣
Designing an Optimization Scheme
Comparing Single-Objective Optimization to Multi-Objective OptimizationComparing Single-Objective Optimization to Multi-Objective Optimization
‣
Dynamo
🔵Example: Combining Multiple Evaluators into a Single-Objective Optimization in Dynamo
‣
Visualizing Evaluation Results
‣
Dynamo
🔵Example: Visualizing a Selected Alternative using Dynamo🔵Example: Preparing Your Building Form Creation Script for Dynamo Player
‣
Autodesk Forma
🟣Example: Using Dynamo Player to Create Building Forms in Autodesk Forma🟣Example: Analyzing Building Forms in Autodesk Forma
‣
Analysis Tools in Autodesk Forma
🟣Analysis: Sun Hours🟣Analysis: Daylight Potential🟣Analysis: Microclimate🟣Analysis: Wind🟣Analysis: Area Metrics
‣

CA Workshop Session

Module 6 CA Workshop Session - Prior YearModule 6 CA Workshop Session - Prior Year
‣

Module 7 | Generative Design & Optimization

‣

Overview

Module 7 RoadmapModule 7 RoadmapModule 7 Kickoff Session - Spring 2023Module 7 Kickoff Session - Spring 2023Module 7 Kickoff Session - Spring 2024Module 7 Kickoff Session - Spring 2024Module 7 Kickoff Session - Spring 2025Module 7 Kickoff Session - Spring 2025
‣

Workflows

CEE 120C/220C Shared LibraryCEE 120C/220C Shared Library
‣
Getting Set Up to Use Generative Design
🔵Enabling Revit - Generative Design License for Your Autodesk ID🔵Loading the Autodesk Sample Files
‣
Working with Generative Design
🔵Setting Up a Study Graph🔵Creating a Generative Design Study🔵Visualizing the Study Results (Outcomes)
‣

Examples

‣
Genetic Algorithms — From Optimo to Refinery to Generative Design
🔵Example: Exhaustive Search vs Genetic Search🔵Example: Max Point on a Surface using Generative Design
‣
Creating a Generative Design Study in Dynamo
🔵Example: Construction Material Costs vs Operating Performance🔵Example: Building Form Solar Analysis
‣
Exploring Generative Design Study Samples in Dynamo
🔵Example: Surface Area of a Multi-Box Volume🔵Example: Surface Panelization Efficiency🔵Example: Spacing Windows for Natural Ventilation🔵Example: Maximizing Views for a Grid of Buildings🔵Example: Amphitheatre Seating Tradeoffs🔵Example: Autodesk Samples
‣
Creating Generative Design Studies in Grasshopper
🟢Single-Objective Optimization in Grasshopper using Galapagos🟢Multi-Objective Optimization in Grasshopper using Octopus
‣

CA Workshop Session

Module 7 CA Workshop Session - Prior YearModule 7 CA Workshop Session - Prior Year
‣

Module 8 | Machine Learning in Dynamo

‣

Overview

Module 8 IntroductionModule 8 IntroductionModule 8 Kickoff Session - Spring 2025Module 8 Kickoff Session - Spring 2025
‣

Workflows

Machine Learning for Faster Analysis Feedback: a Class from Autodesk UniversityMachine Learning for Faster Analysis Feedback: a Class from Autodesk University
CEE 120C/220C Shared LibraryCEE 120C/220C Shared Library
‣

Examples

‣

CA Workshop Session

‣

Module 9 | Creating Tools & Sharing Your Work

‣

Overview

Module 8 Kickoff Session - Spring 2023 (Module 9 in 2025)Module 8 Kickoff Session - Spring 2023 (Module 9 in 2025)Module 9 Kickoff Session - Spring 2025 Module 9 Kickoff Session - Spring 2025
‣

Workflows

CEE 120C/220C Shared LibraryCEE 120C/220C Shared Library
‣
Sharing Your Work
Workflows for Sharing Your WorkWorkflows for Sharing Your Work
‣

Examples

‣
Creating Configurators for Structural Framing
‣
Using Points and Lines to Place Geometry
🔵Modeling a 2D Truss🔵Modeling a Rectangular Building Frame
‣
Using Panelized Surfaces to Place Geometry
🔵Modeling Framing at Surface Panel Edges🔵Modeling a Space Frame by Panelizing a Surface
‣
Placing Structural Framing Elements
🔵Placing Structural Framing Elements in Revit using Dynamo🟢Converting Grasshopper Geometry into Revit Building Elements using Rhino.Inside.Revit🟢Converting Grasshopper Geometry into Revit Building Elements using Speckle
‣
Performing Structural Analysis
‣
Using Dynamo and Robot Structural
🔵Performing Structural Analysis with Robot Structural
‣
Using Grasshopper and Karamba3D
🟢Installing Karamba3D in Grasshopper🟢Workshop - Using Karamba3D for Structural Design🟢Performing Structural Analysis with Karamba3D
‣
Creating Configurators for Building Elements
🔵Example Tool: A Parametric Building Generator🔵Example Tool: A Structural Frame Configurator
‣
Sharing a Design Study / Optimization
‣
Example - Crane Placement on a Construction Site
🔵Designing an Optimization - Crane Placement🔵Workshop Session - Crane Placement Example
‣
Sharing a Dynamo Script using Dynamo Player
🔵Gathering User Input Using Dynamo Player🔵Converting Existing Graphs for Use in Dynamo Player and Generative Design🔵Providing Additional User Inputs using Data-Shapes
‣
Sharing a Grasshopper Script as a Application
🟢Converting Grasshopper Scripts into Apps using Viktor🟢Converting Grasshopper Scripts into a Grasshopper Plugin

‣

Support

Notes for Future