Friday, 21 November 2014

Revit Ramdrive

Revit 2015 offers a nice performance increase over Revit 2014. But ofcourse we always want more more and even more. I am working on a project where I can't switch to Revit 2015 just yet. So I started to wonder what else can I do to get more performance out of 2014.

The project I am working on has a lot of links. While working I noticed my C: drive filling up. So I was wondering did Revit start to cache a lot? I checked the memory and I still had quite some free memory left. Revit saves it's cache files in the following location %temp%. 

Let's take a look at what Revit 2014 writes to this location: 
Revit has just started up and no thing has been loaded yet. Notice that Revit creates some placeholder temporary files. These are small so this should not hurt performance 
Let's load a workshared project with a lot of links. I do not open all the worksets just those I need.
Notice the new and big temporary files it creates? The information in these files had to come from the network to the HD. Bottleneck #1

To have a better understanding of what Revit is doing with the cache files and the memory I keep an eye on this temp directory and the taskmanager's processes tab. Apparently there is a magic free some memory button in Revit that looks like this.
Because this is what I see happening a lot. Notice how Revit is now using 2889 mb of RAM
Press the worksets button:
Notice how Revit is now using 59 mb of RAM
Press the OK or cancel button:
Notice how Revit is now using 979 mb of RAM
So far this works every time for me. I wish I knew what Revit just ditched and if other parts of Revit will react slower because it needs to reread this data from the cache files.

So far we know now that Revit cache's it's links. This is read/write intensive for the hard drive but only at start up. So far I have the impression that it creates them only to read. I don't see any changes in the modification date after I loaded those worksets. Which makes sense because you can't edit the links.
I also noticed that Revit prefers it's cache files to be a certain size. 2048, 4096, 8196 16.384, 32.786, 65.536, 131.072, 262.144. 

So back to the initial question how do we get more performance out of Revit. I remembered a trick that has been around for years. What about creating a ramdrive? (ramdrive) What if I would put the temporary files upon a ram drive. I used a free ramdrive version from for testing purposes. I also changed one Windows variable? The user variable that sets the location of the temp files. I set that pointing to the new ramdrive.

After a bit of testing I did notice some performance increase but not what I was hoping for. This got me thinking. Before I used the ramdrive those files were placed on an SSD. So basically the change I made was loading those files from the SSD to the CPU and now from RAMdrive to CPU. But if I observe how Revit seems to work with these cache files then it seems to do the following. Create cache files when loading project. It also seems to create cache files for files linked revit files that are on a closed workset. This data often tends to come from the network so the bottle neck is still the network.

Should I continue exploring a RAMdrive solution? Probably not, because of the following. I know that SSD can transfer a lot of data to memory fast. I did a simple test. I transfered 3,5 gb of large files (about 300mb each) from the ssd to the RAMdrive. This transfer spiked to 700 mb/s to later go down to a steady 400 mb/s I also tested with a couple of thousand small files 50kb. This transfered at an average of 70 mb/s. When I test the ramdrive with Revit I only gain a little bit of performance. This leads me to conclude that there is yet another bottleneck and that is the processor. 

I made the following conclusions
If you don't have an SSD in your system but you do have enough memory you might consider a ramdrive solution.
An ssd drive is becoming very important when working on large revit files. Network speed is very important.
File link setup and worksets structure in those files are crucial for getting a good performance. 

I think that the order of addressing performance bottlenecks are:
  1. Network speed
  2. Harddrive
  3. CPU
  4. Memory
  5. Revit knowledge
Good Revit knowledge will let you avoid running into the other bottle necks for a while but at some point projects just become big.

Wednesday, 19 November 2014

Project North don't do it!

Project North

English version of: project-north-niet-meer-doen

Several times I have written about coordinates in Revit. Recently I have seen a number of projects where errors with coordinates creep in. Often I see architects who get a drawing from the municipality drawn to coordinates and then they pick an interesting point in the drawing as an exchange point. This work quiet well in Autocad. I don't advise it for working in Revit.

First of all when you pick a point in you drawing you will get a point with lot's of decimals and therefore you will get differences in rounding when usinging different software packages. I suggest you create a point and you move it to rounded the coordinates. I have this little Autocad block that I use for it.

I also have to admit that in the past I have explained people how to acquire coordinates from a dwg. I have stopped teaching this and using this methode because it creates inaccuracies. I also have stopped with using Project North. I have experienced quiet a few annoyances when trying to set it up. I have also experienced some major problems in projects with multiple disciplines. There was one project were the BIMguide said that the rotation was 60.389° while the project was really setup wit these numbers: 60,38872747670°
Read this little excel example as follows:

Row 3 is angle α and row 5 is β
In row 2 and 3 you see the length set for x and in row 3 you see the lenght for y

So when α = 60 then x = 1000mm and y = 1732,05mm
If α wasn't 60 but instead rounded down from = 60.4 and x = 1000mm then y becomes 1760,32 mm. This is means that because of this rounding the differences becomes (f) 28,27mm. (btw verschil = difference)

In Row 12 you see the difference between if the angle is 60,389 and 60,3887. If X is a meter you can't tell the difference. But when X becomes 1000 meter than the difference is almost 2mm. This will make clashdetection a hell! How to avoid it?

Do not use project north for drawing orthogonally! Use scopeboxes! Also be aware Project north will only let you do one rotation per file. Scope box  will let you do as many as you can deal with.

Tuesday, 4 November 2014

Using schedules for checking

A simple trick today.

Schedules in Revit are great. You may also use them to check to see if you comply to specific project demands. For example I am working on a project where one of the demands is to add assembly codes to every family type. 

A simple schedule will help you find the ones you may have forgotten. The schedule will also let you fill them in very quickly.

  1. Create a multicategory schedule
  2. add the following fields:
    1. Family and type
    2. Assembly Code
    3. Assembly description (optional)
  3. do NOT include elements from linked files (You can't add information via a schedule in a linked file you have to do that in the file itself, obviously)
  4. sort by: family and type
  5. uncheck itemize every instance
  6. Optional:
    1. filter by: Assembly code equals blank
  7. OK

  1. click in the empty cells on the little grey button 
  2. select the right one!

Google+ Badge