It's been an interesting first week in Autodesk Research. I've had the opportunity to jump into a few projects that are really interesting. One involves the use of generative design tools to perform a number of different analyses on design alternatives for an architectural project, assessing criteria such as maximum team co-location and improving the circulation of people through corridors.

One the tools being used for the analysis is Dynamo: something I've been meaning to spend some time with for ages, but finally have good reason to. (Some of you may remember my involvement/interest in the DesignScript project… DesignScript is the language engine that drives Dynamo, so many of the concepts are very familiar. It's a bit like meeting an old friend after a long separation. 🙂

The hope is to use Dynamo to perform – among other things – spatial analysis using isovists, a term I was previously unfamiliar with. Isovists basically allow you to analyse the space enclosing a given point in the model: it's like tracking light outwards from a point light source and detecting the illuminated volume.

I couldn't find a direct way to generate isovists in Dynamo, but I did stumble across a (somewhat) recent Hackathon project called Acoustamo (which I've also seen referred to as Acustamo). This is a simple tool to perform acoustic analysis of a space: it uses rudimentary raytracing to analyse the reflection of sound, allowing you to analyse acoustic properties during conceptual design. I figured that isovist analysis is basically raytracing without the bounce (you limit the rays from being reflected at all: they simply get absorbed by the first obstacles they hit), so it seemed like an easy way to try it out.

I installed the "Acustamo" package inside Dynamo Studio and hacked around with the provided tutorial. Rather than taking geometry from Revit – as I'm not currently working inside Revit, but running standalone – I created a circular space and ran the analysis from a point located inside it. Nothing spectacular, but it appears to show that the principle works well enough. Here's my Dynamo file – you'll need to install the Acustamo package manually, as the .dyn format doesn't appear to contain package references, at least none that Dynamo Studio acts upon – in order to try it for yourself.

Isovist in Dynamo

In many ways what we're doing is similar to the concept of partial application in functional programming: we're effectively "fixing" the maxBounces parameter of the Raytrace function to 0.

I'd like to see how I can compose this into a nicely packaged node… I know I can create a zero-touch .NET plugin – much in the same way as Acustamo was implemented – but I'm curious whether it's possible to build higher-level components based on existing ones. It seems to me that this kind of encapsulation would be necessary for a system like Dynamo – where you can quickly get huge graphs without it – so hopefully it's just a matter of learning how it all works.

5 responses to “Isovist analysis in Dynamo Studio”

  1. Hi Kean,

    Congratulations on the new position.

    If you do get the chance to run Dynamo from within Revit, you have access to Revit's built-in ray bouncer through the "RayBounce.ByOriginDirection" node. This provides an out of the box alternative to "Acustamo".

    1. Hi Dimitar,

      Thanks for raising this - I should have mentioned it in the post. I was aware of its existence, as the author had explained their reason for writing their own, external .NET code to do this: they saw performance issues with it being done inside Revit, apparently, which is something I expect we'll be hitting, too, at some point (we're going to use this to evaluate many thousands of design alternatives).

      But we'll see that when we get there - I'm sure we'll also be evaluating the Revit capability, too.

      Regards,

      Kean

  2. Kean getting involved with Revit, I like the sound of that.

    1. I have to be careful - don't want to start a turf war with Mr. Tammik. 😉

  3. how can i calculate room area without use of polyline

Leave a Reply to Lester J. Grace Cancel reply

Your email address will not be published. Required fields are marked *