As part of a very bad Cloud Model upgrade experience (a story I will tell some other time…) some models failed to upgrade.

I was trying to upgrade a file from Revit 2018 to Revit 2022. After upgrading, I was unable to save this file, even though I have a machine with 192GB RAM.

Revit reported this message:

“This computer does not have enough memory to save…”

“Increase the available memory or contact Autodesk Support for more information”

 

I contacted Autodesk Support, and eventually got this reponse:

Due to the “Multi-category Schedule”, the Revit file was failing to save in Revit 2021 or Revit 2022 version as the schedule view is large. 

After deleting the schedule view we are successfully able to save the file. Attached is the fixed model…

 

Sounds good! Let’s give it a go:

  1. Open the model in Revit 2018
  2. Identify the Multi-Category Schedule
  3. Let’s back it up while we can using “Save…”

  4. Now delete the Multi-Category Schedule

  5. And then Save the Revit 2018 File somewhere
  6. Open Revit 2022
  7. Manually upgrade using Revit 2022. Detach, Audit and Specify worksets (All Closed) on Revit 2022 open settings:

  8. Does it save now – yes!
  9. Initiate the Model into the correct folder on the (now upgraded) Revit 2022 BIM360 site.
  10. Finally, I tried using “Insert Views from file” to load back the Revit 2018 Multi-Category Schedule into the upgraded project – but it still would not save if that schedule exists:

  11. I guess we have to do without that Schedule for now – it saved fine again after deleting it. Happily the project uses Deep Space so we have access to all Revit data anyway!

One day, when I recover from the experience, I will write about the overall Revit Cloud Model Upgrade experience when dealing with hundreds of models and trying to jump from Revit 2018 to Revit 2022…

Problem:

I was recently trying to link Revit models to a federated file on Revit 2021. The models were failing to link, but no error message or warning was provided. The federated host model and the links were all initiated and ‘live’ collaborated models on the Autodesk Construction Cloud.

 

Resolution:

I had previously used this method ( Moving the Revit BIM360 CollaborationCache Folder to a Secondary Hard Drive ) to move the cache for BIM 360 / ACC Docs to a secondary hard drive. Windows Explorer showed this hard drive was essentially running out of space. So Revit was failing to link the model, but wasn’t providing a ‘insufficient hard drive space’ warning.

But why was the hard drive filling up?

I reviewed the files and folders and discovered that one particular program was generating massive log files:

The final resolution was quite simple – delete the massive log files, and then the files linked to Revit fine. I used 7-zip with the “Fastest” and “Delete files after compression” option to archive and delete those logs.

To future-proof this scenario, I’m considering writing a Powershell script to detect and possibly archive and delete the existence of massive log files.

First, let’s manage some expectations – Aconex is generally viewed as a closed platform. They seem to deliberately resist platform-level integration with other tools like BIM 360 and Revizto. However, you can achieve the promise in the title of this post – with a bit of work!

The basic steps are:

  1. Setup a sync between the Aconex Doc Register and Autodesk Docs (BIM 360 Document Management), using the Aconex PIF and Autodesk APIs
  2. Connect the BIM 360 project to the Revizto project and connect your BIM 360 ‘official Aconex’ PDFs to Revizto 2D Sheets.

Step 1 – Aconex Document Register sync with BIM 360 Document Management

Aconex provides a PIF (Project Integration Framework). This essentially acts as an API, and clients are able to build integrations between Aconex and other tools using their own budget.

aconexpif
The Aconex PIF is hard to find on the inter-webs…

As part of my strategic consultancy work as a Director at Virtual Built Technology, I have assisted clients in setting up the Aconex to BIM 360 sync. This will require considerable time, effort, $$ and planning. Although the scope is basically the same for every Aconex client that wants this, it seems individual Aconex clients will be charged significantly for this development to occur and operate on their ‘own’ PIF.

Once complete, you will begin to see PDFs arriving in Autodesk Docs from Aconex on a daily / nightly basis. Depending on how you have briefed the Aconex development consultants, you may end up with some interesting PDF file naming in the BIM 360 environment – so how can we deal with that?

Step 2a – BIM 360 Preparation Script for Merging Filenames to a single Folder

Let’s say you have your Aconex-to-BIM360 sync running, and you have PDFs arriving in 360 into “Discipline” folders like Architectural, Structural and so on. Not bad! But what if your PDFs are named like this:

  • SheetNumberX_Rev_1.pdf
  • SheetNumberX_Rev_2.pdf
  • SheetNumberY_Rev_1.pdf
  • etc

