Optimizing Office Layouts in Revit Using Dynamo Generative Design and Machine Learning
Project Overview
This project focuses on the optimization of office layouts in Revit by leveraging Dynamo’s Generative Design capabilities combined with machine learning to produce efficient, functional, and aesthetically pleasing designs. The project aims to enhance productivity and usability in office spaces while maintaining compliance with design standards such as clearance between furniture and accessibility requirements.

Purpose
- To design an efficient and data-driven tool that maximizes the number of desks in an office layout while ensuring comfort, accessibility, and compliance with design constraints.
- To integrate generative design (Revit Dynamo) and machine learning (Python) into a practical solution for architects and designers to make informed decisions.
Learning Outcome
- Gain foundational skills in generative design.
- Learn how to integrate data analysis and machine learning for design optimization.
- Develop a decision-making tool that visualizes and ranks layouts.
Structure
- Introduction
- Overview of the problem (efficient office layouts).
- Importance of integrating generative design and machine learning.
- Tools and Technologies
- Revit Dynamo (generative design).
- Python (data analysis, data visualization, and machine learning).
- Visualization tools (Power BI or/and Python).
- Other if necessary: Revit API, Scikit-Learn, TensorFlow.
- Workflow Breakdown
- Design generation.
- Data extraction and preprocessing.
- Machine learning analysis and ranking.
- Visualization and decision-making.
- Evaluation Metrics
- Number of desks.
- Accessibility (aisle widths).
- Additional factors like proximity to windows.
Revit Projects
 First attempt - too dense |
 Second Attempt - Wrong Coordinates |
 Third attempt - Sliders still off |
 Fourth attempt - With cross product |
 Fifth attempt - Sliders and Coordinates set up |
 Sixth attempt - Added chairs |
 Seventh attempt - Added chairs reversed |
 Eight attempt - Added chairs placed |
 Dynamo Graph View |
 Office Space in Navisworks |
Technologies Used
- Autodesk Revit: Primary design tool.
- Dynamo: Automation and Generative Design workflows.
- Python: Data processing, visualization (Vedo).
- Navisworks: Clash detection and validation.
- Forge Viewer: Web-based 3D visualization.
- Machine Learning Libraries: Scikit-learn/TensorFlow (for predictive modeling).
How to Use
Setup
- Clone the repository:
git clone https://github.com/nafisatibrahim/office-layout-optimization_machine_learning.git
- Install required dependencies for Dynamo, Python, and Forge Viewer:
- Ensure you have Revit, Navisworks, and Dynamo installed.
Sample Outputs
- Generative Design Layouts:
- Visual representation of optimized office layouts.
- Interactive 3D Models:
- Embedded web-based exploration using Forge Viewer.
- Clash-Free Design:
- Validated layouts after running Navisworks.
License
This project is licensed under the MIT License - see the LICENSE file for details.