Monday, January 28, 2019

Mark Number tools

If you are like me you liked the mark number in Revit automatically assigning a number. problem is that it did not like duplicates, which if I had to guess is why it was removed instead of "fixed".
This left my company and several others that relied on this format with a giant hole in the process. We needed the mark number to identify the specific segment of a raceway. Items were cut and labeled and then grouped or pre-assembled for our field team.

So recently I wanted to tinker with Dynamo and try to make a tool for our Sheet Set team. Since we had changed to manually adding the mark numbers it seemed like I could certainly speed that up. We categorize on number system

Strut and Hangers start at 1000
Wireway starts at 2000
Cabletray  starts a 3000
Pull Boxes start 5000

So we had 4 schedules set to itemize every instance so all the mark values can be seen. Then the team member would have to label every mark number consecutively. (Still time consuming)

So here is what I came up with for our needs.

First we need to pick the category of family , in our case the conduit fittings. Since we want to run this process for the whole model we pick the All elements of a Category  node.

Now we will run through a few node filters to narrow down the results of what to modify.
We will use a similar combination in 3 consecutive portions of the dyn

The 1st section is Element.GetParameterValueByName. We need too evaluate the Mark Number in the selection list to proceed. We want to make sure that the value is null or empty so we don't overwrite an existing value. We are comparing X to Y (==)and if they come up with an empty value then they can continue. This gets applied to the List.FilterByBooMask . the in and out are kind of weird but know that the in contains the elements we want (and is going out of the node LOL). You can place a watch node to see the variations in lists.

The next filter is looking for  one of our shared parameters that helps us narrow down a grouping like mentioned above. Here we want the shared parameter  CATEGORY (you may have make something similar). The Value we want is WIREWAY in this example. Compare X to Y (==) and send to the List.FilterByBooMask .

Since we are dealing with cut length lists I want to utilize another shared parameter to filter my selection again. Here I am asking for Null values of length to be removed with a (||) operator.

In the next stage  we are going to count the objects that need a new number. This is a List.Count That goes into the amount input of the Sequence Node, The Code Block with the start has 2000 as the starting value for my renumber. ( You can add your own spin on it based on your codes) The step input  is 1 so it will use consecutive numbers. you could enter a 2 or 5 to jump up incrementally.  Pull the seq to obj input in the String from Object Node.

Finally add the Element.SetParameterByName node and then apply it to the Mark.

With the schedule open in Revit I can now automatically add in seconds a sequential set of numbers.

Have fun with it!

Rick Buckman

Tuesday, January 30, 2018

My interview on Bridging the gap

Please check out my latest interview with Todd Weyandt on the Applied Software series Bridging the gap.

Bridging the gap interview

I will be placing some more tutorials as time permits on making and structuring Revit families. I have been super busy this last year but hope to get back to blogging regularly again in 2018.

Topics I hope to cover..

Why I use certain families as a staring point

Can you use geometry from a vendor

Parameter building time savers

Connector placement tricks and tips.

Check back this February  as we dive in to this upcoming blog series.

Tuesday, August 1, 2017

Dynamo for Bottom of Conduit Tagging

Dynamo for Bottom of Conduit Tagging
So I had a client ask about tagging for bottom of conduit. Here is a brief look at the process I followed for doing this in Dynamo. We can assume using conduit families that you will get different behaviors. Our catalog is in the Conduit Fittings realm, so this will be geared at using those. You can modify this if using system families. There is an Offset value that we will be tapping into as well as a Shared parameter we will call BOC. In addition we need the “Fitting Outside Diameter”. We are using the full diameter because we can take and modify this same code later and repurpose for Top of Conduit tagging as well. The Objective of this is to tag in Plan view all the conduits by Bottom of the conduit.

In our Library of conduit parts we have a parameter already named Fitting Outside Diameter. Any components added in a project will also utilize the Revit offset value as well. The only thing needed is to add BOC shared parameter. You can add it individually to your parts or add it at the project level to your family grouping. This is a length parameter by the way.

