Calculation of exterior walls area and windows area

Hello everyone,

I am new to Dynamo and I would be happy if you could help me. I have two questions.

  1. I want to calculate the total area of only exterior walls in my project. How can I filter them for interior ones and then sum up their areas?
  2. How can I get width and height of the windows family so can I calculate the area of each window and sum them up? In general, how can I get the parameter’s value of family in Dynamo?

Thank you very much in advance

You can do all that without using Dynamo (use Schedules in Revit).

Best practice is (in my opinion) to make wall types for interior use and wall types for exterior use (so you can filter).
In Revit you can already see the area.
Revit already subtracts openings for you.

In the Family you can add a (Shared) Parameter and use a formula to get the Area (Width x Height).

I don’t wanna sound rude, but seeing your questions i have my doubts about your Revit knowlage…

Thank you.
I know I can do it with Revit but I have to do it in Dynamo for my project.

Like… why? Also did you Google at all?
Not saying that link is the solution.
Just find it low effort on your part.

It’s a MUST to do it with Dynamo because it’s university project. I know what is Google. I know how Revit can do it. My question was totally related to DYANMO. If you do not have Dynamo knowledge please don’t put irrelevant comments under my post.
Thanks.

1 Like

Maybe show what you have tried yourself for starters…

You can’t expect people to just show you how it is done on these forums.

But i’ll point you in the right direction; look into the get parameter value by name node.

I can get the area of all the walls using “Elements.get.parameters.by.name” node. My problem is how to filter those values that are related to interior walls because I’m looking for exteriors only.

You should FIRST filter your Walls.
In example; you can filter by the parameter value ‘Exterior’ (depends how things are setup in your Revit project).

Look into Filter by Boolean Mask.

One possible approach:

  1. Collect all the walls with an all elements of category node
  2. Get the wall type for each wall, a necessary step as the use is a type parameter
  3. Get the use parameter for each type. Note that this may return an integer value, where the value corresponds to a selection in the list options (ie: foundation, exterior, interior, soffit, etc. would map to 0,1,2,3,4…).
  4. Test these values for being equal to the target value (ie: if you know one exterior wall has a value of ‘4’ then you want a Boolean of true for each value of 4, and a false Boolean for any other value.
  5. Use the list of Booleans to filter out walls in the original list of walls (the instances from the all elements of category) to remove walls which do not have a type with a use that is ‘exterior’.
  6. Get the area of the wall with an Element.GetParametervalueByName node. This will give you the value stored in the instance’s area parameter, which is usually mostly correct some of the time on occasion (just in case the many qualifiers I put in there didn’t make it abundantly clear: I wouldn’t blindly rely on that number).

Dear Jacob,

Thank you so much for your help. Would you please explain what do you mean by “use parameter”?
I attached a screenshot of my work. I calculated the area of windows perfectly, but still cant filter the walls.

The ‘use’ parameter is actually called ‘function’. So get that and determine what each numeric value relates to internal/external/other types and go from there.

Alternatively, there’s a node to acquire the wall function when given a wall type input as part of the Orchid package.

Thank you Hamish,

Would you please tell me what should I exactly search to reach that “use” parameter or “function”?
I will download the Orchid package as well.

Element.GetParameterValueByname is the node you want. The parameter name input should be “Function”, as a string. :slight_smile:

Definitely feels like you might be biting off more than you can chew in a hurry though - you may want to do some crawling and go though the Dynamo Primer before you jump into building a graph from scratch.

Get the wall type for the wall element, then use GetParamaterVal… nodes as you’ve being doing elsewhere.

1 Like

Dear Jacob,

I totally agree with you. Our professor just taught us some basics and asked us to this in our project, that’s why I’m trying my best to do it.

Actually I did exactly what you said, and I received a list of (0,1,…45) which are the indices of wall lists.

That’s a list of 46 items, with no value at any point - 46 empty strings.

You need to pull the wall type first (step 2 in the outline I provided).

Yes, I understand that I’m missing part 2 of your list.
I dont want to bother you with my primitive questions. Is this what you mean?:

Probably, the one who created the Revit model, set the functions for all wall types as “Exterior”. That’s why I got all the values as 1.

Thank you so much Jacob for your help. Finally, I did it:)

1 Like