At Virtual Built, we typically create a federated Revit model for every project we work on. This allows us to run a host of automated processes on the links, right from the federated file.

Recently we received a dataset for a high rise building. The Architect had used 5 typical linked ‘module’ files, copied throughout a master file.

Initially, I used a Dynamo script to collect all the link instances into a saved selection set. I could then copy / paste aligned the link instances into our federated Revit model:

Link Instances to Selection Set

 

The Problem

This works fine, but in this models there were also nested consultant links inside the Architectural linked modules. So we have:

Architectural container file -> Architectural module files -> Consultant nested links

 

We want:

Federated Central file -> Everything else (no nested links)

 

Next challenge: how can we quickly promote those nested links into our federated model? Well, we currently have the module files populated, so how can we leverage those positions to promote the nested links?

 

Promoting Nested Links

It is a bit hacky, but here is how I went about it. For each module file:

  1. Create an empty proxy file (New Revit project, no template)
  2. Open the Module file and resolve all link paths (so they are loaded)
  3. Set links to Attachment
  4. Copy / paste the link Instances from the module file (Level 0 or Base Level) into the empty file (Level 1, default level). You can use Dynamo graph above.
  5. Save the new proxy file as ‘ModuleContainer’ or similar. We know have a file that only has link instances in it.
  6. Open a detached copy of the Federated Central file (you can save as temporary copy if you like)
  7. Manage Links
    • Select the current Module file,
    • Reload From,
    • replace with the ModuleContainer you created. Once you have done all the modules, you are ready for binding as described below.

After populating the detached Federated Central file, we just need to Bind and then Copy / Paste the free instances:

  1. After load, Bind the ModuleContainer files to the detached Federated Central model
    1. To do this, right-click on the file in Revit Links in Project Browser

    2. Select All Instances – In Entire Project
    3. In the Ribbon, click Bind Link
    4. Untick Attached Details, Levels, Grids
    5. Click Remove Link when prompted
    6. Your nested links are now promoted!
  2. Optional: Ungroup all of those bound free instances (select all from Project Browser, Ungroup in Ribbon)
  3. Open the real Federated Central file
  4. Copy / paste the populated free instances from the detached Federated Model to the real Federated Model. Use the Dynamo script to collect them.
    Tip: Paste into a closed workset for better performance.
  5. Close the detached one, and sync the real one

The only thing we technically ‘broke’ or lost in this process is the module link->nested link relationship. So if someone decides to move one of the nested links in the module link, obviously that won’t replicate into the Federated Central file.

Hope this helps some of you out there building or dealing with large federated models.

 

Revit gets a new version every year, and every year we theoretically have to upgrade our Revit files. If you are a pro-active BIM Manager, you also have to upgrade a bunch of families and other files. If you are working on certain large projects, maybe the updates are deferred for a year or two, and then you find that you have to upgrade about 800 Revit files from Revit 2015 to 2018. Obviously, they all have to upgraded at once to maintain the integrity of the data and the workflows. What is the best way to do it?

I investigated a few different options and my notes and links are list below. In my case, I decided to go with RTV Xporter Pro and its File Upgrader option. It is an extremely affordable addin (currently $49USD), considering the amount of batch processing functionality that it provides.

The very first thing to do is ensure you have a backup. In my case, I had a complete offline mirror of the Revit files, and I ran the upgrade against that mirror. Then, I could just overwrite the live network location once I confirm that everything works as expected.

I would say that another thing to do is to create some form of data snapshot of your Revit models prior to upgrade. I have a method of doing this which is pretty powerful, but its a secret (for now).

Here are the steps to upgrade a Revit dataset using RTV Xporter Pro 2018:

  1. Set up a File Upgrader XML file (my settings shown below). As you can see, I chose to Detach and Audit and then Save the file over the top of the current file in the same location. This way, all of the Revit links should be maintained once the whole dataset is upgraded to the new version.
  2. Open Xporter Pro link from Revit
  3. Create Task Schedule
  4. Import the Upgrade XML as a Batch Process
  5. Set the Revit EXE location for the target version
  6. After saving the task, open in Windows Task Scheduler and you can run it immediately.

The screenshots below show the important stuff from the above steps.

1) My RTV Xporter Pro Settings:

3) Creating the Scheduled Task:

4 and 5) Load Batch Process XML and Set Revit Application, like for 2018:

6) Running the Scheduled Task:

Tip: During a typical file upgrade, Revit will often come up with warnings. If you run the RTV File Upgrader task in Interactive mode, you will get the dialog box which requires user interaction (export warnings and proceed past the Revit warnings). However, if you run the upgrade from the Task Scheduler, it will automatically dismiss the warnings for you as it upgrades. Some examples are warning dialog including errors like ‘could not cut instance out of wall’. In the Scheduled Mode, this process will all happen unattended.

This is what it looks like as it upgrades (scheduled mode):

This is what it looks like as it upgrades (interactive mode):

Update 10/1/18: RTV Xporter Pro can define rules for dismissing dialog boxes, in the Task Dialog Settings. See below:

end Update 10/1/18

You can get RTV Xporter Pro here

There are other addins and ways to upgrade. Here is a pretty comprehensive list:

Paid Revit Addins:

  • Harry Mattison has built a powerful Bulk File Upgrader addin that has a lot of good reviews on the App Store. You can find it here.
    Current price: $99USD
  • BIMWERX Batch File Upgrader. Very simple UI and good reviews. You can get it here.
    Current price: $10USD
  • NTI Tools have a File Upgrader. You can get a trial at this link. You have to register and then get an email with the download.