Now let’s begin walking through the Dynamo Nodes. First you need to capture the category of the family. Use the Categories node and select Conduit fittings. It will then tie into the All Elements of Category node.

Next we set up the Fitting Outside Diameter. Use Element.GetParameterValueByName 
We will need a string for the parameter name we are searching for in the family. Like I said above we already have the Fitting Outside Diameter so we will be using this. If you have something already that represents this. Use what you have.

Follow a similar process for the Offset value. The string is set to Offset.

So far it should look like this below. Match the inputs.

Next you need a Code Block. Use a formula first and then insert the inputs where they go. You are creating the naming of the inputs at this time. I used PipeOffset-FOD/2; . By doing this we now have 2 inputs in the code block.

Add the outputs from the Fitting Outside Diameter and Offset  Nodes(Element.GetParameterValueByName) from above. See picture below

Next add a Springs.NullSetParameter node. The string for the parameter is your shared parameter BOC.

When all is done follow the image below and double check your inputs. I test in manual Mode as well.

Now in the project we have some segments placed at different heights. We have also created a tag using the shared parameter and the size parameter. Next we tagged the conduits. It looks like this.
Notice there is no value on the BOC. Next run the Dynamo script we just made. It should look like this now.
So for workflow you select the conduits in a view and tag them. You would then run the Dynamo and update the tag. If a conduit is relocated or moved to another height. Just run the script again. To make a version of this for TopOfConduit, copy the dyn file and modify the code block to PipeOffset+FOD. Hope this gives you some ideas on other things you can autofill in your parameters.

Rick Buckman

Thursday, September 29, 2016

Create Family clearances that will can be controlled in Navis and Revit

Create Family clearances that will can be controlled in Navis and Revit
In some projects you are asked to show clearances for equipment. So you may think fine I will draw a box to represent the clearance and it will grow with the component etc. Before doing so think about a few things. Do you need to be able to segregate or turn off this Clearance in Navis Works or produce Views that can control it in Revit. Here are some options for you.
First Create a Sub category in the Family level that you will use throughout the project as the Norm or create this name at the company level so that in any project this is a recognizable name. If you have variables of this name, it will be case sensitive and you will gain additional instances in the Project.
Now create the standard definitions of line type and color to signify your clearances. You can also define a custom material at this level. The Next step is to draw the shape for clearances. Assign the constraints to the shape and dimension parameters to your liking. Then Assign 3 things
·         Material
·         SubCategory
·         The Visible (Parameter) Usually a check box. I recommend a shared parameter on this as you will be able to now control all the families containing this simultaneously and control them.

Once these items are clarified load the family back in and take a look at the parameters at the project level. If they look good, great go ahead and test them out. If all is good let’s move on.

Next create a view that has all the families that have the clearances. You can now show all of the families and set up a view template in this view or just adjust the Visual graphics. You could use this view as a dwg export that will be JUST the clearances of the equipment. By doing this you give the Responsible party a means to tweak how they perform your collision testing. It has been my experience that many say they want the clearances but as time goes on in the project they pressure you top become more lenient so that these collisions can show up as resolved or ignored. The view you create will still be a good record of what is clashing so if you need to you can resolve these on a case by case. An example of the view in Revit will still initially show the families but you can adjust them in the export function by giving them a layer modifier.
Down lower on the list you have the “Modifiers” Which notice above is part of the new layer
Again double check you started your export from this new view we made. If you are in another view you will gain the entire model.
Also take note the Subcategories Are on Layer “Clearance” for the Clearances.

Now we have two methods you can follow. The first will be to open the file in AutoCAD.
Now we have a Layer for Clearances in the dwg file. Let’s Load it into Navis Works.
You will have a few layers to Hide but can easily get to them
Now override the Clearances if you want to transparent values. You can also adjust the color.
Now this can be there for inspection and be left out of collision sets very easily.
The other way if you don’t have AutoCAD is to pull the Revit file into Navis, or use NWC Export of that view. It could also depend on your deliverable requirements. NWC’s are way faster to generate. Revit Direct can take a long time to “Append” and “Refresh”.
To get to the clearances, they will be on their Subcategory you created for your Clearances.
They will be in this area of the Selection Tree:
You basically get an equal result as importing a dwg.