When thinking about downstream applications like Revizto, this is really sub-optimal. Why? Because a Revizto 2D sheet will want to connect directly to a SINGLE BIM 360 PDF document with Versions – not to a mangled set of ‘revision suffixed’ pdfs like the above. So we need to clean this up! And it needs to be repeatable and automated

For this, I have created a PowerShell script. Here is a description of the logic in the script:

  • it takes a list of BIM 360 Docs folder paths (the local folder path from Windows Explorer address bar), these are ‘monitored folders’
  • those folders need to be ‘synced’ prior to the script running (I’m still looking for a way to call the Autodesk Desktop Connector sync from a Powershell script, for now you have to right-click in Windows Explorer first)
  • it will process the folder list and:
  • create a subdirectory called “Current”
  • create a logfile in that subdirectory called deepSpaceSync.log
  • split the filenames at the _REV_ part
  • process each available Revision number individually in a loop (to ensure Aconex revisions are stored sequentially into BIM 360 versions)
  • check if the file was already copied – and skip it (using existence of that filename in the log folder)
  • or, copy the file to the “Current” subfolder
  • Sleep 5 minutes between each loop to allow Autodesk Desktop Connector sync to catch up.

So this script essentially merges the messy “REV” filenames into a nice clean SheetNumber.pdf filename structure AND actually creates BIM 360 file versions in the cloud (due to the sleep functionality).

We have released this script as a publicly available Deep Space Automation at this link.

egoutput
example output from the PowerShell script

Step 2b – Revizto 2D Sheet to BIM 360 PDF Connection

Now that we have a nicely named, version-rich PDF on BIM 360 Docs, its time to connect that up to Revizto.

Firstly – you should always publish 2D sheets from Revit BEFORE setting up the Docs connection if possible, as this is the only way to get the automated viewport overlays (Note – you can export with “Sheet coordinates only” option in Revizto Sheet Exporter from Revit).

Secondly – you then

  • open Revizto
  • ensure you have connected Docs to the right BIM 360 hub in Revizto
  • browse to the “Current” folder for a specific disciplines PDFs
  • click “Send to 2D”
  • select all and Done

    syncrev1
    Connecting Docs to Revizto 2D Sheets
  • then review that the correct sheets are going to be replaced and connected to the BIM360 PDF
syncrev2
Confirm that sheets are correctly connected using the Sheet Number

 

Final steps

Once your PDFs are flowing well between platforms, you may want to automate further. For example, the PowerShell script provided above could be set to run as a Windows Task. You would want it to run as soon as possible after the Aconex scheduled sync to BIM 360. As always, you should monitor your inputs and outputs for any problems or gremlins.

Done! You now have official documents from Aconex flowing regularly into Revizto via BIM 360. This means your site teams using Revizto on the iPad can now be accessing the official For Construction PDF Drawings (synced from Aconex Doc Register) while in the Field!

When a recent update to Autodesk Desktop Connector forced a migration to Autodesk Docs, file paths were generally change like this:

FROM – C:\Users\USERNAME\BIM 360\YOURFOLDERS

TO – C:\Users\USERNAME\ACCDocs\YOURFOLDERS

 

If you were doing some interesting tricks with BIM 360 Docs, and sharing and federating Revit models as non-initiated files on BIM 360, you may find that links were broken and “Not Found” in Manage Links after that latest Desktop Connector installation.

 

But don’t worry! You can just set a symbolic link to point from the old BIM 360 Docs location, to the new location. The Command Prompt script looks like this:

if exist "C:\Users\%USERNAME%\BIM 360" rename "C:\Users\%USERNAME%\BIM 360" BIM360.old
mklink /d "C:\Users\%USERNAME%\BIM 360" C:\Users\%USERNAME%\ACCDocs
Run these commands to fix links Not Found

The moment after this script was run, I was able to hit Reload from Manage Links in Revit and the new location was detected and links were loaded successfully. Note that they still appear in Revit as if they are in the old location, but really it is reading the latest data from Autodesk Docs, and that new location is being updated by Autodesk Desktop Connector.

Related Note:

I had already setup a symbolic link to move my BIM 360 Revit Cache folder to a secondary hard drive.

At this stage it appears those links are still working, as the Revit CollaborationCache is a different technology to the simple file sharing mechanism of Autodesk Docs.

In the old pre-BIM360 days, if you really had a problem where a Revit user didn’t relinquish elements in a workshared model, you could either

  1. Pretend to be that user and sync (yes just by changing your user name in Revit Options), or
  2. Detach that Central model and Save As.

Modern day BIM360 Revit Collaboration doesn’t allow either of those to happen easily…

