Autodesk Fabrication: Best Practice #7

Don’t work in a Live Sync’d Database

This warrants a little explanation.  Many companies have multiple locations and need to sync Fabrication configurations between those sites. Other companies have their Fabrication configuration copied locally to the users system from a central network location.

To keep from having to manually keep different sites or local computers up to date, it’s natural to look so some of the many technology solutions like Microsoft’s One Drive, Box.net, Dropbox, Google Drive, DFS Replication etc. 

Here’s the problem….most of these solutions sync files in their own order and time frame. You often can’t control when they sync. When using CADmep, ESTmep or CAMduct, just using the software can cause the program to read back from the database files. Many of the database files reference each other using indexes. Take for example, the Specifications and Materials….both of those database areas refer to each other.

When changes are made, what happens is the files get updated where you make the changes, but the two files that get changed, may sync somewhere else at different times. As you’re using the software, if it happens to reread some of the database files when some are sync’d and others aren’t, this can cause unspecified problems.

One of the more common issues is when a system you’ve drawn changes to a completely different system. Have you ever had a Cast Iron No-Hub waste line all of the sudden day it’s Supply Air 2″ Positing Water Gauge?  This is our of sync syncing issues is often the result.

How do you work around this? Try to find sync solutions that allow more control, like after hours sync. I personally like an old batch file running RoboCopy as it allows a lot of control and I can have it fire up when the user logs on. They can also manually run it during the day if I push our a critical update otherwise the get the update tomorrow when they log in. When syncing servers from different sites, I schedule it to run after hours. 

This issue is most common w/CADmep, ESTmep and CAMduct. Because Revit loads and stores your services, it doesn’t read back to the database unless you explicitly tell it to reload the services so it’s risk is greatly reduced to the point where I wouldn’t worry about it.

Now, there are people that are doing local Sync’s in real time. My prior firm, we had some…let say…”creative folks” who would take liberties with the database if they knew it was local. As such, I used Windows OffLine Files to sync a local copy but make it look like it’s still on line. This is a Sync’d local copy and goes against what I recommend above. However, we forced it to rescan frequently so when there were changes, they were small, just a few files and they’d sync quickly about the same time. Larger changes involving a lot of files can open up your risk window to having issues.

If you’re going to use life syncing utilities, proceed carefully and watch for unexplained issues. Making large changes after hours and smaller changing during working hours can help.

And if you’re considering using Window’s Offline Files, prepare for a long learning curve and experiment with yourself first. Offline Files have little control from the User Interface and is best managed with Group Policy.

CADmep User Specific Spooling

Autodesk Fabrication CADmep does a great job of spooling. One of the issues with spooling affects companies that have their configuration located on a network resource. More specifically, if your fabrication configuration’s MAP.INI file is located in a location shared by multiple users, as each user performs spooling, you they can over write the Spooling names/numbers because they are all reading/writing to the same SPOOL.INI folder which controls spooling settings.

One of the undocumented changes you can make is to have each user point to their own SPOOL.INI file in their own folder. This avoids and conflict when multiple people are spooling at the same time. To make this change, a simple registry edit is needed. Now, editing the registry makes a lot of users nervious if they’re not familiar with such hacks, but don’t worry. This registry edit is fairly safe if you’re careful and here’s why….

  1. You’re not editing an existing setting or deleting a setting. You’re adding a new setting. If you type something wrong, your system and software simply don’t find what they’re looking for and continue on their way.
  2. There’s a few main areas in the registry, the location you make this one is user specific and tied to your Windows profile. If it gets corrupt (unlikely if you’re careful) your company IT person can create a new Windows profile for you.

So let’s get started….

Do you need this solution?

The best way to determine if you need this solution is to look where CADmep is loading your configuration from. You can do this by looking at the path for the configuration you’re using. If your configuration path lists a shared location on your network, this solution may help you. If your configuration location is on you local drive like below, this solution is most likely of little benefit to you. This path is where your configuration’s MAP.INI file is located. The MAP.INI file is what tells CADmep where all the parts of your database are located. The same folder that holds this MAP.INI file is where the SPOOL.INI file is located by default.


