Sunday, June 3, 2018

Getting Rid of Stubborn System Family Using Revit Lookup

It all started with a tweet posted few days ago. Kieren Porter (@snowyweston) posted an image about some nasty system family type in the project.

It got my attention simply because I was in the middle of dealing with the exact same issue from one of my projects. I have been told this is a known issue by Autodesk and it is fixable. However, it was going on for weeks to try to have their support team to resolve the issue. 

So, what's the big deal, you might ask!? For some unknown reasons, these "rogue" family types starting to come up from nowhere and it created many types of tick mark, dimension style and text style on its own. All of a sudden, you have these non-company standard styles in your file, it really becomes an annoying issue. 

There is a number of ways to get around these issues, you can rename these dim style with "z" "Do no use" so user will avoid using them. Some dim styles can be purged using "Purge Unused". To get rid of them once and for all, it is not as straightforward. The reason being is that they are system family buried deep down in the Revit file, you can find the instance of the elements but its type will stay within the file.

From the same thread, people have responded with a few solution. Some said to use #dynamoBIM like John Pierson or using a 3rd party solution like Ideate explorer. **(For the record, I have not tried these yet as of the published post)

Out of my curiosity, I thought this could also be done using Revit Lookup.

I was introduced to Revit Lookup by my previous colleague like a year ago. Initially it was for me to understand how Revit organizes each group/type of elements under the hood.

To troubleshoot the issue, I first place a "rogue" type of dimension in a view (it can be any view including drafting view). Select the dimension (or the element), go to Revit lookup and choose Snoop Current Selection.

It reported a list of information associated with this element, it looks something like this...

2 items are important to know:

Id - which is the Revit element ID   (Instance)

GetTypeId - which is the Revit family type element   (Type)

Usually, it is the type ID that is "under the hood" so user would not normally get to it.
Now that I identify the type ID for this rogue dim style, I can use Select elements by ID from Manager tab

Type the type ID number in the field, once it is selected, hit Delete! It prompts me with a warning, hit OK. 

That's it! It is gone for good. (Hopefully)

Like I mentioned above, there are more than one way to resolve this issue, I thought this might offer a different approach.

You can learn more about Revit Lookup from this site to download the tool for yourself and it is free.

From Github

Revit Lookup Builds from 2015 -2019

Sunday, January 21, 2018

Making of Holiday Card - Part 1 (Christmas Light)

Happy New Year 2018! I have waited long enough to start this post to share the making of my holiday greeting card in Revit. I will choose a few components from the scene and I am going to break it down to a few posts. The first one is about the Christmas string light. When I first posted this close-up image, I have a few people asked how I managed to place so many lights. Did I place them one by one? How do I get them on the roof?

Of course I didn't place them one at a time. In fact, I talked about this trick when I presented at RTC North America 2016 (now re-brand to BILT). My class title named Railing, Railing, Railing was about the railing improvement in Revit 2017. (i.e. One could host railing to the top of the wall, floor and roof, etc.)

In the class, I showed some possible use of railing (other than the actual function of railing) in a Revit project.  I talked about how to "hack" the railing support family

The idea is pretty simple. You start a new support family, insert the light fixture as nested family.
Make sure the nested light is set to "Shared".

From the nested light, I have different types family set as different colors. This is to allow me to change the colors of lights in the scene. I wrote this post in 2014 explaining how to use this conditional statement to drive different material which allows me to change to variety of colors. 