So how do you relinquish elements in a BIM360 cloud Revit model?

Here’s how:

  • Open Revit and a model
  • Then go to Collaborate and Manage Cloud Models.
  • Browse to your BIM 360 Project and then the actual Model
  • Use the icon to view the model Actions menu and choose “Relinquish”
Screenshot from Revit 2018
Screenshot from Revit 2018

When prompted, choose “Force Relinquish”

Choose the User and then click Relinquish
Choose the User and then click Relinquish

and Continue

Confirm by pressing Continue
Confirm by pressing Continue

Then, wait for the process to complete.

Finally, it is probably a good idea to Sync with Central 🙂

 

Revit Help Links (note, the process is basically the same for all current versions):

What happens if you enable BIM360 Design Collaboration on a project, but would then like to switch it off? I asked Autodesk this question, and here is part of the response (in italics):

Unfortunately we cannot disable active services on specific projects. Once a service is active, it remains active.

If the project is underway and there is information that cannot be moved (such as issues/ RFI’s, etc), then my recommendation would be to make sure no one has access to the Design Collaboration module on the project.

If you would like to see a feature implemented that allows the ability to deactivate a service, you can share your thoughts and request it via the Ideas Board using this link: https://forums.autodesk.com/t5/bim-360-ideas/idb-p/2032

 

In light of the above, if you do want to make sure no one has access to Design Collaboration, switch it off per-person in the Project Members page as shown below:

Having recently installed some more storage hardware, and previously posted about moving folders with symbolic links, I then decided to move my BIM 360 Glue cache folder and Navisworks Cache folder to a secondary hard drive. I did this using symbolic links.

You need to:

  • start a Command Prompt as Administrator
  • use the commands shown below

Moving BIM 360 Glue cache storage location:

if exist "%localappdata%\Autodesk\Bim360Glue 2016\LocalCache" rename "%localappdata%\Autodesk\Bim360Glue 2016\LocalCache" bim360glue2016.old
mklink /d "%localappdata%\Autodesk\Bim360Glue 2016\LocalCache" R:\BIM360Glue2016
if not exist R:\BIM360Glue2016 MD R:\BIM360Glue2016
robocopy /mir "%localappdata%\Autodesk\Bim360Glue 2016\bim360glue2016.old" R:\BIM360Glue2016\

Moving Navisworks cache storage location:

if exist "%localappdata%\Autodesk\Navisworks 2019\LocalCache" rename "%localappdata%\Autodesk\Navisworks 2019\LocalCache" Navisworks2019Cache.old
mklink /d "%localappdata%\Autodesk\Navisworks 2019\LocalCache" R:\Navisworks2019Cache
if not exist R:\Navisworks2019Cache MD R:\Navisworks2019Cache
robocopy /mir "%localappdata%\Autodesk\Navisworks 2019\Navisworks2019Cache.old" R:\Navisworks2019Cache\

After you have run the scripts above, you can delete the old folders with the .old suffix (Navisworks example shown below).

If you have Desktop Connector installed, you probably realise you can ‘upload’ Revit models and other files to BIM 360 Docs by dragging and dropping to the folder in Windows Explorer (using Desktop Connector). However, when you try and link this using the BIM 360 shortcut in Revit, you might not be able to see the file…

Here is a workaround that may allow you to link a non-initiated Revit model into your Revit file:

  1. Ensure you have Autodesk Desktop Connector installed
  2. Start Link Revit command from the ribbon
  3. Update: Click on the Address drop down
  4. Click on This PC
  5. Browse to BIM 360 from the window below:

  6. Select the file (non initiated) that you want to link

You should get the BIM 360 prefix in Manage Links:

Here is a video of this process (with audio, This PC – BIM 360 workflow):

https://knowledge.autodesk.com/community/screencast/3a990f58-ed3a-4dfb-9398-e4ab08fcebe5

 

Here is another short video of this process here (no audio, copy-paste directory from Windows Explorer method):

https://knowledge.autodesk.com/community/screencast/02ecf93e-6359-45e4-9253-48481e4e8ea6

I have developed a working BIM360 to on-premises backup mechanism. There were a few different ways to go…

 

I initially considered:

  • Hacking Windows Explorer to touch the files in the BIM 360 node and try and trigger the BIM360 Docs download and copy to local PC or network location
  • Developing a Forge app that essentially pulls the desired models out of the BIM 360 cloud to desired location?

In the end, I decided to use the Revit API (Dynamo and Python), along with VirtualBuiltApp, to essentially reverse engineer a folder structure from the local CollaborationCache folder. These ideas are hinted at here.

 

