Volume of materials from composed elements


I’m trying to get the volume of elements that have different materials inside a it’s family. For example, a steel column filled with concrete. Is it possible to extract the different volumes using Dynamo?

Thanks in advance.

Yes, but why not set up a material takeoff schedule instead?

Well, I’d like to make new parameters for each element where the volumes of the different materials are displayed in the properties bar. I also need to do this for previous projects, so automating it with Dynamo seems the easiest way to me?

Ok. Well it is doable but it is not something bug vehicular nodes exist for. The good news is that the entire thing can be done with Python without issue.

There are two api calls you need to make, both on the Element class.

  1. Element.GetMaterialIds to get the materials used on every element.
  2. Element.MaterialVolume to get the volume of each of the materials found present in the element.

You’ll need. Loop for the elements containing a nested loop for each of the materials which is found.

There are a few ‘gotch’ categories (railings, stairs, and ramps come to mind) which can double count volumes, so review the totals in the context of a schedule view.