Revit Render Assets on BIM360
With a number of clients working in a more distributed fashion in 2020/2021, we have seen an uptick in requests and questions about how to host Materials (and Render Assets (images) for Revit Materials) in a Cloud/distributable way, so they work correctly for all Project parties/participants. This has been possible using the Autodesk Desktop Connector, for some time (we will show you below), but we wanted to strategize a way to accomplish it without every user having a unique path in the Additional Render Appearance Path (ARAP) dialogue, so it could be easily deployable. Here is how we accomplished that, using some old (and basic) workflow tricks:
Its a long post. Sorry about that. But i want to explain why we ended up where we ended up.
If you want the TL:DR, here it is:
- You can Straight Path (full DC path), but it forces users to play tug of war, resetting material image paths
- You can Symbolic Link it (works for all users), but you have to force sync the images in DC, and needs admin rights to set up
- You can Drive Letter it (using LH workaround, like for Deployments), but you have to force sync the images in DC. No admin rights needed to set up
- You can force-sync DC folder by querying the images using something like Read Image File in Dyn Sandbox, or a simple Desktop App
If you want all the details, here we go:
We went through a few processes, for getting it to work, but the final version takes about 5 minutes to set up. But first, why we went the way we did:
Strategy 01- Path ARAP to Desktop Connector
If you have Desktop Connector installed (get it here), a folder path called BIM 360 exists in your User Profile, when you are logged in to your Autodesk Account. Here, you’ll see the Projects/Folders you have access to on BIM360, emulated on your local storage. Note that the files aren’t all “there” at the moment: They show as “Online” or “Synced,” and they need to be Synced to work as a Render Asset. More on that in a few.
If you have this set up already, youve been able to path the ARAP dialogue to these folders, for a while. It has simply been a matter of going the ARAP dialogue, and pasting the FULL path to Desktop Connector and the Materials folder, in to the entries for Render Paths:
Issue 01:
The trouble with this configuration, is the path cannot be the same for multiple users on a project team.
My Path: C:\Users\aaronmaller\BIM 360\Parallax Team\2021 Test Project/Project Files\Materials
Alisons Path: C:\Users\alisonmaller\BIM 360\Parallax Team\2021 Test Project\Project Files\Materials
Thats not a minor issue, as the path wont resolve for “the second person” who didnt select the image for a particular material, because the path is different. Moreso, having to deploy this setup across an entire organization, isnt awesome: You need the users discreet username in the path. The ARAP dialogue wont accept Wildcards like %username%, so you cant deploy it with a single INI file for all users, unless you edit the INI in post.
You CAN do that (with Powershell, or BAT, or something more elegant like Px Tools (Pragmatic Praxis Deployment Tools), which will automatically do it on the users behalf)… But its still a chore, and the pathing will still be broken for the materials, as users play tug of war with the path resolution.
Issue 02:
Silly as this may sound: When setting up a BIM 360 Hub for a company, evidently you can (foolishly) use special Characters, in the name of your Entity or Organization. These characters will make the full path unable to be used in the ARAP dialogue.
Win 01:
One thing to mention that’s GREAT about this setup (Straight Pathing) is that it will automatically download the items in the BIM 360 folder (changing them from Online to Syncd) when Revit goes to show the items in Realistic or Rendered mode. That’s pretty slick. As you’ll find out later, our other pathing methods wont do that.
Strategy 02: Symbolic Link to DC Folder
If you haven’t used them before, a Symbolic Link behaves like a Shortcut, in that it redirects you to another Directory. But your computer “sees it” as a Directory at the location of the Symbolic Link itself. You can create them a number of ways, using either Powershell or the Command Line.
(If you werent aware, you can use a Symbolic Link to move/relocate the Collaboration Caches and Pac Caches for BIM360, if you have a secondary Hard Drive. Thats handy if you are setting up a VDI environment or laptops, where the C drive space is at a premium. More on that in another post…)
Pick a path on the computer that is User neutral, and create a Symbolic Link back to the exact user specific folder, in Desktop Connector. Note that to do this in either PS or CMD, youll need to launch with Admin Rights (Issue03).
Once you run the command, youll see a “Folder” present, in the new location.
If you open it, it IS the folder from Desktop Connector.
Note: Only the SYNCED objects show up in the Symb Link *directory.* The images/items must be synced for this to work (Issue 04). We will cover that later. 🙂
Also, if you don’t use Powershell, you can do this with Command Line (run as administrator) as well. To use Command Line, note that you need the /D argument for Directory.
Once this is set up, now you can enter C:\Parallax\Shared360Materials in to the ARAP dialogue, which alleviates the need for a custom INI entry PER USER, and it also means the BIM360 path (and Company Name) is no longer present in ARAP. ISSUE 01- Solved, ISSUE 02- Solved.
Now all project participants can have an identical path in ARAP, and the materials pathing wont play tug of war between users. The downside to the Symb Link approach, is it needs admin credentials to create the SL, and it needs them WHILE running as the user, since the DC path is still local to the user. Note: They dont need admin rights continually. Just to create the Symb Link.
Strategy 03: Mapped Drive Letter to DC Folder
I’ll get this out there now: Drive Letters absolutely SUCK. I hate them. I try not to use them ever. I use Network Places over Drive Letters any time i can (for things like Revit Libraries, O365 Templates, Shared Drives on the PRLX NAS, and so on). But for this specific purpose, it CAN make sense. Why? Mapping a Drive Letter for a user doesnt require admin rights. (ISSUE 03- Solved)
To do it, we’re going to use a simple pathing trick thats older than i am (well, it goes back to the 80’s, at least). We use this trick to make Deployments “portable.” This is how i build those handy external Hard Drives with REAL Deployments, that we can bring to BILT and AU Exhibit Halls, and also to Construction Sites, to update jobsite machines.
(Its also how you can make Cloud distributable Deployments, for all of your employees who Work From Home. If you want more information on that, reach out to us…)
Background: When creating an Autodesk Deployment, it wont allow you to select a “Drive Letter” like C:\, or D:\, or E:\ (or it used to not let you. Not sure if the new deployment configurations change this). So you had two options:
- Build the deployment to a Server Share, and repath the Deployment.ini and the shortcut later, to be a drive letter.
- Use the \\localhost “path” to get to the Drive Letter. For instance: \\localhost\E$ goes to a machines E:\ Drive, and the Deployment Creator from Autodesk sees it as a server path. Similarly, \\localhost\C$ is the machines C Drive.
That means, we can do this:
Now you can path the ARAP to the X:\ folder, and be done with it. This doesnt require any admin rights to do, and you can do it a number of ways:
- In Powershell (shown above)
- In Command Line
- Right Click on This PC or My Computer, and select Map Network Drive > Type in Path and choose Letter
None of these require admin rights.
Forcing DC to Sync the Resources
As we mentioned earlier, one achilles heel to this process is that the images themselves have to be SYNCED or they wont work, in Revit. The good news is: It wont Crash Revit, the way a network resource thats pathed in ARAP but unavailable will: It just wont render. Force-syncing (solving ISSUE 04) has a few methods:
- Navigate there (using the real BIM 360 DC path) > Right Click on the folder > Sync
This is the manual way. If you are good with having your project staff do this periodically, you are all done. Thats all you need to do. BUT… we want a way to make sure the Shared Render Asset Library STAYS synced, as waiting for it to sync once manually instantiated, can take some time (depending on size and quantity of Render Assets).
While talking to some folks at Autodesk about how Desktop Connector works, they pointed out that navigating there and simply “opening” an image file, forces it to “sync.” So we simply need a way to tell the computer to open them all, to force them to sync.
Enter John Pierson, and Dynamo Sandbox (this was just a V01 prototype):
Bonus to this approach: It doesn’t actually OPEN the image files (which would be super annoying). There are some technicalities to be aware of, here:
Desktop Connector pathing is… weird. My sample project was
…\2021 Test Project\Project Files\Materials.
When the items are not yet synced, youll discover they arent in that folder, but a Subfolder, called:
…\2021 Test Proect\Project Files\Materials\_D
But you don’t ACCESS them at that path, you need to remove the _D. That tells DC to copy/move them to the main folder. Incidentally, it also moves a copy to another folder called _C, with a “.c” added to the file extension. Remove these from your querying, or you’ll get some strange results. Thats why we have the Third group in the DYN above.
Wrapping it up
- So, Drive Letters or Symb Links solve ISSUES 01, 02, and 03.
- Path the ARAP dialogue to the DL or SL of your choosing, and you can deploy that to Revit.ini’s (or in post) to your liking.
- “Some apparatus” has to try to read the directory contents, to keep them in sync.
Note that we ARENT planning on relying on Dynamo Sandbox, for this. This was a first attempt to see if the logic would function, at force syncing the “Shared Material Library” from BIM 360. Our goal is to make a small Desktop App that has the paths and potential drive letters stored, and can configure and sync these items for the users, automatically.
More on that, hopefully soon. If you have questions about getting any of this running in your office, we’re happy to consult with you to help get it all deployed. 2022 Deployments are right around the corner (Navis and AutoCAD are out already), so time to get moving!
-Aaron (twiceroadsfool)
…
2 Comments
Chris Wilson · 2021-03-23 at 11:39
Aaron, awesome detail and explanation on this! It’s always interesting to me how the convenience of desktop sync software can be a gift and a curse.
Peter DeRooy · 2021-03-23 at 17:45
You can also use the old dos command SUBST to map x: with a batch file.
Subst x: “%userprofile%\BIM 360\Maple Reinders Constructors Ltd\_Maple Template\Project Files\Materials”
Now Add X:\ to the Revit.ini