Capturing Navisworks Project Data
Dalton Goodwin
Business BIM TM @ Henderson Engineers | Codewars: The BIM Coordinator | YouTube: @TheBIMCoordinator | GitHub: DaltonGOO
Navisworks is a tool that is used for coordination and can identify clashed elements within a model. We identify these clashes with Navisworks and then resolve them in the model, which ultimately helps reduce, problems in the field, rfi’s, change orders, etc.
In this example I am using Dynamo to extract and clean the data from Navisworks, then Python, pandas, and Plotly to plot all the clashes from the Autodesk sample models. Now, you could just use Navisworks to view this information, but it isn't just for viewing clashes, the underlying motivation for this, is to capture that data. Which will allow us currently/ or in the future better understand how clashes are created, trends, correlations, and eventually by aiding the process of preventative clash through ML. If we don't capture it, we can't truly understand what benefits we can get from it, the AEC industry is full of uncaptured data. The process is entirely automated so capturing the data for every project is no problem.
When capturing the data, I used Dynamo which can access the Navisworks model and retrieve a variety of parameter information about the clashed elements, one being the coordinates of each clash point. That is all the information I need when Plotting the information. You will need the DynaWorks Package for Dynamo.
Dynamo Script pulling data from Navisworks and then saving it to an Excel file:
Dynamo can get the data cleaned up for plotting. Example of the output from Dynamo:
Now the python bit. I am using Jupyter Notebooks in this example. Let’s first import a couple libraries:
With the data cleaned using Dynamo and the libraries imported in python, it is now good to plot. With python and pandas, we would read in the data from excel creating a pandas dataframe:
Now we have a pandas dataframe which looks like this:
Now we can plot the data. We just need to align our data. x column data for the x axis, y column data for the y axis, z column data for the z axis. We then make the colors equal to trade which is then going to give us a different color for each trade:
Clash coordinates plot, using Python and Plotly:
The idea behind this is to leverage the data to better plan and make decisions on projects. To achieve this, we can use machine learning. An important step before leveraging data for a project is to try and better understand it, the cleaning process will for sure guide you in doing that but sometimes you may not know where to start or, need more insight into what is going on with the data. That is where visualizations comes in handy. These plots can also be used in a dashboard tool such Power BI.
Here is some examples of visualizing the data:
We can also look at these clashes for an entire lifespan of a project, giving us insights into how we resolve clashes:
Now that we are capturing this data, we can start to look at every one of our projects and see what is correlated with a successful project. Even pairing the above data with rfi’s, change orders, and profitability for that project. We may want to then leverage Machine Learning to find correlations we may not see. Machine Learning will also help with automating this process. Ultimately, we are trying to learn from our projects and their data, so we can make more effective decisions on future and current projects.
This articles intent is to share ideas on capturing data, not the specifics of a technology or the picks and clicks.
Here are a couple videos that talk more about the picks and clicks:
Navisworks | Capturing Clash Data | Python and Dynamo Part 1:
Navisworks | Capturing Clash Data | Python and Dynamo Part 2:
Please let me know if you have any questions! Thanks for reading!
Resources:
Navisworks: https://www.autodesk.com/products/navisworks/overview
Dynamo Primer: https://primer.dynamobim.org/
Python: https://www.python.org/
Plotly: https://plot.ly/
pandas: https://pandas.pydata.org/pandas-docs/stable/
Anaconda Distribution: https://www.anaconda.com/distribution/
Mechanical Product Owner at IMEG Corp
5 年Awesome article Dalton Goodwin. I’m covering this topic at Midwest u this year. Good to hear another ideas.
Good Job!
Good Article Dalton! I agree the data mining using ML should further be explored. Like in this example if there are 12k Arch clashes Please try exploring the next step to segregate the clashes by levels and then creating 3d views which are color coordinated.??https://forum.dynamobim.com/t/clash-detection/18826