Previous posts:

These previous posts show some other pretty useful methods to keep in mind…

Upgrading with RTV Xporter

Upgrading with eTransmit

Upgrading with File Upgrader (previously provided by Autodesk)

Batch Upgrade Family Templates by Renaming Hack

 

Batch Upgrade Families with Dynamo

Using this definition or the Rhythm node, as per this forum post.

Content Batch Utility Help Link:

https://knowledge.autodesk.com/support/revit-products/troubleshooting/caas/sfdcarticles/sfdcarticles/Upgrading-old-families.html

Old Maller tweet:

Aaron Maller

http://t.co/O0eqcPo8t1
Upgraded Batch utility and journal for Fam upgrades. Does TPS of OS/LW/LT, and does Parameter Re-order in 2015.

Dead link?

Even older links:

http://www.revitforum.org/architecture-general-revit-questions/1971-updating-content-2011-2012-a.html

http://www.revitforum.org/architecture-general-revit-questions/1976-revit-2012-a.html

http://forums.augi.com/showthread.php?83775-RVT-file-batch-Upgrade

 

Batch Utility

This Batch Utility is usually available on you Revit installation media:

“C:Program Files\Autodesk\Revit 2013\Program\en-US\Utilities\ContentBatchUtility\Upgrade_RFA.bat”

 

Old re-post:

Run this utility, then run the Family Categorizer – instant and up to date Family Library!

The Revit Jedi: Batch Upgrade Utility

 

Feel free to comment with your thoughts.

In Revit, each Link is bound to both a Type and an Instance. So you can have one Link ‘Type’ – relating to a single RVT file that is linked into the project. But it can be placed multiple times in the project, thus having multiple instances. In workshared projects, the Type and the Instance can belong to different Worksets.

Did you know you can use Linked Views to display two identical copies of the same linked model in different ways?

To add control, you should create 3 worksets – 1 for the Type, and 1 for each Instance, as shown below:

Then, set up two different Linked Views in that linked model. In this particular case, I want to use a model converted from ArchiCAD to a single Revit file. But I want to be able to separately load and display the Site objects, and the Building objects. So I have an Link Instance for each, and linked views for each. The whole rig can be seen in the image below.

Using the worksets, I can separately Load / Unload each Instance (closing a Workset unloads any Link instances on that Workset from memory). And using the Linked Views and Overrides for the Instance, I can display each instance as I like. I can also load both instances and show both in a ‘combined’ view.

Final note: Link Instances can be located in different positions in the Host model, and they can have different Shared Coordinates. Using the methods above, you have a lot of flexibility to be able to use a single linked Revit model in many different ways…

A federated Revit model is a model containing many Revit links, and they can be quite slow to work with. There are a few steps you can take to speed things up, and one of them is creating a set of fast view types and a related view template.

Here’s how:

  1. Make a View Template called “No Model” and untick all the Model categories in that Template
  2. Make a set of View Types called “Fast Plan“, “Fast Section” and so on
  3. Set the View Template for those Types to the “No Model” template you created

Now, when cutting sections or making new floor plans using these ‘fast’ view types, the view will generate quickly without any model elements. Then, you can decide if you want to switch view templates / types to something more useful for coordination or documentation.

Ok, two unrelated issues here, but both are along the lines of “weird stuff that happens in Revit that can be fixed but doesn’t always make sense”. If you use Revit long enough, you will certainly come across issues like this…

Firstly, certain Electrical penetration families were not tagging for height when using Spot elevations. These elements were in a model, which was linked into another model. The fix? Super weird one. Try turning on Lighting Fixtures in your View (in the host model). Then, those spot elevations worked… Even though the penetration family was a Generic Model with Nested Mechanical Equipment inside a link file. I’m thinking this one was either an upgrade error, or perhaps the families had some earlier history as a Lighting Fixture?!?

Secondly, I came across a Structural Consultant Design Model in Revit 2015 that doesn’t want to upgrade to Revit 2016. This is due to some corruption inside various families. Here are a few things to try… along with the ultimate solution.

1) Try opening the model in the newer version of Revit with Detach and Audit ticked, and choose Specify from the Worksets dialog dropdown. If the Opening Worksets dialog appears, Close all the Worksets and press OK. Then, Detach and preserve worksets. You should see the Model Upgrade progress dialog.

This fails with the following error:
The file cannot be opened. There are too many elements missing in it. Please contact Autodesk Support.

2) Next steps are more detailed and resulted in a successful upgrade:

1. Open in 2015, with Audit and Detach, no Worksets open
2. Save As
3. Open in 2016, with Audit and Detach, no Worksets open
a. Delete families when prompted (as you can see, it is one problem Rebar family)
b.

c. Ok to mass errors:
d.

e. Click to resolve Join errors
f. 

4. Save As
5. Setup starting view…

And here are some model tidy-up steps that I did, just #GoodRevit with some Dynamo:
6. Make these worksets:
a. Hide-CADs
b. Hide-Topo
c. Link-Control
7. Move DWGs to workset by:
a. Getting Ids in Dynamo
b.

c. Group
d. Change Workset
e. Set workset invisible
8. Move Topo to workset and set invisible

9. Acquire Coordinates from Control Model
a. Copy / paste control model from current ST file to this upgraded one
b. Link neutral coordinate file
i. Acquire
c. Then acquire from BMGR control file
d. Save

Finally, sharing with team:
10. Save to Box
11. Open in Fed
12. Glue