Friday, December 27, 2013

Return of the Slingshot!

Slingshot! for Dynamo... oh no you didn't!
This past April, I released the source code of this project through GitHub.  Since then, I have been intermittently updating the source code and testing new approaches.  In fact, I am currently re-structuring much of the plug-in under the hood and also introducing different UI elements.  Hopefully, this amounts to a more streamlined and flexible tool.  In addition, I have been porting some of my Slingshot! code over to Dynamo which should add a new dimension to sharing information using database connections.

You can always try this stuff out by building the Visual Studio project on GitHub.  I also plan on regularly posting builds to my repo.

Here are some of the more notable changes...

Grasshopper Component UI

Major components now contain context menus for changing settings related to connecting, querying, and commands.  I believe this allows many workflows to be simplified.  This has allowed me to consolidate the total number of nodes without losing functionality.
Connection string creation form.  The string will be formatted based on the selected RDBMS connector.
Component settings for file-based databases (Excel, SQLite, Access)

Grasshopper Data Trees

Some Grasshopper nodes would have benefited greatly from data tree implementation.  For example, query outputs were a little clunky with the user having to either parse comma separated values or indicate a column.  Now, query outputs come out as nice data trees for easier parsing.  Rhino Pack and Unpack are also supportive of data trees.

Rhino Pack/Unpack components now support Data Trees to preserver structure.

Slingshot! for Dynamo

It is still early days, but the port of Slingshot! for Dynamo has begun.  Slingshot! for Dynamo is a Python-based implementation of the database connectors available in the Grasshopper plug-in.  As of this post, I am supporting MySQL and SQLite connections but more will be added in the near future.  You can get it now from the Dynamo Package Manager.

Slingshot! for Dynamo lets you access databases for use with Revit/Vasari
Slingshot! for Dynamo is now available in the Dynamo Package manager.

Monday, December 23, 2013

2014 Outlook: Interoperability, Performance, and Computational BIM

First off... Happy Holidays to the readers and visitors of this blog!  The Proving Ground has been going strong since 2007 with steady growth in visitor traffic. I have a lot of computational cakes in the oven as we go into 2014... so keep tuning in!

In this past year as a consultant, I observed a trend towards greater investments in technological capabilities among practitioners in parallel with higher economic optimism.  Indeed, McGraw-Hill Construction expects that the BIM adoption rate among architects to hit almost 75% in the US with anticipated 2014 investments in training, interoperability, performance analysis, custom software, and collaboration infrastructure.

So what am I looking forward to in 2014? What can you expect to see from CASE to further the cause of helping architects use technology to build better buildings?

As a preview, here what you can expect to see on this blog moving into 2014...


Getting the tools to work together will continue to be a big piece of the technology puzzle for firms going into the New Year.  New tools will be continue to enter into the process... but how they all fit together as an ecosystem will not always be clear.  Designers are going to need to be equipped with new workflows and expertise in data management to get the most value out of the project information.

2013 was a breakthrough year for CASE on the interoperability front.  We have created consulting-based frameworks to address design to production, reduced rework, and improved cross-platform collaboration.  We have consulted on interoperability-related issues for projects including healthcare facilities, high rise towers, and sports venues.

Next year, CASE will continue to evolve interoperability offerings with support for more software platforms, workflows, file formats, and building systems.  Expect to see the expansion of our Rhino to Revit workflow, innovation with the IFC file format, and novel uses of web services as a Building Information medium.


CASE's DIVA Daylight Analysis curriculum.
Let's face it... the use of analysis within design practice is still a black art.  Some tools are about as intuitive as a DOS prompt (or are the DOS prompt). Others approach the depth of a cartoon where colors replace tangible results.  In the case of Energy Analysis, models are often built on many assumptions requiring expert domain knowledge.  The rework of models to keep pace with design iteration remains a painstaking and cumbersome task.

Yet the fact remains that analysis is becoming a greater component of design practice.  Clients are beginning to expect better performing buildings with upfront proof and designers are beginning to see the advantages of measurable design attributes to validate decisions.

In 2013, CASE ran numerous analysis-related workshops and rolled out a formal training curriculum for DIVA for Rhino.  A number of our Project Consulting engagements also featured analysis-related technologies as part of the scope of work.  We worked with teams to set up iterative systems to capture and compare solar and daylight results.  We also created data visualization tools to help designers communicate  analysis results to clients and other project stakeholders.