Next, I create a new railing type that has no railing profile, baluster; only a Handrail Type. This handrail type has a profile family (Profile Round String: Radius:1/8") that mimic the light's cable; A support family assigned with fixed distance 4" spacing. 

Once this is done, I can place it like any railing. It looks something like this:

Using Pick New Host, I can easily place the light (railing) on the roof. 

Select the light, use array to copy a dozen of times. 

Here's the problem. All the light bulbs are the same color. Since I made the nested light family "shared", I can select each light one at a time to change the color. But who has time for that?

It's time I turn to Dynamo for help. I pulled up an old script I used to randomize material in this post and modified it a bit. Good thing is the Family Types node includes railing support.

Ran the script and I am good to go.

This is what it looks like with night setting in Enscape.

Stay tuned for the next post! Thanks. 

Thursday, December 21, 2017

Season's Greetings 2017!

Another year has gone by fast! I wish all of you have a Happy Holiday and Happy New Year in 2018!

To follow my tradition, I have been working on this holiday project on the side. It has been a good learning experience this time using both Revit and Enscape. It is definitely changing the way I use Revit as design and rendering tool.

Detail close-up

Night scene with signage lights on

I want to specially thank my colleague Carina, Aaron, Keith and Joe, who inspire me and help me on this project.

There is more...
If you want to see more of what is done in this scene, check out the links below!

Enscape .exe file

Download the exe file. Simply double-click the file to open it. There is no need to launch Revit.

Stereo Panorama

Stereo Panorama can be viewed via web browser (Chrome recommended) or your phone. It will work if you have a Google Cardboard too.

I am planning on doing a write-up on the "Making of this Revit project". Stay tuned!

Tuesday, March 14, 2017

Wall Opening - What's New?

I stumped something new just few days ago as I have never paid attention to the native opening tool in Revit. I wrote this post back in September 2015 about some common methods I use when it comes to creating openings in Revit. Wall "opening tool" is one that is easy to use but has limitation as well as issue with room bounding detection.

What's new in 2017 version is you can apply wall opening while you have the wall selected. It works in both Curtain Wall as well as Basic Wall.

Wall Opening icon is in fact available in Revit 2017. The very same icon was always there but it used to be grayed out in the previous versions.

I am not even sure if Autodesk documented this "improvement" in Revit 2017.

With this easy access to the tool, you can insert an opening to curtain wall more efficiently. I am not a big fan of using this tool but it is quite handy if you need to apply opening to Curtain Wall.
Hope you will find it useful. 😉

Sunday, February 12, 2017

Vetting BIM content for your office

During the recent workshop at my Midwest offices visit, this same question was raised many times during the discussion. "Should we be downloading and using content from other websites for our project? If so, how do we know they are "okay" to use?"

Revit content has always been a popular topic throughout the years. Although many manufacturers have caught up with providing content for designers to use, they are not created equally. When the occasion arises where I need to "use" the content that I find from any website, I always go through this set of rules to vet the content. Below are the criteria I use to make my own assessment whether the downloaded content is good before I decide to make my own.

This is solely my own opinion and you should make adjustment to see it fits for your use. In addition, I use this logic when it comes to working on large scale projects/models. This can apply if you are the person managing the company's Revit content library.

**Edited on 2/26/2017** Family Category added.

Imported Geometry

Impact Level: 👎👎👎👎👎

This is probably my number one rule where no imported geometry whether it is from dwg, sat or skp format is allowed EVER. Period. You can't modify the geometry at all, can't apply material to the geometry (and set as instance parameter for material; although you can apply material through Object Style as a workaround). It comes with all kinds of baggage and will impact your model performance downstream.
I would avoid using family with imported geometry at all cost.


Impact Level: 👎👎👎👎👎

Usually this is the result when there is an imported geometry introduced to the family, it brings all the "layers" from the CAD file and it turns these into sub-category under Imported Categories tab in Visibility Graphic setting. By loading the family to the project, all these sub-categories will carry over to your model; overtime, when you have other families with these rogue sub-categories, they will increase your filesize of the overall model.


Impact Level: 👎👎👎👎👎

I have seen this becomes more and more of an issue from families provided by manufacturer. The content from the manufacturer site will be modeled to match the "exact" size and shape per the specification, down to the nuts and bolts details. While having content with this kind of details could be useful if you need to take your scene/view for rendering or VR use, it will again weight down your model and navigating in 3D view will become significantly slow.

This family has geometry down to every single metal rod

(Unnecessary) Nested Families

Impact Level: 👎👎👎👎👎

I came across with these kind of families from many sites even some from the manufacturer. Essentially, the content creator of the family has no idea what they are doing at all. It has many nested families embedded in the host family but do not serve any purpose at all. The example below has over 17 nested families that are not being used at all; A "Door" family is nested into this chair which should not be there in the first place. The family size is over 5M, which is 5 to 8 times larger than the desired file size.

Raster Image

Impact Level: 👎👎👎

Raster images are another offender to contribute to large family file size. When I build my own content, occasionally I need to refer some images from a product or design for references, I could import the image to floor plan (or elevation view) and size the image accordingly. If you have images imported for any 3D family, the raster image will not display once you loaded in the project, it will only be stuck in the family. Hence, they can increase the file size too.

(Unused) Material

Impact Level: 👎👎👎

A few years ago I downloaded a chaise lounge family from a user community site. It was a nicely done family. When I examined it, there were over thousand materials in this family. Back in previous versions in Revit, you couldn't delete material using "purge unused", you could only delete the material one at a time in the material browser. *Now you can simply use Purge Unused.* Excessive material not only added to the family file size, they will migrate to the project file as well.

Filled Pattern & Line Patterns

Impact Level: 👎👎👎

From the same chaise lounge family, I was able to find hundreds and hundreds of Filled Patterns as well as Line Patterns, they will also contribute to the family file size overall.

(Too many/too less) Parameters

Impact Level: 👎👎

A good family should have parameters that are relevant to the family; For instance, family with material parameters that represent the geometry will allow the user to modify material in the project. Other parameters like width, length, depth of the family can be scheduled in the project.

On the other hand, having too many parameters can be confusing too. If it is a parametric family, having too many parameters require the user to understand how to leverage or modify the value when needed. Manufacturer families come with many (shared) parameters that populate the product information; many others are supposed to use for FM. Unfortunately, different manufacturer has different naming, organization for these FM parameters and it is nearly impossible to use them cohesively in a project. I normally would delete the parameters that are irrelevant to the users.

Family with no parameter or value defined 

User needs to have a good understanding in order to use the family properly. 

Level of Details

Impact Level: 👎👎

Many manufacturer offered families like to create the family with "Coarse", "Medium" and "Fine" level of detail. While this might be a good idea, it always causes confusion to the users. Often times, the coarse level of the family is nothing but a box; this could be easily misread as something else in a project when your model has tons of elements in the space. I generally go to family editor and get rid of the geometry that associates with coarse level visibility setting.

Family Category

Impact Level: 👎👎

Another common issue from downloaded families are set to be the incorrect Revit category. One way to easily identify the category is to open the family in family editor, click the Family Category and Parameters icon. The example below shows this chair is set to Generic Model category. This will become an issue once it is loaded to the project, such as scheduling as well as Visibility/Graphic Overrides setting.

Insertion Point

Impact Level: 👎👎

Never let the 3D view fool you. I know first thing many people do after downloading the family is to use it in the project. Before you do so, always open the family in family editor and check the other views (ref. level, front, right, left...). I have this dumbbell rack family many years ago. While it looks decent in 3D view, it is not properly done. The insertion point (default insertion point is the interception of the vertical and horizontal ref. plane) is not centered in the family. When I check the front elevation, the entire rack is rested below the ref. level (finish floor) in the family. What it means is when I place this family to the project, it sits below finished level.

Reference Planes

Impact Level: 👎

This has nothing to do with file size but just good practice. Only set the reference plane that matters to the followings: Front, back, left, right, center (front/back), center (left/right), weak reference & strong reference. By assigning a ref. plane to any of this property will allow Revit to snap/dimension to adjacent element when selecting the family in project.  Turn all the others to "Not a Reference"; this way, Revit will ignore it. On the other hand, if the family has many ref. planes and all of them are set to "weak reference" or something like that, Revit will try to snap or dimension in the project. This could result in inaccuracy in the model. Steve Stafford has a good blogpost years ago to explain much more in depth about the purpose of ref. plane.

To conclude, I hope this provides some good guidelines when you choose to download families from any site. You should always do your due diligence to validate the family prior using it in your project.