Revit Treemap

As a follow-up to a recent post on Revit Selection, we’re taking a look at simpler, more user-friendly ways to navigate the Revit hierarchy.
The zoomable treemap above is referencing a representative file of the full Revit hierarchy (all elements with a category in this case). The first screen shows all of the categories in the file, and clicking on a designated area zooms into the following tier in accordance with the Revit hierarchy (category, family, type, instance). The vertical toolbar on the right displays parameter data as well as preview images for applicable Revit types, while the circular buttons sort data based on instances, families and parameter count.

This is a demonstrative tool, allowing the user to explore the hierarchy and gain a better understanding of its construction. To create generic hierarchical data, a Python script in Dynamo creates the content in the .json format below:
This data is then referenced in the browser, using D3.js to create the interface. Treemaps are pretty popular these days when it comes to data visualization, and with the help of the D3.js library, we can explore a wide range of options like these for web-based interaction.

So while this is a Revit experiment for us, the design can be applied to any hierarchical data set with the same format. For example, check out this zoomable treemap for the D3.js API, the file we referenced for the Revit interface above.

We plan on making this interface available for all Revit projects with the release of some custom Dynamo nodes. Short term goals here are to explore more opportunities for visualization and interaction with AEC data sets. Long term goals include taming the Revit beast and making it more approachable to all of us.

Dynamo Review – Selections

This year, we’ve taken an in-depth look at Dynamo, the visual programming environment for Revit.  There’s a lot of potential here for widespread use in the AEC industries, and recent releases provide some exciting new features (check out our introductory and advanced courses). The program’s developers are rethinking how one interacts with Revit, and this is awesome.

So how can we take full advantage of a visual programming environment within the Revit platform?  Now that we’ve explored the software, it’s time to reflect and look at a few ways to improve our parametric workflow.

Dynamo is a program in its infancy, and there will of course be bumps in the road. One of these bumps, which is the focus of this post, is Revit selection.  This is the process we use to link Dynamo elements to those in Revit.  Here is a group of some of the selection options within the Dynamo suite:


The fact that Dynamo is built on top of the Revit database gives it a good deal of potential, but this also makes its interaction challenging.  The selection options above provide decent functionality, but it’s not all there, and it’s scattered.  If we can query a Revit file the same way we query a database, this interaction can become a lot simpler.

Back to the basics, the Revit hierarchy has four main tiers: categories, families, types, and instances. This defines the Revit database, and grasping this concept is particularly important when making project-wide parametric applications:

2014-10-10 09_57_17-Autodesk Revit 2015 - STUDENT VERSION - [3D View_ {3D} - rac_advanced_sample_pro

Our workshop attendees generally have a wide range of experience. Some are new to Revit, but experienced in visual programming through applications like Grasshopper. Others are Revit aces who want to learn more about visual programming. Dynamo’s existing selection nodes can be a headache for both of these users. When instructing a course, we want to move quickly while ensuring that the fundamentals are clear: here is the Revit hierarchy, and here is the way to navigate it in Dynamo. Perhaps this can be done with two nodes:


The video in this post shows these custom nodes in action. The user can move up and down throughout the project hierarchy, and use the nodes in either direction. This will enable the user to select an element and get any combination of similar elements. Or, one can select multiple elements and extract their hierarchical sets.

The intention with these nodes is to make Dynamo more demonstrative of the Revit environment. By simplifying selection, we can facilitate parametric interaction.  Students can learn more about the Revit database while they learn more about Dynamo, and modelers can operate on an advanced level with ease.

We plan on releasing these nodes as soon as we hash out a few more programming tasks (so that its applicable to all Revit projects).  This will include hierarchy from elements, elements from hierarchy, and get all parameters (rather than drop-down menus, away with those!).

Advanced Dynamo Curriculum

We’ve released a series of tutorials for advanced parametric modeling with Dynamo.  This builds off of introductory lessons from Computational Design for BIM.

The course focuses on Revit element generation, parametric masses, data transfer, and scripting.  The project was also an exploration for us, as we develop methods for visual scripting in Revit which can be applied to professional practice as well as academia.


Automattic’s Secret Sauce

What defines your work day?

For Matt Mullenweg, there are no formal meetings, rarely any email communication, and team members only see each other once or twice a year at most. So how does the creator of WordPress, founder of Automattic, and chairman of The WordPress Foundation keep his finger on the pulse of 450 terabytes of data pushed daily around the globe? Matt replaced email, phone calls, and meetings with one simple thing – blog posts.

Automattic’s secret sauce is a WordPress theme called P2 that every employee publishes to all day. Every project, question, idea, complaint, and conversation gets its own P2, and is completely open for anyone who wants to participate to join in. Each P2 post gets its own URL, which can be referenced in other posts. There are no private P2s and P2s do not degrade over time, as is the case with ongoing email threads. Automattic also tracks team member’s actual work (support tickets closed, code written and deleted, etc.) and puts it on a public scoreboard, so everyone knows what, and how, everyone else is getting work done. Instead of being good at delegating tasks, managers just need to become better at reading.

As a communication medium, P2s empower the group rather than the sender.

Continue reading via Matt’s Blog.

Coding Takes Over

2014 will go down as the year that coding became a standard part of curriculum for many schools in the US and UK. Both computer scientists and educators alike see the benefits that being fluent in code can have on students.  In addition to learning mathematics concepts indirectly, this vital skill is now considered a requirement by a whole host of industries and professions not traditionally thought of as requiring knowledge of code–including medicine, finance, journalism and astronomy.

According to Rachel Swidenbank, head of online learning platform Codecademy‘s UK operations, “Technology has infiltrated almost every part of our daily lives and is increasingly becoming an essential aspect of all industries”.  

Continue reading here.