Revit Dynamo — Maximum Bend&Length Electrical Conduit

Slava Krel
5 min readNov 30, 2020

Task Description

Recently I’ve been working on some electrical BIM coordination. One of the major tasks was being able to maintain a certain amount of bends in the conduit runs. There are pretty typical requirements for Telecom and Data conduits to have 180 degree maximum bend and 270 degree maximum bend for Power, Lighting, Fire Alarm, and Feeder conduits. It was basically looking for fittings in the MEP model, collecting degree angle data, and making decisions whether the conduit exceeds the max bend or not. In addition to this, there was a requirement to make sure we place a pullbox every 150 feet along a conduit run.

I’ve decided to “kill two birds with one Dynamo script”. If you think about different steps that you might want to take when putting together that script then I would follow these steps:

  • Select a conduit run
  • Filter out “fittings” vs “conduits”
  • Sum up fitting angles
  • Write parameter value (nothing/empty string if the conduit run doesn’t exceed maximum bend, and “Overbend” if it does)
  • Filter out the conduit runs with empty string parameter value vs “Overbends”
  • Sum up straight conduit lengths
  • Write parameter value (“Overlength” if the conduit run is “Normal” but exceeds maximum length or “Overbend and Overlength” if it exceeds maximum length and bends)

Here’s the full definition:

Prep Work

I’m going to give the problematic conduit runs different colors. Basically if the conduit run is good — doesn’t have overbends and the lengths between boxes is fine, the script will assign this conduit run green color. If the telecom conduit run have more bends than 180 degree — the script will assign this conduit run blue color. If the conduit run is too long — the script will assign this conduit run yellow color. If the conduit run is too long and exceeds the maximum bend — the script will assign this conduit run red color.

To assign the color I’m going to use Revit Filers in the Visibility/Graphics menu. To make it simple I’m going to use parameter Comments. See the picture below. You will have to create the similar set of filters in your Revit project.

Let’s build the script and see how it works

Step 1. Here I’m using a 3rd party node, so to get this script to work you need to download the latest version of Springs package.

Step 2. Normally we’d use “Categories” node to get all elements of a given Category. But I don’t want the script to process all the conduits in the project. I want to select a conduit run I need first and then process the script just for this selection. With that said, the first trick is to use the ꟿ Collect.CurrentSelection node from the Springs up to date package you’ve installed in step 1.

Step 3. Filtering out “fittings” vs “conduits” is quite simple — I’m going to check its Length parameter. If we are dealing with a conduit that has no Length then we know its a “conduit fitting”. No custom nodes needed here.

Step 4. Now we’re ready to check if the conduit run exceeds maximum bend. Remember, different systems have different bends requirements, so to simplify the script management process I‘m using integer sliders.

Step 5. In order to move into the second part of the script where we will be calculating conduit length we need to execute filter again. This time we’re going to separate normal conduit runs from the runs that exceed maximum bend requirements.

Step 6. To check if selected conduit run exceeds maximum length requirement we need to build two independent branches. It looks complex, but this is actually pretty simple and doesn’t need 3rd party nodes.

The first branch is going to check the length of the “Overbend” conduit run and if it exceeds the maximum length — the script will put “Overbend and Overlength” string into Comments parameter. The second branch is going to check the length of the normal conduit run. In this case, if it exceeds the maximum length — the script will put “Overlength” string into Comments.

Ending

If you followed along you can select a conduit run and launch the script. The script is able to filter out all the unnecessary items like connectors, panels, boxes and so on. Don’t need to worry about Lacing, keep it as is — in Auto. After the script successfully completed you will see selected conduit run has different color and all the elements of the conduit run has “Normal”, or “Overbend”, or “Overbend and Overlength” value in Comments parameter. Here is what it looks like in Revit if everything is correct.

Thank you for reading. I hope you find this post helpful. Feel free to download the script from my GitHub.

--

--