Autodesk
Reope’s collaboration with Autodesk has marked a critical step toward optimizing Dynamo for Revit for modern and complex workflows.
Introduction
Autodesk’s Dynamo for Revit (D4R) is empowering users with a versatile toolset to automate complex workflows. As users push the software’s boundaries with increasingly intricate use cases, performance challenges have emerged. Recognizing the need for improvement, Autodesk partnered with Reope’s architects who code to spend the time needed and dive deep into optimizing D4R. This case study outlines the methodologies, achievements, and ongoing impact of this collaboration.
The Problem
D4R, while immensely powerful, was originally designed for simpler use cases. Over time, the growing complexity of user workflows has outpaced some of the initial software design decisions, exposing performance bottlenecks. Challenges included slow graph execution, UI lag during zooming and navigation, inefficiencies in displaying Revit previews, and interfacing with Revit elements. These limitations impacted productivity and user satisfaction, particularly as more demanding and complex use cases became commonplace. The optimization efforts aim to address these challenges and scale D4R’s performance for modern needs.
Methodology
Reope’s approach focused on systematic performance profiling and optimization:
- Codebase Analysis: A comprehensive review of D4R’s existing codebase to identify inefficiencies.
- Targeted Interventions: Developing and testing alternative implementations for critical processes.
- Performance Benchmarks: Using TuneUp and other tools to quantify improvements before and after optimizations.
- Collaboration: Maintaining seamless coordination with Autodesk and open-source contributors to ensure compatibility and scalability.
Key Improvements
Reope’s work targeted Dynamo Revit, resulting in significant advancements. The optimizations have demonstrated considerable potential, but still need to be validated in a full production release to finalize performance improvements:
- Fetching Parameters by Name
Optimizations have shown a 57% performance improvement potential in debug mode and 72% in release mode. - Element Wrapping Efficiency
Latency for element exchange between Revit and Dynamo was reduced, showing a potential of up to 25% faster operations. - Caching Revit Units
Geometric data transfer was streamlined by minimizing repetitive unit conversion calls, expected to yield up to 11% efficiency gains. - UI Responsiveness
Enhancements to zoom and navigation for large graphs, including disabling unnecessary animations dynamically, could reduce navigation lag by 90%. - Revit Model Updates
Improvements to how Dynamo tracks changes in Revit models have shown dramatic performance gain potential, up to 250-1000x in some scenarios, by addressing bottlenecks in event handling. - PreviewServer Optimization
Testing new methods, such as IDirectContext3dServer, indicated a potential improvement of 8000% in preview geometry generation for certain workflows. However, these changes are subject to further validation.
Quantifiable Outcomes
Initial testing has demonstrated over 25% average performance gains in typical workflows. For example, in the “ScaffoldingPlacement_C1” graph, execution times improved by 24%, and other test cases saw even greater gains, such as a 46.6% improvement in creating ellipse frames. These figures are based on testing environments and are subject to further refinement and validation.
Future Directions
Building on the success of this project, Reope proposed further areas for improvement, including:
- Reducing memory overhead from preview nodes and redundant string generation.
- Streamlining disk I/O during graph and library loading.
- Exploring additional optimizations for event handler performance.
Conclusion
Reope’s collaboration with Autodesk has marked a critical step toward optimizing Dynamo for Revit for modern and complex workflows. By addressing inefficiencies and leveraging world-class expertise in coding for geometry, Reope has not only enhanced D4R’s potential but also paved the way for a more scalable and efficient tool. This case study serves as a testament to the transformative potential of focused collaboration and technical innovation in advancing software for the AEC industry.
Reope’s found some awesome improvements and was a joy to work with. We look forward to working more with this talented team in the future.