In 2014, CASE's work on the analysis front will continue.  We are now an authorized trainer OpenStudio by the National Renewable Energy Lab (NREL).  You can expect to see Open Studio, EnergyPlus, and Radiance become a larger part of our offerings for architects and MEP engineers.  Alan Jackson and I have also set a goal to establish more streamlined approached for developing energy analysis models for use in the earliest stages of design and engineering.  Working prototypes are already underway for Rhino and Revit and we are looking forward to sharing our approach with you in the New Year!

Computational BIM

Dynamo Workshop at Facades+ in October 2013
There is a growing need within design practices to marry the worlds of Computational Design with BIM.  While CASE has never really thought of these two things as separate domains, there is certainly a conceptual gap in how practices have embraced these categories.  Indeed, it is within this gap that much of my own interoperability interests have been focused.

2014 will see Computational BIM grow into maturity.  We will see uses of computational design where downstream information considerations are much more pronounced.  BIM processes will become less linear, more iterative, and tied more directly to design and performance goals.

Meanwhile, CASE will continue to operate at this interesting intersection of technologies with resources for knowledge and services for clients.  We have recorded an extensive Introduction to Grasshopper curriculum of over 120 Grasshopper learning videos, many of which will be available on Skillshare in partnership with Architizer.

Going into 2014, We are also anticipating that Dynamo will become an important tool within the Computational BIM workflow.  In just the last three months I have workshops for Adrian Smith + Gordon Gill, NBBJ, AECOM, and Facades+.  Next year, Michael McCune and I already have TexFab on our calendars and together we will be running Dynamo workshop!

2013 was an exciting year and I hope that 2014 will be even better!

As always, feel free to reach out!


Monday, December 9, 2013

AU2013 Thoughts & Dynamo Review

CASE Party @ AU2013.  We had over 500 AU guests packed into the Rockhouse in Vegas!

AU2013 General Thoughts

I have conflicted feelings about large conventions, especially ones that are so focused on the goings-on of one company.  Autodesk University is the end of the year hoopla for a company that is the most influential and pervasive AEC tool supplier in the industry.  For a single week, ~9000 Autodesk employees, customers and fanboys* descend on Las Vegas for classes, product news, conversation, and gambling.

*can something be done about the female-deficiency in the world of technologists?

Through motivational speaking and showy salesmanship, the keynote addresses asked us to consider reaching 'outside' for ideas and expertise (Autodesk Consulting, perhaps?) and to consider the advantages of a cloud-based approach to products (Software for rent?).  However, the Vegas-style showmanship (Penn & Teller) and high volume marketing (disco robot) do very little to address big picture questions about the practicality and vision of the new technological realities that Autodesk is advocating for... and ultimately trying to sell.

With the broad spectrum of parametric tools, iterative analysis processes, and simulation environments now available, are these new processes making a tangible impact on the statistic that 40% of the world's carbon emissions come from buildings?  Have our tools helped us move the needle which shows that 70% of buildings go over their construction budget?   How will the cloud enable us to deliver architecture to the 65% of the world without internet... the parts of the world that arguably needs architecture the most?

However, these questions should also fall on the plate of Autodesk's users as they are the ones putting these slick new pieces of software to work.  We should remember that the goal of a better process is not a better process... the goal is a better decision leading to a better building.

But I digress... as this is a computational design blog and I do want to spend some time reviewing what happening in that space at Autodesk.  For another perspective, I also encourage you to read Daniel Davis's coverage of the Computation for BIM workshop over at DesignReform.

Zach Kron's Introduction to Dynamo class, a 90 minute course packed with architects, engineers, and BIM enthusiasts.

Dynamo - A Canary in a Coal Mine?

Autodesk has not been known to be a purveyor of free and open source software.  Sure, there are and have been smaller, 'low profile' projects in the past.  This year we saw Dynamo make its way into Carl Bass' main stage keynote presentation and affirm a commitment to delivering a computational design tool to the masses.  Dynamo is free, Dynamo is open source, and, based on class attendance, there is a lot of good will and buzz around seeing it succeed.  The significance of having Autodesk embrace open source as a means for delivering a key product can not be understated and I hope it succeeds.

