Dynamo Studio Model Information Analysis For Construction Builders
Dynamo Studio Model Information Analysis For Construction Builders
Dynamo Studio Model Information Analysis For Construction Builders
Learning Objetives
• Learn how to use Dynamo for data extraction and analysis
• Learn how to use Dynamo for sorting and grouping elements
• Learn how to transform schedules of Revit for gathering information and renaming
• Get overview behaviors of a construction model
Description
This class will cover basic use of Dynamo software with Revit software for model information
analysis when starting from scratch. The workflow that we’ll use can help you understand in a
practical way how to analyze your model information. Revit models hold a lot of information and
a lot of ways to change it. The practice of modifying everything is also the weak point for
construction, cost, and management. Fortunately, Dynamo can help us to review the
information, check that everything is coherent with the construction needs, and have some
filters that can assure model quality. We’ll cover basic Dynamo topics, such as selection,
extraction, and lists, and we’ll link with Microsoft Excel documents, sort, group, extract and
insert parameters, and visualize them on the model. And we’ll review some Dynamo examples
of scripts used for some projects.
Your AU Expert
Enrique Galicia is a BIM Specialist and International Consultant who works on several Mexican,
and Saudi Arabian Firms, He provides real construction solutions to common problems while
implementing and using BIM, using Autodesk Revit, Autodesk Navisworks, AutoCAD Civil 3d,
and Infraworks 360. He has 10 years of experience with workflows of BIM interoperability,
participated on more than 70 projects of diverse typologies, interoperability and has
programmed more than 37 Add-ins using the Revit API, presented at Autodesk University in
2012 with Harry Mattison on a lecture called Revit API for Constructors. Revit Architecture
Certified Professional, and Professor for more than 5 Years at Tecnologico de Monterrey on
BIM Topics. Has Developed more than 24 Courses on Udemy's Platform to spread the word
using BIM true potential with more than 1250 thousand students over 83 countries.
arq.enrique.galicia@gmail.com
WhatsApp - +5215536666063
This will open the Dynamo Window and you can check the version on the help / About Function
on that screen
Here you can find in red letters the version you’re using.
From there you can get to the Files / New to start working around with scripts.
This script would run over the existing open project, if there’s any a red text, of not available
would appear.
On the Right side, you’ll find a grid and a space where we can place nodes.
And over the top right corner there are two icons to use to change between Background
Preview and Graph Preview.
This would help us to switch between geometry and elements, and graphs of nodes.
Tip – we can call the search function bar right clicking on the graph/background space.
Execution
Dynamo has three different types of execution:
Automatic - Recommended for Geometry or simple elements.
Manual – For heavy transactions, experimenting, or controlled workflows that require no mayor
check up until you had finished
Nodes
Main workflow would go like this
Starting point would be a selection, pick or input value.
In the middle, you’ll have some nodes to do functions
At the end, you’ll get an output.
They are meant to be read from left to right and each node would feed upon the precedent
ones.
Inputs
We have different types of inputs and each time you want to use a node you can hover over the
left input to see what the node needs to work.
Examples of Nodes are
Number String Boolean File Path
And, we have all the other types of inputs that will nest their properties or will be generated by
combining nodes, Such as
Revit. Element,
Which is the standard element will need to use to understand all elements in the model
Since we are getting on Model Analysis and Management let’s review the transaction behaviors
and Lists.
This Starting point of a List is a sequence or a range, which would hold several numbers.
We can create a sequence with commands SEQUENCE or RANGE
But to go faster we will use a code block, you can do it by double-clicking the graph space.
For a sequence you would write start..amount.step for example
0..#10..2 would give a sequence of 0,2,4,6,8,10,12,14,16,18
At the bottom line, it has two @with L2 and L1 that means that it has one list of
information
For a Range, you can use 0. 10.. #9 so it will divide from 0 to 10 in 9 parts
A list of 6 elements multiplied by 2 elements on a shortest lacing set would give one element.
All Elements from Category and All Elements from Family Type.
The first one would get all model elements even if they are hidden and the second one could be
use full just if we want to use a single-family type
Whatever option you choose next to that you need mix them on lists with the create. List
function and then flatten to avoid hierarchy
That’s the level value and from that we can get parameter name
With Level.Name function.
Parameter Creation
Because elements won’t always share the same parameters and management and analysis
would need to use on similar constraints its often better to create shared parameters for
management that can solve multiple information data analysis.
The function is called Parameter.CreateSharedParameter and what it does it creates shared
parameters in the selected file and in the model
Export to Excel
Functions of importing to excel are vital so that you can get information.
Just need to set up the list of values you want to get and the functions works like this,
Excel.WriteToFile
Insert AU caption.
And using the functions get the parameter value of reference level name, because the
parameter level on framings doesn’t exist.
Now we can find out which values we have with the index of, for that function we need to set a
flatten of the keys and compare the complete name list using a crossproduct and a ==, then use
a List. Map function to get the corresponding results and use as a function index of with a true
Value.
So, it’s showing the number they will get according to the list, we just need to set up the values
with a remap. Range function and set overrides.
The Math.RemapRange functions would let us transform the numbers in a spectrum from 0 to 1
And Finally, we use all the points and its values to create an analysis display by points.
And configure Visibility as greater your gradient looks more complete the information will be
understood.
Filter Creation
Filter creation is a great feature that can be improved with Dynamo
Before that we need to get in some organizing features because if you get a lot of information
scripts may not be as set as you would like, what you can do is to set groups by selecting
elements
On this example, it’s a filter created to several categories, you’ll need to extract those and
create a single list.
And the final output is a ParameterFilterElement.ByRules that we will need to pull to create a
ParameterFilterElement, but before we need to get our graphic overrides
In this case I used a Codeblock for each color and create three types of overrides so they can
be selected with the filters and at the end we got the filters.
Its highly recommended to set a round function to avoid decimal differences greater than 1cm
But still we still get a lot similar values if we wanted to sort multiple we will need a different
approach
If we need a deeper level of management we might need to get the package called PracticalBIM
and there we have some nodes to deeper sorting lists.
We can use the node called SortListofListsL2
Extracting Schedules
Creating Schedules in dynamo needs a lot information it all will start with the Schedule View.
Create Schedule
In this case it uses the Category we want it gets a naming setting and its type from the schedule
Type
Then we need to create the fields it will hold, for that the function is called
ScheduleView.SchedulableFields and then we need to transform information to
SchedulableFIeld.Name we can use the index to extract but it would take some time instead we
can create a list with the names as written and the order we want and use the function
IndexFromMapping, this function will find the elements selected on a second list and would give
us the index number so we can extract the schedulableFields.
The only downside of this process is that the sorting and grouping can’t be manage
Extracting Values and Exporting Schedules
For the Data extraction, we need to install the package called Bimorph Nodes in which we have
a function called Schedule.GetData that would take the information of any schedule created and
export the data in lists.
We need the Lunchbox Package for this one, with the function Lunchbox Room Element
Collector and using a toggle of True to extract room elements
This will set a result of elements intersecting with the spaces we can have visibility on dynamo
of those presents.
Will get both functions flatten, the elements and the values of list including them and from there
it’s just a matter of overrides.
Hope you liked this lecture and am looking forward to receive any comments and suggestions,
as well as possible topics to develop.