Smarten up the building planning process in a parametric way

Dear Dynamo users,

I am a construction engineering student and currently I am graduating on the subject: Smarten up the building planning process in a parametric way.
The building planning is related to a parametric design.
This means when the input of a parametric design changes, the output of the design, as well as the overall time of the related building planning changes.
The parametric design is a simple construction model of a square building. By editing the input parameters (such as width, length, height, floors, etc.) the building becomes larger/smaller.
I am investigating the opportunities within Dynamo to export a parametric design to any building planning software (4D BIM).
I have been given the freedom to examine and recommend any planning software to the company where I am currently graduating.

The best case scenario is when I edit the input of my parametric design, the related building planning changes with it automatically.

I examined different approaches to make this possible.

Approach 1:

  1. Write a Dynamo script to generate a simple parametric design (described as above).
  2. At the end of this script I will add a node, which exports the required data from the parametric design to an IFC file (or any other file which is related to any building planning software).
  3. Afterwards I manually have to open any chosen building planning software and import the IFC file.
  4. After every edit of a parametric design I have to update it within the chosen building planning software.

I think approach 1 is possible, but I don’t think it is the most efficient way.

Approach 2:

  1. Write a Dynamo script to generate a simple parametric design (described as above).
  2. At the end of this script I will add a node, which exports the required data from the parametric design to an IFC file (or any other file which is related to any building planning software).
  3. After the export to IFC node, I will write a Python node which can carry out acts 3 and 4 of scenario 1.

If approach 2 is possible I will make a script with programmers.

My question: Can anyone confirm if approach 2 is possible within Dynamo?

If you have any tips which can be helpfull to my graduating subject, please let me know :wink:
Thanks in advance!

Curious, if you have the option of using any software, why not use Revit instead of generating an IFC? IFC geometry creation and verification alone has taken some teams of very smart people far longer than most graduate degrees take. Not to say don’t pursue that route, but you may be better off with something which handles all aspects of the process already (walls, floors, roofs, columns, beams, ducts, pipes, fittings and equipment can all be placed automatically at great pace given the scope you note above. The Van Wijnen Generative Urban Planning example likely would be a good precedent as the designs were based around their modularized parts and pieces (with an associated cost). https://www.autodesk.com/autodesk-university/article/Generative-Urban-Design-Collaboration-Between-Autodesk-Research-and-Van-Wijnen-2019

Hey JacobSmall,

Thank you for your interest and respond.
I also would like to thank you for the given link; nice example.

Generating an IFC is one of my possible options. The best export file probably depends on the chosen building planning software.
Somehow I have to connect an adaptive (generic or parametric design) design to any building planning software.
Working with ‘just’ Revit won’t work.

So currently I am trying to find out if my second approach could be possible within Dynamo.

Ah! I misread your comment about ‘chosen by the company.’

In the case of working with any software the result between a version for moving to Revit and a version for moving to another platform is just the need for an integration of Dynamo for that other platform. This is really one of the core remnants of Dynamo in that it can be consumed by pretty much anything. The only prerequisite is the other software running on windows, and having an API. From there it’s a question of how it’s accessed. With that info you just need to make the integration and the nodes to produce the building elements using that other application’s api.

That said it is certainly a lot of work, and a never ceasing amount of it (infinite nodes for infinite software package integrations). Effectively your last step of option two was reaching for this, but it wouldn’t be as simple as described depending on the chosen software. Key factor will be does it need to be launched via a Dynamo integration (like Revit) or is there external API access (like AutoCAD), then building the nodes required to build your work (or make wall of type by curve, floor of type by closed loop, etc.).

In the end I think you’d be best served to encourage users to ‘make the best possible decision early’ by exposing the content to make the right choice before moving out of Dynamo (a-la Refinery), and then bake in to one or two software packages besides Revit, as that will illustrate the power.

I’ll also note that in all cases the systems will need some degree of Autodesk software which has the geometry library installed on the system or you won’t even be able to draw a line.

Thanks Jacob,

I think you confirmed my struggles.
I was a bit suprised to read the amount of work of making the integration.
With that being said, I could consider to keep an ‘‘Autodesk workflow’’. All off the chosen software will be related to Autodesk. For example Revit (+ Dynamo) and Navisworks 4D planning.

  1. Revit and Dynamo;

/\
|
| Black box part; how to connect? Maybe by Python code. When I edit my parametric design in
| Dynamo I’d like to see real time changes in Navisworks.
|
\/

  1. Navisworks 4D planning.

I will give this option a try. I will let you know if I’d succeed.

I’m not sure what you mean by your last sentence: ‘‘I’ll also note that in all cases the systems will need some degree of Autodesk software which has the geometry library installed on the system or you won’t even be able to draw a line.’’.

Python would certainly do it - look into Dynaworks package for some similar examples. You can also just directly append the model into Navisworks via the UI.

I pointed this out as ‘other software’ means you may be in a situation where Revit and other software containing the geometry engine isn’t installed on the system running the graph, which wouldn’t work as stated above.