Filter pipes for hot water use, sum total length, export to excel

Good day :grinning:,

I am new in dynamo, and I am trying to make a dynamo for speed out some process.

I am in charge of thermal analyses of the projects. Sometimes I receive 3D MEP models in Revit and I need to:

  • know each pipe diameter (to calculate insulation)
  • Count the total length of the pipes used for distribution of domestic hot water from one side, and radiators hot water from another, to calculate the heat losses of each system.

This said, I have been watching some help threats and for now i can:

  • Have a list with system names, system type, reference level, and length
  • Export this to excel with a header list
  • I get to filter the domestical hot water but In the other hand i still export the length of all pipes when I only need the length of pipes used for domestic hot water

What I have not been able to do is:

  • Filter the whole list of pipes by a word like “ECS” (domestic hot water in French), I need to do this because in system type, pipes can have other names like, “EF.rdc” (cold water) and I do not want to include this in my export.
  • I need the filter to work even if ECS is just one part of the name E.G. “CH_ECS_Appoint” It is a pipe used for domestic hot water but with another name

My ideal workflow would be:

All pipes of project à filter 2 types “radiator hot water pipes” “domestical hot water pipes” à make a list of each and add LVL, length, diameter int and ext à make two worksheets on excel for each type (domestical and radiator)

Therefore, my 1st question is: how do I filter my list in dynamo so it only includes the pipes with “ECS” on the parameter “type system” (along with the others parameters).

https://we.tl/t-nOxzM12NSY <-- Revit
BACHELOR ECS CHAUFFAGE.dyn (22.1 KB) <-- Dynamo

2.dyn (21.0 KB)

I made another dynamo based on the REVIT MEP model Sample
any ideas on how i can filter the elements of categories before puting them on the list ?

Using your System Type’s name you can use a List.FilterByBoolMask node in conjunction with a String.Contains node.

In your case, you would put your list of pipes into the list input of the filter rather than the list of system type names.

Thank you for your answer!
But that doesnt really help me at the end, i get to filter what i want E.G:

But in the next step i cant make those filtered items to have parameter values like length or diameter and put them on a list (wich ill export to excel), how could i pass from the list filter to elements again so i can use them in “get parameter value” ? or am i taking the wrong path?

Currently, you are filtering the list of System Types. Instead, you should connect the list of pipes to the List.FilterByBoolMask node. See below:

WOOOOW amazing it was it! now i understand a little bit more the logic under dynamo.
By the way, we need to flatten the list of filtered pipes first if we want to transpose and therefore export to excel properly.
I was stuck on that and it took me a while.

Thank youuuuuu!!!

1 Like