🔵

Example: Setting Up Your Testing Graphs -- Comparing Approaches & Strategies to Improve Efficiency

Overview

This example demonstrates options for two important modeling decisions that affect how you need to organize your Dynamo graphs:

  1. Should you model your building form using Dynamo geometry or as a Revit conceptual mass?
  2. Should you use the List.Map node or Function.Apply node to input your values for test cases?

The short answer is — either choice can work! The key differences between the options are explained below to help you decide which approach to use in your modeling.

Modeling Building Forms: Should I use Dynamo Geometry or a Revit Conceptual Mass

This example demonstrates how to set up a Dynamo graph and custom node with evaluators using two different strategies for creating the building form:

  • Creating the building form using Dynamo geometry
  • Creating the building form as a Mass element in Revit

Either method can be used and used and both methods will return valid results.

Inputting Test Case Values: Should I use a List.Map or Function.Apply

This example also shows how you can feed the test case inputs to your custom node using either:

  • the List.Map node -- which requires you to feed the input combinations as a list of values for each test case
  • the Function.Apply node -- which requires to split the input combinations into separate streams

Again, either method can be used and used and both methods will return valid results.

Tips for Evaluating Many Test Cases

💡
Tip 1 - Freeze Nodes that You Aren't Actively Working On

As you add more evaluation nodes to your custom node (and compute more results), you will probably notice that the processing of each run slows down quite a bit -- especially if you are using nodes that depend on external analysis (for example, the Solar Analysis node).  To avoid having to wait for this node to be re-evaluated for each run, if that branch of your logic is already working, right-click on a node at the start of the branch to freeze it.  This will prevent the nodes that follow the frozen node from recalculating (until you unfreeze it).

💡
Tip 2 - Change the Initial Inputs Slightly to Force the Nodes to Re-Evaluate

As you debug your node logic and re-run your analysis, you may notice that the values returned don't always update to reflect your new logic.  Don't worry -- this is normal behavior.  Dynamo tries to be more efficient by not recalculating every node when it thinks that recalculating is not necessary.  But this sometimes results in not seeing the updated results from your debugging.  The best practice is to slightly change the inputs in your Home graph (for example, change the top of an input range by just a few feet) to tickle Dynamo into understanding that all of the following nodes need to be recalculated.

Videos

Step 1 - Organizing the Overall Graph Layout

Step 2 - Setting Up the Input Combinations

Step 3 - Setting Up Your Custom Nodes to Efficiently Return All Measures

Step 4 - Evaluating a Form Modeled as a Revit Mass Element

Step 5 - Evaluating a Form Created using Dynamo Geometry

Step 6A - Tips for Using the Solar Analysis Node Successfully

Step 6B - What to Do When Dynamo Doesn't Recalculate to Reflect Your Updates?

Step 7 - Comparing the Two Approaches -- Should I Use Revit Masses or Dynamo Geometry?

💡
Please note that in the video for Step 7, the outputs from the two approaches appear to be different.  That's because one node was returning metric units (square meters) versus imperial units (square feet).  That units difference is fixed in the downloadable example files, so the results will be the same.

Step 8 - Using the Evaluation Results to Find Min and Max Cases

Download Files

Use the Google Drive menu to ZIP the files in this shared folder and download them as a single ZIP file: