Revit is an amazing CAD program. (And so is ArchiCAD, all right. I just happen to know and use Revit). Despite the fact that it has been around for quite some time and given the monstrosity of Autodesk as a company (therefore allowing it to push its products like no other), I feel that it has taken more than it should have to get Revit to the prestigious spot that it is now occupying. Of course, Building Information Modelling wasn’t as important as it is now, but I think that one of the reasons that made it difficult for Revit to shine (and allowed AutoCAD to still be lurking around) was the lack of sex-appeal, and I am referring to the quality of the draftsmanship it allowed us to produce out of the box.

For the majority of the architects, or at least, the ones that I know and have worked with, design expression is of extraordinary importance. So much so, that Illustrator/Corel have always been an inseparable part of all our submissions. The ability to control every bit of detail in one’s drawings is of such importance that, again, lots of people prefer to work in a 2D package than to take the world of benefits that comes with using Revit.

One instance where Revit has failed to deliver user control, where it is needed, is in the assignment of line weights for wall hatch patterns. I remember a project where we finally decided to overlay all of the walls with filled regions in order to achieve the desired look (it wasn’t my idea, but I played along).

Cutting to the chase, let me explain about the technical side of the problem. There are several system families that use fill patterns, for either their section or projection representation. The type of those patterns comes from the material of said element. So far we were able to override the color of the pattern (and indeed one of the “viable” workarounds has been to assign a grey color (to the pattern) in an attempt to give it a lighter touch). But we weren’t able to assign a different line weight to those patterns.

In theory, Revit allows you to change the default values for “all” object styles from the object style interface. For some reason, however, those hatch patterns are not among the categories that users have control over.

Here is an old thread in which the discussion revolves around another workaround in which pen 1, which is the default number for the patterns (trial-and-error) is set to the lowest possible value. And since pen 1 is the default for a lot more objects, we were supposed to beef up all the remaining values with +1. However, one immediate problem might be that, as with the hatch patterns themselves, there probably are more categories which line weight assignment has not been exposed. Furthermore, it’s one of that task that feels time-consuming in a debilitating kind of way. This is another approach, but it still doesn’t feel right to me.

The good news is that nowadays we have Dynamo! While setting up a company templates the other day, I remembered how pressured I felt trying to fix the same issue on a deadline before, so I decided to give it another go. I started by theorizing that I can programmatically increment all the line weights as described in the existing workaround. While I actually managed to achieve this, I was really surprised to find that now my hatch patterns were controlled by pen #2. It took a little bit of back and forth until I finally narrowed it down to just a few Categories that controlled those pesky infills. I was able to take control over 4 family categories – walls, floors, ceilings, and roofs. Each of those, in turn, had a surface pattern and a cut pattern property that I was able to override.

You can see this short video demonstrating the functionality of the definition. There is still more investigation that I need to do because I still have no idea how to override the values for the non-system families’ pattern infills.

Having said that, this definition can be useful to a lot of people out there just the way it is right now. You can download the Dynamo definition here. You would need to have Dynamo 0.90 installed, but that shouldn’t be a problem as it comes pre-installed with Revit 2015. If you have any questions, please feel free to contact me.

I have been doing work for a Doha-based practice for the last couple of days. It was a short gig, an in-and-out operation to help the team push through a rough deadline and since I was the one setting up their Revit Model just a month prior, I was in a great shape to take off the pressure off their team. The workflow was a bit more complicated, as we were working off a cloud repository, which allowed us to use the same Central Files, but required a bit of planning ahead. Aside from that, what I found quite annoying was the constant error messages that I kept running into – many times their inexperienced team would forget to relinquish certain elements, which would freeze my progress for short but increasingly more frustrating periods of time. I reached my limit of Skype requests soon enough, so I did the only natural thing – I Relinquished All Theirs. Here, let me show you how this can be done – it’s really quite simple.

By default, the username that Revit assigns is taken from your Windows login account. Let’s assume that your account name is ‘janeroe’. Your handsome colleague ‘johndoe’ from the 3rd floor has been playing with the Central File the night before and is now late for work. You get an urgent memo from your boss ‘hereyougo’ saying that you need to change the grid of the curtain wall system. You dash to your Revit icon, open the local file (which now takes 2 minutes in which you start to silently panic), Reload the Latest changes, as you should. You open the view, head to the curtain wall and the moment you try to unpin the first grid line, this error message greets you from the screen:

What you do next is the following:

  1. Open a new Revit session.
  2. Go to big ‘R’, Options and under ‘Username’ change the name to ‘johndoe’ (or whatever the name of the user that has the rights of the element is in your particular case).
  3. Go to ‘Collaborate’ tab, Synchronize with Central -> Relinquish All Mine -> head back to your other Revit session -> Reload Latest there and see if you can now edit the element. You should be.
  4. Go back to the extra Revit that you have opened with the ‘johndoe’s credentials. Close the file, change the user back to your original username and close the program. You can now keep working in your local copy.

You shouldn’t do that all the time or recklessly, those limitations were set there for a reason. This is a last resort measure that can save you at times of trouble. Normally, if you have your colleague within earshot, the right thing to do would be to ask politely for a Relinquish.

I hope that you find this tip useful! Have a great day and be nice to your colleagues.

Hey folks,

Today I am going to show you how to reveal all levels in a Revit project, because:

  • Have you ever opened an Elevation or a Section View only to find that your levels have miraculously disappeared?
  • And then opened every single section and elevation, but couldn’t quite figure where they went (pondering on the meaning of the words ‘propagate extends’ for at least few minutes)?
  • Googled ‘CAN’T SEE LEVELS REVIT’ to no avail?
  • Wasted time, money, hair and youth, but never got a satisfactory answer on how to make those pesky levels appear on your command? 

That scenario is so common that I finally took the time and came up with a bullet-proof, panic-free, robust solution that I now use every time the proverbial composting material hits the fan. I am going to explain to you how to do it, but I need to warn you that there are many reasons why something can be hidden in Revit and I am not going to attempt to cover all of them here. My favourite article on the topic is the 33 ways to find stuff, although you should know that this number is even higher. So, without further ado, here is the algorithm:

  1. Open your file, open a plan view, make sure that ‘Elevations’ and ‘Scope Boxes’ are turned on from the Visibility Graphics interface.
  2. Create a new elevation (View Tab/Elevation View) (it can be a section too, but let’s stick to elevations). Create a new scope box (View Tab/Scope Box).
  3. I prefer to do this in a 3d view, but you can do it in an elevation view just the same – your goal is to adjust the scope box so that it ‘contains’ all the levels inside its horizontal boundaries. This means you need to stretch the bottom and the top grid of the scope box – the bottom needs to be below the lowest level and the top – above the highest one.
  4. Now go to the newly created elevation view. Let’s take the worst-case scenario, in which no levels are shown. Create a new dummy level (shortcut ‘LL’). Don’t forget to delete this level after you are done with this exercise!
  5. Select the level and right-click -> select all instances in the project. (shortcut ‘SA’). You should observe that you have selected at least several levels.
  6. With all the levels selected, go to their Properties and assign your brand new scope box. You should now see all your levels neatly aligned within the boundaries of the scope box!
  7. In addition, you would want to repeat steps 5 and 6 for all your level types. Let me go back a bit – like any other element in Revit, levels can have multiple types. The command ‘select all instances’ implicitly says ‘of this type’ and therefore, in order to reveal all the levels in your project, you should repeat the above process for all level .. types (and so for all instances of those types).

That’s it! It wasn’t so hard, was it? What you would like to take home from this lesson is that scope boxes are a great way to control your datum elements and you should learn how to use them to your advantage. Of course, handling multiple scope boxes can be cumbersome, but that’s a topic for another discussion.

I hope you enjoyed this little Revit tutorial – have fun revealing all your levels!