Your Configuration selection dialog shows where the MAP.INI is located.

Here, you can see by default, the SPOOL.INI file is located in the same folder the configuration (MAP.INI file). If you don’t see a SPOOL.INI, you’ve likely never performed spooling or your systems had already been configured. When this location is in a shared network location used by many users, they all read and write from the same SPOOL.INI folder and this can cause conflicts if multiple people are spooling at the same time.


By Default, the SPOOL.INI is created in the same folder as MAP.INI.

Changing the SPOOL.INI location

To change the SPOOL.INI location, you need to edit the registry and create a new entry. Start the Registry Editor by pressing the Windows key on your keyboard and typing “Regedit“. This will call up the Registry editor. You’ll want to navigate to the following location…

HKEY_CURRENT_USER\Software\Autodesk\Fabrication 2018\CADmep

A few things to note….

  1. The HKEY_CURRENT_USER section in the registry is very similar to HKEY_LOCAL_MACHINE. Make sure you edit the HKEY_CURRENT_USER section of the registry as the other location will not work.
  2. The HKEY_CURRENT_USER section in the registry is User specific. Edits here will work for the currently logged in user. If another user logs into Windows on the same computer, this section will need to be edited again for the setting to apply to that user.
  3. This setting is also version specific. Change the “2018” in these examples to the version your you are using. If you are using multiple versions of CADmep, you’ll want to make this change for each version.
  4. This setting is global in scope for the user who’s currently logged into Windows when you make this change. It is NOT specific to the database configuration they are using. When you redirect CADmep to a new location for it’s SPOOL.INI file, it applies for any and all configurations that this user loads in that version of CADmep.
  5. The folder you specify must already exist. It won’t be created for you. You’ll get an error when spooling if this is the case.
  6. The SPOOL.INI does not need to exist, CADmep will make a new one using it’s defaults if there isn’t one already there. If you have one already setup, you can copy it to this location and CADmep will use it.

To change the location of SPOOL.INI location, create a String Value named SpooliniFolder (this is not CaSe SeNsItIvE). A string value will show REG_SZ in the type column. In the data column, you’ll enter the path where you want this particulars user’s SPOOL.INI file. You’ll want to make sure folders are separated by double backslashes or singe forward slashes. The path should also have the ending slashes. Here’s a quick chart of valid and invalid path formats for your reference.

Local Path formatUNC Path FormatValid Path
C:\MySpooling\\MyServer\Share\MySpoolingNo
C:\MySpooling\\\MyServer\Share\MySpooling\No
C:\\MySpooling\\\\MyServer\\Share\\MySpoolingNo
C:\\MySpooling\\\\\\MyServer\\Share\\MySpooling\\Yes
C:/MySpooling//MyServer/Share/MySpoolingNo
C:/MySpooling///MyServer/Share/MySpooling/Yes
C://MySpooling////MyServer//Share//MySpoolingNo
C://MySpooling//////MyServer//Share//MySpooling//No

When you are done, your registry should look like the following image.


Registry configured to redirect CADmep to a new folder for it’s SPOOL.INI.

Because CADmep read and writes to the SPOOL.INI file each time it spools, this is one of the few settings you can make that take effect immediately without having to restart CADmep. You can see the new folder and SPOOL.INI below after the chages have been made.


SPOOL.INI is now located in a new folder for the user currently logged into Windows.

Rethink what’s possible

Many of the companies I run into that do not have their MAP.INI file located on a network resource, keep it locally specifically because of issues like the spooling conflict with multiple users sharing the same SPOOL.INI. They often would like to have their MAP.INI are other setting located on a network to maintain consistently in settings and easy of support but don’t, viewing the tradeoff worth it to eliminate the spooling conflicts. If your Fabrication configuration points to a local MAP.INI, you may want to consider the above solution if Spooling conflicts was the reason for your current fabrication configuration setup.