I'm rooting for this canary to make it because the main beneficiary is going to be the design community.

And what a difference a year makes.   We have seen Dynamo grow from a laboratory test in Grasshopper-cloning into a mature graphical language uniquely tied to the Building Information Modeling world of Revit.  That's not only interesting... that's cool.  Designers can control and automate many aspects of the Revit model through the graphical node-based interface to achieve form creation, parameter manipulation, and information interoperability.  Things that used to require expertise in Revit API manipulation can now be more easily achieved with some graphical wire work.

But there is more to Dynamo than just Revit.  The team revealed that DesignScript is in the early days of being merged with the Dynamo core.  DesignScript has long been in development as a scripting language for designers. As part of Dynamo, it will now be used as a means for translating Dynamo's graphic nodes to a code-based representation... and back again.  It's a interesting computer science experiment at this point but I have yet to see a compelling use case for a designer looking to get their project out the door.  I will reserve further judgement on this development until it has time to mature and I have had time to test it out.

Here are something observations about what works and what doesn't... Disclaimer:  Given the pace of development, this review is already obsolete at the time of posting.

What works...

  • Stability:  Dynamo looks and feels solid.  This is a huge development as users need the confidence to be able to try things out, make mistakes, and not worry about their computational ecosystem crumble down when connecting the wrong wire.  Are their still bugs?  Yes... but they have become more and more minor that I can now recommend Dynamo be tried out in a production environment.  If you find a bug, be sure to report it and the team will get cracking on a solution!
  • Revit Elements:  The key advantage of Dynamo is how it is tied into Revit to control model elements and information.  Dynamo's novelty is how you can design systems for placing families and controlling parameters... you can even use it to create a sheet set if your heart so desires.  The tie between design and production is an area I fully expect Dynamo to continue building on.
  • Package Manager:   We all know that a major contributing factor to Grasshopper's success is the plug-in community that is constantly building new tools.  The Dynamo Package Manager let's designers share custom nodes and scripts through a common marketplace that is accessed through the main UI.  There are many packages available here and the workflow for getting new stuff is easy and straightforward.  Be sure to check out LunchBox if you are looking around :)
  • Python:  Designers can code their own nodes using Python.  This is a smart choice as it is a very popular language among designers.  The implementation needs some work (see below), but it is an essential feature that I hope to see grow in the coming months.  You can find some of my older Python samples at The Proving Ground wiki...

What needs work...

  • Units:  This is easily at the top of my list.  Dynamo lacks a good concept for handling units in relation to the Revit document.  This is not uniquely a Dynamo problem because Revit's API is built around decimal feet.  Dynamo simply uses the same assumption which is a potential deal breaker for designers not working on projects in the US.  There simply needs to be a better concept for linking Dynamo to the project units in the active document.
  • Python:  Yes it works... but it could be so much better.  I would like to see better auto-complete for Revit API methods.  Python could be a great way for a user to explore the Revit API but for now it feels like taking a shot in the dark. 
  • VB/C#:  Why not include support for other .NET languages?  Considering that most Revit API SDK samples are in either VB.NET or C#, would it not make sense that the Dynamo nodes also support these languages?
  • DesignScript:  As stated before, I don't have a full opinion on this as it is still early days for its implementation with Dynamo.  In my previous experience with DesignScript on AutoCAD, the language does not feel any more or less 'intuitive' for designers when compared to other scripting languages.  I am happy to have developer Luke Church make a case for me... and he seems perfectly capable.
  • Color:  I am with Daniel on this one... ditch the yellow/orange node look.  This is a purely subjective opinion, of course.  Personally, I could see Dynamo benefiting from a different color scheme.  OR just give users complete control over the look of their canvas.

In 'Conclusion'

Dynamo is going to be a product to watch going into 2014 and CASE is really excited to be supporting it with our clients.  As a consumer, I am pleased to see Autodesk embrace an open source approach to software development.  As a designer, I am excited to have another tool for making cool architecture with BIM.  As a consultant, I am thrilled to explore ways of implementing this tool with CASE's clients.

If you are interested in learning Dynamo or have ideas for how it could benefit your project, please contact us!

EDIT:  Changed a the wish about adding reference to .NET assemblies in Python.  This is certainly possible.

from Newtonsoft.Json import * 
import Newtonsoft

  Easy peasy....