RTV Tools

Thursday, November 18, 2010

Save All Families in a Project to RFAs and Folders AUTOMATICALLY

This is awesome.  Let's say you have a project with heaps of families in it, and you want to save them to individual files.  There is an API add on that does exactly this.  How do you get it and use it?

First of all, download this file (Chapter 24) from the Sybex resource page for the book Mastering Revit Architecture 2011.

Now:
  1. This is a ZIP file, so unzip the file.
  2. Browse in the contents to:
    \c24\ExampleApplication\ExampleApplication\bin\Debug\
  3. Copy everything from this folder to:
    C:\Revit Projects\
  4. Copy the two .addin files from the \c24\ folder to the correct location as shown below:
        * For a specific user:
              o For Windows XP - C:\Documents and Settings\\Application Data\Autodesk\Revit\Addins\2011
              o For Vista/Windows 7 - C:\Users\\AppData\Roaming\Autodesk\Revit\Addins\2011
        * For all users:
              o For Windows XP - C:\Documents and Settings\All Users\Application Data\Autodesk\Revit\Addins\2011
              o For Vista/Windows 7 - C:\ProgramData\Autodesk\Revit\Addins\2011
    Refer to this post at The Building Coder for more information.
  5. Restart Revit 2011
Now, on the Add-Ins ribbon, there will be a new section for the Revit Family Export Utility:












When you run this with a Project open, it will prompt you for a directory, and then it will save all the families from the current Project to .rfa family files, and it will put them into appropriate directories (by Category) for you!

This is a very cool tool - thanks to Don Rudder for his great chapter in the book, and for this excellent API demonstration.

Consider some ways you could use this:
  • Load a bunch of families into a project and get this tool to sort them into appropriate folders for you.
  • You have an RVT but you do not have the RFA files for families loaded into the RVT - use this tool to get them all out quickly.
  • Transfer all RFAs from one RVT to another by saving them out and then loading them all in at once.

26 comments:

  1. Sounds great, but I can't find these two .manifest files in the \c24\ folder :(

    ReplyDelete
  2. Sorry Predrag, they are .ADDIN files, not .MANIFEST. I'll fix the post.

    ReplyDelete
  3. Cheers for the post

    The add in worked well exported all the families to the file location i wanted but it didn't put them into appropriate directories (by Category). They are just placed at random in the file. Is it my mistake?

    ReplyDelete
  4. Brian
    Have you tried just using the default 'Exported Families' directory?
    It might help?

    ReplyDelete
  5. Hi Luke,

    Glad to see you got this one working for you. What ever were the issues back when we were talking through LinkedIn?

    Regards,
    Don Rudder

    ReplyDelete
  6. Don
    It was just one of those things that seemed to resolve itself...when I stopped messing around trying to build the thing and just used the debug versions, it worked fine!
    Thanks for your help, and for this awesome tool.
    Luke

    ReplyDelete
  7. I copied the files to the places as noted but keep getting a "Command Load Failed" error when I try to run the app. I am on w7 x64, sub adv pack, presumably this shouldn't be an issue as it should be a fairly common set up, but I cant figure out what else the issue could be.

    The other question is why copy the files to "C:\Revit Projects\" and not to the add ins folder?

    ReplyDelete
  8. The location is set in the .addin file - open it in a text editor and you can change the location. For example:
    C:\Revit Projects\ExampleApplication.dll

    ReplyDelete
  9. I got the errors can't find ExampleCommand and ExampleAppication.dlls. So I copied them directly into the C:Revit Projects folder. No more errors and I can access the addin toolbar. I set the default path to a local folder (easy to find) and ran the routine. It went through the motions but nothing got extracted. But upon further inspection, it ignored my specific path and it went to the default. But hey, at least it works!

    ReplyDelete
  10. Great post Luke!
    Very helpful add-in for BIM managers. One quick question if I may, and excuse my "noobie-ness", but why do I receive the message:
    "Value cannot be null. Parameter name: path", after selecting the destination folder and after pressing the export all families button? All seems to work fine after selecting "ok" to this message.

    Thanks and keep up the good work!

    ReplyDelete
  11. Need help here..

    I follow the instruction above but it appears "command load error".

    How can this be fix?

    ReplyDelete
  12. The location is set in the .addin file - open it in a text editor and you can change the location. For example:
    C:\Revit Projects\ExampleApplication.dll

    ReplyDelete
  13. @ Luke;

    Yep, I already do that but still isn't working maybe the .dll itself has a malfunction coz i try to open some files in Microsoft VS there's a lot of errors.
    I don't have enough knowledge in Visual Studio so I can't do to fix those errors.

    I really need to have these addins..Im using Win 7 64 bit..RevitMEP2011..

    Please Help me..

    ReplyDelete
  14. Try putting the .addin files and .dll files (debug versions) into:
    C:\ProgramData\Autodesk\REVIT\Addins\2011\

    Check the path in the .addin files and refer them also to the above folder...

    ReplyDelete
  15. Luke

    I did everything you asked to do but I keep getting this prompted on my screen "Command load failed" Any idea what this might be?

    ReplyDelete
  16. I am also getting a "Command load failed." I followed the instructions for x64 multiuser on pc install, also copied the .addin files to the Revit Projects folder just to be on the safe side, but I am stuck with this error.

    ReplyDelete
  17. Great add-in. Thanks. I was thinking if there could be an add-in which would detect unused families in my project and give a prompt to delete them. Would reduce the file size. Anyone think this can be done ?

    ReplyDelete
  18. Nishant - you can just use the Purge tool for that.

    ReplyDelete
  19. The advantage that this add-in has over the built-in 2012 Family save tool is that it puts the resulting RFA family files into directories. This is heaps better than just a bunch of RFA files dumped into one directory.

    ReplyDelete
  20. Hi Luke - this tool would indeed be better than the 2012 inbuild export which throws them all together.

    I've trioed installing it in RAC 2012 and I get the following:

    "
    Failed to initialize the add-in "ExampleApplication.addin" because the add-in registration is missing the required value of VendorId node. The VendorId node identify the vendor of the add-in application. For Revit to run the add-in, you must register the node defined in manifest "ExampleApplication.addin" file.
    "
    (same error for the ExampleCommaond.addin file)

    I think I solved this by adding the line Sybex but now I get a more serious error:

    "
    Revit cannot run the external application "ExampleApplication". Contact the provider for assistance. Information they provide to Revit about their identity:.

    System.IO.FileLoadException

    Could not load file or assembly 'file:///C:\Revit Projects\ExampleApplication.dll' or one of its dependencies.
    Operation is not supported. EException from HRESULT: 0x80131515
    "

    I would love to be able to use this tool in 2012 so any help would be appreciated.

    ReplyDelete
  21. New in Revit 2012 and up you need VendorID included in the addin path.

    Add the following into both .addin files just above the line

    Example.

    RAW
    (you do not need this line, just as reference)

    ReplyDelete
    Replies
    1. Hi Thanks for this, Can you be more specific about what and where RAW is to be added to the .addin files

      Delete
  22. dear sir

    where I can find this folder C:\Revit Projects

    ReplyDelete
  23. file:///C:\Revit Projects
    where i can find it

    ReplyDelete