Revit Architecture Forum
Welcome to Autodesk’s Revit Architecture Forums. Share your knowledge, ask questions, and explore popular Revit Architecture topics.
abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 

Screencasts: Reporting a flat's area using tags and dynamo

4 ANTWORTEN 4
GELÖST
Antworten
Nachricht 1 von 5
FGPerraudin
379 Aufrufe, 4 Antworten

Screencasts: Reporting a flat's area using tags and dynamo

Hi Everyone,

 

As Architects we have had a very simple issue with housings design. Why can't we zone rooms so that we can report flat's surfaces?

Well, I am sure that Autodesk is thinking of implementing an integrated solution but here is the explained steps as of how to do it using Dynamo.

 

Pros: You can still use rooms and keep your current workflow

Cons: You will need to update the data using dynamo each time you need to.

 

Alright, Here we go!

 

 



Francois-Gabriel Perraudin
BIM management and coaching

4 ANTWORTEN 4
Nachricht 2 von 5
FGPerraudin
als Antwort auf: FGPerraudin

First of all, we need to create SHARED parameters for reporting the Flat's ID and its total Areal.

Why SHARED?

Well, these parameters can then be used in tags to report data...

 

So, for people who wouldn't know how to do it, here is the first screencast

 



Francois-Gabriel Perraudin
BIM management and coaching

Nachricht 3 von 5
FGPerraudin
als Antwort auf: FGPerraudin

Once the parameters are created, it often happens that you need to "transfer" the data from an old unshared parameter to the new one.

 

Dynamo will save you hours of inputting the data by hand, with a very simple script.

 

Three very simple steps that are a good intro to dynamo:

  1. selact elements by category
  2. extract parameter value
  3. input parameter value

Takes a few minutes overall to replace every single value.

 

 



Francois-Gabriel Perraudin
BIM management and coaching

Nachricht 4 von 5
FGPerraudin
als Antwort auf: FGPerraudin

Alright, now our file is ready.

 

For the next script, you will need to create a new parameter that identifies if the surface should be accounted for or not (As I am french, I used one called "extérieur", you will guess what it means...) Just make it a boolean type ("Yes/No")

 

Here are the steps for the script:

  1. Select all of the rooms
  2. Select the parameters that describe the ID of the flat the room belongs to and the surface of the room
  3. Group the rooms by flat ID 
  4. Create a DICTIONARY (you will need to install the lunchbox package). A dictionary is magical: it associates KEY with VALUES (in other words, words and definitions). It will allow us to find the total surface of a flat by its ID
  5. Add the rooms surface by flats, and enter the values in the dictionary. Keep in mind that as long as you input values from the same nodes, the order of the elements WILL be RESPECTED. So our dictionary associates the right IDS with the right AREAS
  6. For each room, set the parameter surf_lgt to the total area of the flat. This is where our dictionary comes handful. It allows us to find the surface associated with the flat number. It acts as a filter that gets an ID and returns the total area.

Good, first step done, we have successfully extracted the total area of flats, and then assigned that value to every single room.

 

 

 

I have made two additions to that basic script.
Account only for interior rooms and clean the total area parameters before executing the script.
 
Filter by interior/exterior
  1. It is a basic but extremely important node. Filter by boolean mask allows you to filter a list according to a "parallel" list that contains ONLY BOOLEAN VALUES (true or false). Dynamo then compares the first list with the other one by placing them "aside" and returns two lists: the elements associated with TRUE (output "IN") and the elements associated with the value FALSE (output "OUT").
  2. So we first extract the "exterior" value, and evaluate it. There does the operator "==" come in hand. It evaluates an equality. As we want the parameter "extérior" to be "false", we compare values:" if exterior==0, return true " is what the "==" node means.
  3. We apply the boolean mask, and it returns only the interior rooms.
  4. We then rewire our whole script on that node.

Reset total areas to 0:

  1. take the whole list of elements.
  2. set its surf_lgt parameter to 0
  3. connect the output to the rest of the script (it still returns the elements)
  4. Be careful to do it that way. if you create a "parallel" branch, it will execute at the same time as the rest, and you will observe a bug (as shown in the screencast).


Francois-Gabriel Perraudin
BIM management and coaching

Nachricht 5 von 5
FGPerraudin
als Antwort auf: FGPerraudin

There we go!!

 

It is quite advanced stuff, but a good intro to the powerful possibilities of dynamo.

 

Do not hesitate asking questions, 

 

And I hope it will prove useful!

 

François



Francois-Gabriel Perraudin
BIM management and coaching

Sie finden nicht, was Sie suchen? Fragen Sie die Community oder teilen Sie Ihr Wissen mit anderen.

In Foren veröffentlichen  

Autodesk Design & Make Report