Using Dynamo and EDGE^R to Create Custom Material Takeoffs in Revit
With Revit out-of-the-box, creating material takeoffs for precast pieces that contain multiple materials, such as a face mix and a back mix, can be challenging especially when you are trying to account for the unique material volumes for all pieces and any corresponding add-on concrete in the model. Using a combination of EDGE^R and Dynamo makes this task simple!
This method will allow you to get volume counts for the entire project, including all structural framing members and any associated add-on concrete as well. The first step is to make sure that all precast concrete members have the appropriate piece marks assigned to them. This can be accomplished by running the EDGE^R Mark Verification Initial tool which will assign piece marks values to the CONTROL_MARK parameter on all structural framing pieces in the model. Next, you would want to run the BOM Product Hosting tool. Doing this will ensure that all add-on concrete is associated with the corresponding structural framing member. The BOM Product Hosting tool does this by finding the structural framing member that an add-on concrete family instance that intersects it then assigns the CONTROL_MARK value from the structural framing member to the BOM_PRODUCT_HOST (BPH) parameter on the add-on concrete. We will ultimately be creating a schedule at the end of this that will utilize this BPH parameter to get material volumes for individual piece marks. The problem with this is that the EDGE^R BOM Product Hosting tool does not write BPH values to structural framing elements, so this is where Dynamo comes into the equation. You would need to create a Dynamo script that takes the CONTROL_MARK from the structural framing element and writes that value back to the BPH parameter on the same structural framing element. A script such as the one pictured below accomplishes the previously described behavior. Once a Dynamo script such as the one below has been run on the model, all structural framing pieces should have the appropriate values assigned to their BOM_PRODUCT_HOST parameter.
Now you're ready to create a material takeoff schedule like the one pictured above. Start by creating a new Material Takeoff which is under the Schedules drop-down in the View tab. Make sure the Multi-Category option is selected and proceed with creating the new schedule. In the next window, you will need to add the following parameters to the Scheduled Fields section: BOM_PRODUCT_HOST, Material: Name, and Material: Volume. Switching over to the Filter tab for the schedule, a new filter will need to be added as follows: Material: Name contains PRECAST CONCRETE. To create a schedule that is formatted like the one listed above, refer the below image for the appropriate settings to apply in the Sorting/Grouping tab and Formatting tab within the schedule settings. The end result should be schedule that displays all the precast concrete materials associated with each piece mark, a volume for each unique material, and a total volume for that piece mark grouping.