So with these options you have a better chance of keeping all the parties happy.
Stay positive!

Rick Buckman

Monday, September 26, 2016

How to Mix System family conduit with Evolve

How to Mix System family conduit with Evolve

We get asked the question sometimes. “Can I mix the two together”.  While I don’t suggest it, it can be done. There are a few things to consider. Have a good knowledgebase on Schedules and parameters. With this information you can bring together most items in with Evolve content and have it look good in a schedule. Let’s take a look at three runs in a project. One of the system type, one of eVolve content and one with a mixed bag.
Below we have sheet and some variations of scheduling for the out of the box system conduit. 

Take notice of the 4 types of Schedules that Conduit run schedule has the most to offer, Length, Type, and a Diameter. The problem lies in that you have to make the conduit schedules exclusive from the rest of your fittings and whatever else you want to buy.  In Conduit Fittings you can count the elbows but no real data. So you will wind up make a bunch of different schedules and crossing your fingers that you can pull it all in and not leave anything out.
Now let’s compare with the eVolve Run

Notice that there are 4 columns of data. UM for unit of measure, Count, Length and Description. In this count we are getting data for fittings elbows and pipe. The elbows and pipe have been brought together to record the length they also share the other parameters. This way we get one schedule with all the material and it’s nice3 and neat. You can also sort data by level or any of the other Shared parameters inside the conduit families.

Finally let’s look at a combined run of evolve and System Conduit.

The one half of the run is System and the other end has eVolve content. I Have 2 schedules that you can use to compare the data.

So How did we bring it together? Shared parameters at the project level. By adding the parameters to the Conduit we were able to select the grouping and do most of the assigning. The other thing was that the Revit Length parameter in the conduit had to be copied into the _LENGTH field. This is the only way to sync the information in a schedule.
Thanks for checking this out.

For more information on eVolve  go to

Wednesday, August 24, 2016

Flex and Conduit Part 2 Flex connector family

In part 1 we discussed the connector. Now in part 2 we will show how to make flex combined with the fittings you want and how to see it in material counts. The method we will use will combine a system family with our component families to later use in models or embed into a template file.  In house this method is used all the time. Let’s begin inside a Revit project.

Insert the families for the flex, sealtite or MC that we made in the previous blog tutorial.

Select the connector type you want use and the size you want. We are going to tie specifics to the system family to mate up with the fittings. Place an instance in a plan view. It should be something like this.
Next under Flex Pipes create a new “Type”. Since we are doing Sealtite in part 2 our types look like so.
We are making a 1” whip so we will size the types to meet the standards of Trade sizes.

For good measure I added insulation to this as well to get it up to the actual OD of the Sealtite.

 We used it so it is better visually.  The top version is with the insulation in Medium Detail. The lower just looks like train tracks….

Add any additional Shared parameters that you want to Line this up with your other material. We added a Description ,Unit of measure and Custom Length Parameter.

Add your connector to both ends.

Next select the set and Create a group.

Now select your group in the project browser and save the group.

Select the “Group to save” if you have more than one in the list. The file name will default to your group name.

Open the Saved group file. It will be an RFA.  Manage tab/ Purge unused. Purge all of the unneeded items and re save the file.
To insert this group into a current project or template Insert tab/ Load group as. Select the File and uncheck the boxes below to prevent debris from being loaded.

The new group will show up in the groups of your project.

To use it Select it and place an instance. VERY IMPORTANT. UNGROUP the group to modify the whip. To pull and adjust the whip select the grip on the outer part of your connectors and drag them.

If you want to flip the fitting to pull it another direction. Rotate the fitting. If you have Evolve you can use the “Rotate X” and ”Rotate Y “shortcuts.

Tune in next time for part 3 of this tutorial. We will cover the listing and sorting and methods to save and support more groups. How it looks in a schedule, and there will be video on how to model and maneuver as well. Thank You.