In simple terms, the BIM 360 Docs on-premises backup workflow is:

  1. Create a super federated BIM 360 model (with all other BIM 360 models linked into it)
  2. A Dynamo script reloads all links in order to cache them locally
  3. The same script interrogates, then determines the target file name and folder from VirtualBuiltApp
  4. Dynamo then copies the files into their ‘backup’ location on the local network

 

Some more detail is presented below:

 

A) Cache Cleaner CMD Script (may not really be necessary, as the ‘reload’ should overwrite superseded cache anyway):

Kill Revit if Open… be careful of below steps, particularly if Revit has crashed recently. You might need these local copies 🙂

cd "%LOCALAPPDATA%\Autodesk\Revit\Autodesk Revit 2018"
cd CollaborationCache
rmdir oldCache
mkdir oldCache
for /d %i in (*) do move "%~i" oldCache

 

B) Manual steps to setup Revit model environment to run the script:

  1. Open Revit
  2. Open Federated BIM 360 file (worksets closed)
  3. Unload all links
  4. Open all Worksets

 

C) Dynamo Script:
Run Dynamo (Python) script that reloads and unloads all links (this collects .rvt into cache). Key Python commands to use are: RevitLinkType.Load() and RevitLinkType.Unload(None).

Potential Problems:

  • Coordination Monitor alert, no longer exists
  • Instance of link needs Coordination Review
  • “Some numerical data within the imported file was out of range. This numerical data has been truncated.”
  • “Geometry in the file … has extents greater than 20 miles (33km).”

Local cached Models appear into

%LOCALAPPDATA%\Autodesk\Revit\Autodesk Revit 2018\mainCacheFolder\hostModelIdFolder\LinkedModels\*.rvt

 

D) Dynamo Script continues to:
Rename and copy to desired target location. How do we determine this?

Using proprietary VirtualBuiltApp schema:

  1. Use known directory data along with known JSON data for the BIM 360 files (harvested previously by our proprietary systems)
  2. Build list of target paths
  3. Run copy from Dynamo to copy to target network directory

Part of the script:

 

Note: you can actually browse some BIM 360 Docs data in a .sqlite3 file located in path shown below. You can use DB Browser for SQLite as a viewer.

Update: It was pointed out to me by someone on the inside that the workflow I describe below essentially amounts to a back-channel unsupported and in fact inappropriate use of BIM 360 Docs. I was surprised at this, as I had essentially obtained this information from the Autodesk forums. What is wrong with the steps below? The answer is apparently this: A paying BIM 360 Docs customer is not supposed to invite a free user into their projects. This is apparently part of the terms of use for BIM 360 Docs customers. I was not aware of this, and in fact I’m unsure where to find it in the documentation.

Just to be clear, while the steps below *work* at this time, it apparently is an unsupported and inappropriate workaround and there could be risks (financial or otherwise) for BIM 360 Docs customers who invite free users into their projects. You should only invite:

  • BIM 360 Docs users for which you have paid for and applied an entitlement
  • BIM 360 Design (C4R) users who have purchased their own entitlement

I expect this workaround may eventually be disabled by Autodesk? You can view if you have exceeded your purchased package of BIM 360 Docs entitlements in the relevant Autodesk Manage pages. For example, it might show 16 of 10 licenses used in red? This is where I think there is potential for Autodesk to back charge users who abuse this current state of affairs.

My advice: check directly with Autodesk about who you can and cannot share your BIM 360 projects with…and proceed accordingly.

Situation:

You are a paying BIM 360 Docs user and would like to invite a non-paying user to collaborate inside a BIM 360 Docs workspace. Perhaps you just want them to be able to upload and download files, but not Collaborate in Revit…

Solution:

They need to create a free BIM 360 Docs account, and then get invited to your workspace.

(see above update)

Steps:

Non Paying User –

  1. Go to Autodesk BIM 360 Docs – Get BIM 360 Docs (Free Forever)
  2. Create a BIM 360 Account and Autodesk login if necessary (using email)

Paying User / BIM 360 host admin –

  1. Go to your Account Admin
  2. Add the User and Company (using email) (see above update)
  3. Go to Project Admin
  4. Add the User
  5. Go to Document Management
  6. Share a Folder to the User or their Company

Access and Upload Documents for Free User –

  1. Login to BIM 360 BIM 360 Docs Sign In
  2. Click on Change Account
  3. Select the workspace from the Paying User
  4. Access the Folder that was Shared to you – you can now Upload and Download with a Free account

Thanks to this forum page for the idea.