Fabrication References – 2023 Update

Fabrication 2023 is out. I’ve updated all the reference information to include 2023 formats. As has been the trend the last few years, little has changed. Summary below…

Fabrication Reports – All One Folder

Those of you who used CADmep, CAMduct or ESTmep prior to it’s acquisition by Autodesk remember when all the reports were in one folder. Once Autodesk took over, they moved to a system where each product used a separate subfolder for their reports. After all, ESTmep is likely using different reports than CADmep and yet different than CAMduct. Here’s what your configured reports folders now look like (you may not have all products/folders). Notice how each product has it’s own older.

The reality is, many reports are helpful across products. This means you need to make the same report multiple times or copy it from one folder to the others. This leads to duplication of data and a chance than one of the copies gets changed different from the others.

Consolidating All Report to a Single Folder

It’s commonly asked if it’s possible to configure the different Fabrication product to use the same folder. The answer you always hear is No. Technically that’s correct. You can’t configure Fabrication products to look at the same folder. However….

You CAN configure Windows to make multiple folders look at the same folder. It’s just done at the Windows level with a feature called Junction Links.

So lets walk through how to configure CADmep, CAMDuct and ESTmep to all look at the same reports.

Step 1: Find Where Your Reports Are Located

Using CAMduct or ESTmep you can pick Help -> About or type AppInfo at the command line in CADmep. You can then scroll through the window to see where the Reports are located. Alternatively, you could use the Edit Configuration utility to find this folder as well.

Note that this screencap was done in ESTmep so you see the ESTmep subfolder. The mis folder is actually the root where all your reports are.

Step 2: Copy All Report Folders to a New Folder

The next step is to copy all the reports from the various product specific folders to a new master folder location to store the reports. In this case, we’ll call it (Master) just to make it super obvious. Notice we also deleted the folders for CAMductComponents, Tracker and RemoteEntry because I’m not using them. You can choose to include them if you need them,

Step 3: Backup and Delete the Original Reports Folders

When you’re done, you should back a backup of the product specific reports folders elsewhere incase you want to go back to the original config. Once backed up, you need to delete the original product specific reports folders. When you’re done, your reports folders will look like this…

Step 4: Create Junction Links for the Product Folders

Here’s where we do the magic. Windows allows you to create what’s called a Junction to other folders. A Junction is just another virtual folder that looks at the contents of another. Junctions are how Windows has a “My Documents” folder that really points to “C:\Users\<Username>\Documents“.

To create a Junction you need to open a Command Prompt with Administrative permissions. One that’s done, you use the MKLINK command to make a Junction Link to a Junction Target. The syntax looks something like this….

MKLINK /J "link folder" "target folder"

Here’s a screencap of my DOS Command Window where I make Junction Links to the (Master) reports folder…

When done (if Successful) you’ll see those product specific folders again for CADmep, ESTmep and CAMduct. But this time, you’ll notice the icons are slightly different and look like a shortcut icon even though the folder acts like a regular folder.

Here you can see a side by side recording of the process happening in real time…

Step 5: Use Fabrication As Normal

Once you have the junctions created, you can use your products as normal. Each fabrication product looks to the folder specific to it, which Windows redirects to the file in the (Master) folder.

One thing to note, is that when browsing the (Master) and product specific folders, the only clue that these are Junction Links is the Shortcut looking arrow on the icon. If you don’t know what’s going on, it would appear that you have 4 folders each with the same files. But if you try to delete the files in one, they will indeed disappear from the other folders too. After all, these folders are Links back to the Target.

Here’s a recording of all 4 folders show at the same time. You’ll see that changes to any one also happen to the others. You may need to Refresh the views to see the changes but they indeed are seen from the Target and all Junction Links. This means that while there’s 4 folders showing the same files, they only take up the size on disk in one folder.


Junction Links work well for letting all (or some) of your Fabrication products use the same list of Reports. But there are a few noteworthy items to be aware of….

  • Junctions Links and Point to Targets on a different DRIVE or FOLDER as long as it’s on the SAME machine. You can’t make a link to a target from a computer to a server for example.
  • If you access your database from a network location, you need to make make the links from the server so your IT Department may need to get involved. Your local software when accessing the server share will honor the junctions it sees on the server.
  • If you don’t know what’s going on or look closely, it appears you have duplicate data. Make sure you don’t delete things from one folder thinking they’ll still be in the others.
  • If you want to undo this setup, you should delete the Junction Links FIRST just like any other folder before deleting the Target folder. If you delete the Target first, the you’ll have trouble deleting the links.
  • IF you Sync your database from a master source location like Dropbox or using a utility like Robocopy, the Junctions are NOT copied, but are instead copied like regular folders. There may be some special utilities that copy the junctions but I’ve not found them. So what is 4 views of 1 copy of a file on a network, when synced to your local system becomes 4 copies of the files in 4 folders. For the most part, it’s not an issue as you manage from the master source location. None the less, this nuance is worth mentioning. Most Sync utilities do NOT recognize the special nature of a junction and treat them just like a folder.
  • If you want to read more about Junction Links check out this article…https://www.addictivetips.com/windows-tips/create-delete-a-junction-link-on-windows-10/

Autodesk Fabrication – Determining C1/C2 Connectors in Revit

Fabrication Parts in Revit allow you to edit their connectors just like in CADmep. However, unlike CADmep, you can’t simply hover over a connector to determine if it’s C1 or C2.

So if you need to change a connector, you’re essentially guessing which one to change. Trial and error is at best 50% unless you’re lucky.

So how can you improve this “guessing” based workflow?

Thankfully I have a great network of people smarter than myself. I often get the credit for sharing the information but really, the credit belongs to those who show me. In this case, two of my industry friends showed me ways to improve the odds.

Method 1 – Slope

For this first method, credit goes to Liz Fong from MacDonald Miller. When you place a piece of straight pipe or duct, when you select it you’ll see a Slope indicator (< or >). This by default points to the C1 connector.

Duct/Pipe placed defaults the Slope symbol pointing to C1
Duct/Pipe mirrored also defaults the Slope symbol pointing to C1

There’s a couple downsides to this approach that may apply in some scenarios….

  1. This doesn’t work for fittings. Only Straight Pipe/Duct.
  2. If you click the Slope Symbol, it changes direction and is no longer accurate.
    • This should really only affect Plumbing or sloped Grease Duct systems. Otherwise there’s not a lot of reason to change direction on a non-sloped system.
    • Symbol could still be accidentally clicked and reversed anyway and then be wrong.
  3. Once changed, Slope symbol direction is remembered and there’s no good way to “reset” it.

Still, despite the downsides of this approach, I’m going to go out on a limb and suggest that even on a plumbing system, less that 50% of the slope symbols will be changed from their default. This alone makes this method better than a 50/50 guess like before.

Method 2 – View Cube/Viewing Direction

This next method takes slightly more work, but is almost 100% accurate. Credit for this method goes to Alina Y. from JH Kelly.

In short, from a 3d view, if you make sure the View Cube in the Part Editor window is aligned to the Revit View you’re in, the fittings is oriented in the same direction in the editor as in Revit. You can then select the connector in the Part Editor window and it highlights the connector end associated with it.

Duct/Pipe placed in Revit matches the editor when View Cubes are aligned. Selected Connector highlights.
Duct/Pipe mirrored in Revit matches the editor when View Cubes are aligned. Selected Connector highlights.

This method is almost fool proof and has a few benefits over the sloped method we showed earlier.

  1. Works on Fittings in addition to Straight Duct/Pipe.
  2. Slope direction doesn’t matter.

But we did say Almost. Where this method fails, is if the View in Revit is redefined.

When you set a new Front View, the view in Revit no longer matches the orientation in the Part Editor window as seen in the following image…

Luckily, this is easily remedied by simply resetting the Front View in Revit.

This method also works in Plan and Elevation Views with a slight twist. There’s no View Cube in the Revit window so it’s up to you to understand which viewing angle Revit is in. Next, you can make the View in the Item Editor match but when you look at a connector straight at the edge, you don’t see it highlight. You can then hold the SHIFT key and use the Middle-Mouse Button to slightly rotate the view so that you can see the connector that’s highlighted.

Here you can see what that looks like…


While not as quick and efficient as hovering over a connector in CADmep, either of these methods or even used in combination can increase your odds of changing the Correct connector on the first try.

While method #2 is more fool proof than method #1, there’s a reason I explain both and here’s how I’d use them both.

For non-sloped systems, the chances the slope symbol is reversed is very low. Because you’re likely selecting the part anyway to edit a connector, a quick glance is all you need to know which connector to change. Quick and easy for straight part on non-sloped fittings. No fuss. No muss. In this scenario, Method #1 is super quick.

For fittings and sloped systems, I would then shift to Method #2. Take a little more time, but it’s certainly quicker than being wrong 1/2 the time and then undoing the connector you just changed and then changing the other. That “trial and error” method results in 3 connector changes when you guess wrong. This is where Method #2 really shines…you get it right every time. If you’re Front View happens to be redefined, it’s easily rest.

Thanks again to Liz Fong (MacDonald-Miller) and Alina Y (JH Kelly) for their great input in coming up with these methods. They’re two of my favorite “Go To” people when I get stumped or need a little help orienting my thoughts.

Autodesk Fabrication – Profile Error w/UNC Paths

If you use UNC pathing to get to your Autodesk Fabrication Database, you might find issues when trying to create Profiles if you use them. UNC pathing or (Universal Naming Convention) is where you specify a server and share vs a drive letter. You can see below, the Metric Autodesk Fabrication Configurations is using a UNC path…

When using this configuration, you can create a profile from the File drop down menu in ESTmep and CAMduct or by typing MAPPROFILES in CADmep.

Creating New Profiles

You go to create a new profile by clicking the Green button.

From here, the New Profile dialog starts with the default name “Untitled”. Notice also, the double leading forward slashes before the server name in the UNC path. (Yes, ‘little-stink’ is the server name)

When you start to type a profile name, the leading forward slashes get stripped. This is likely a bug. You can see that in the following image…

If you click the OK you’ll get an error that the profile can’t create the required folder.

However, the fix is easy. If you just add the leading forward slashes again, you” be able to create the profile.

It may be easier to see from a video. You can watch the process here…

Fabrication 2022.0.1 Update Released

Update: 2022.09.04

It’s recommended NOT to install this update for CAMduct or ESTmep. Installing the 2022.0.1 Update will prevent access to the Projects folder. CADmep does not appear to have issues with this update.

Thanks to Chris Nash of William R. Nash Company for reporting this issue on the XtraCAD.Com forums.

It’s been a long time, but Autodesk finally released an update to Autodesk Fabrication. 2022.0.1 Update was released recently and contains several fixes for 2022 versions of CADmep, CAMduct and ESTmep.

Install from the Autodesk Desktop App or download from your Autodesk Account portal (https://manage.autodesk.com)

Autodesk Fabrication: Best Practice #14

Eliminate All Broken Service ITM’s

Your services should not have broken links to ITM’s. Not only is it sloppy database management, it can slow performance of your database.

Use the Path Repair Tool to find (and fix) broken links in your services.

Right-Click and empty area of your Service Palette and select Path Repair Tool.

When you run the Path Repair Tool you’ll be asked to select a mapping file. You can click cancel and the tool will continue on. When it’s done, you’ll have a list of broken paths copied to the Windows Clipboard that you can paste into a file.

From this file, you can then create a mapping file. The mapping file is merely a text file in the format….


So the data you paste from the clipboard is good starting point, it lists all the broken paths. There may be duplicate paths listed if the path is used in multiple service templates. It’s ok to remove the duplicates.

Simply ass a comma after the broken path name and enter the new, corrected path. Once done, you can save the file and use it when you run Path Repair Tool again. It’ll then go and fix all those broken paths.

NOTE: This repair technique does NOT work if you have commas in your folder or file names. (See Best Practice #11)

Autodesk Fabrication COD Object Model

I’ve added graphics to better illustrate the Autodesk Fabrication Object Model for COD Scripting,

If you write COD scripts for CADmep, ESTmep or CAMduct, this can help you better understand how the various properties and objects are structured when you write your code.

If you want to learn more about Fabrication COD Scripting and how to use these resources, register for MEP Force 2021 and look for my Fabrication Scripting sessions.

You can find links with the other Fabrication COD Language Reference items here…

Fabrication COD Scripting Language Reference

Individual Object Models can be directly accessed here…

There’s also a link to a printable PDF of the Object Models….

Autodesk Fabrication 2022 Updates

Autodesk Fabrication 2022 marks a decade that I’ve been updating various documentation for the program. As usual, in recent years not a lot has changed but there are a few changes. Here’s a review of the changes for the data I track…

Script Library Updated / Enhanced

COD Script Library was updated for JOB and LIBRARY Scripts. You can download them for free here. Here’s a summary of changes.

Script Consolidation

In the past, there were 69 to 75 COD Scripts to export all the various properties to separate TXT files. Properties that have multiple entries per ITM like Connectors or Seams are still exported to separate files because the data columns don’t line up between them and there are multiple lines per ITM.

All other properties where it’s a single property per ITM like Spool or Material have all been consolidated to a single script and single TXT file. The WriteAllMiscProperties(Job).cod and WriteAllMiscProperties(Library).cod scripts are where you can extract all other properties so no matter what combination of properties you want, there’s less data files to sort through or scripts to run.

Improved Script Properties Display

The properties scripts were displayed script settings before running the script. They still are but additional properties are displayed where appropriate along with some additional properties the scripts now support (both covered later). In addition to the additional items, you’ll note that clicking the No button no longer cancels the script. Instead, clicking No takes you to the Advanced Configuration (also covered later) where you can change some of those settings.

Advanced Configuration – Scan Folder (LIBRARY Scripts Only)

By default, the script looks to the root of your ITM Library folder of your database. This value can now be changed to point anywhere else. You may want to point to a folder of ITM’s outside your Configuration if that’s where you store your ITM’s. You can also scan further down the folder structure so you can perhaps skip exporting Duct ITMs but instead scan and export Piping ITMs.

Here’s what this looks like. Note that the path may use forward slashes ( / ). You can however paste a new path that uses backslashes ( \ ) and it should still work. There’s no option in COD Scripts to allow you to browse to a folder so make sure you type or copy/paste carefully.

Advanced Configuration – Export File (JOB and LIBRARY Scripts)

Similar to the Scan folder configuration, you can now also change the default export file name and location. Specifications for specifying paths are the same as above.

Also note that while you CAN specify “CSV” as the file extension, I recommend using “TXT“. When Excel sees a CSV file, it just opens it without giving you the ability to specify how data is interpreted. Using a “TXT” extension makes Excel prompt you for “How” the file should be read like which character is used as the delimiter or defining which columns are Text vs other data types.

Some numerical data or values can be interpreted incorrectly by Excel if you don’t explicitly tell Excel to treat them like Text. A good example of this is the size 1-1/2″ or 1-1/4″. Excel thinks these are dates and will display them as 1/1/2012 or 1/1/2014 respectively if you don’t explicitly tell Excel to treat them as Text. Using that “TXT” extension on the export file is a safe guard against this issue.

A lot more detail that you likely wanted but hopefully it’s helpful, here’s what that looks like….

Note you may see an extra slash character between the path and file name. This is can happen if your MAP.INI (Edit Configuration Utility) includes or doesn’t include an ending slash. I may add code to clean this up later but COD Scripts and Fabrication seem tolerant of this extra slash so no need to worry about it (or edit it out if you like).

Advanced Configuration – Folder/Path Wildcard (LIBRARY Scripts Only)

Instead of editing the folder you’re going to scan, alternatively you can specify a wildcard to use to limit which folders to export data from. As an example, you could specify *WELDBEND* and properties will only be extracted for ITM’s within folders containing the name “Weldbend”. Wildcard specification is not CaSe SeNsItIvE. By default, the wildcard is ( * ) to extract from all folders. Here’s what that looks like…

Advanced Configuration – File Wildcard (LIBRARY Scripts Only)

Just like the Folder/Path Wildcard specification, you can specify a wildcard for which ITM files to extract properties from. As an example, you could enter *PIPE* and you would export only from ITM files that contained the work “Pipe”. Again, the wildcard is not CaSe SeNsItIvE. You can use both Folder and File wildcards to very narrowly specify your data export scope. Default wildcard is an ( * ) to extract from all ITM files. Here’s what that looks like…

Advanced Configuration – Delimiter (JOB and LIBRARY Scripts)

Data exports by default use a Comma ( , ) to create a Comma Separated Value file. If your Fabrication Database uses commas in folder names or ITM file names this can cause data fields to shift in Excel when opening the export file. If this is the case for you, you can specify a different character to use to separate the data fields in the export file. The Pipe ( | ) character is always a good “rarely used” character for this purpose.

As a side note, it’s not a good practice to have commas in folder or file names. You can read more about that here. This option is really here in case you’re stuck with commas and haven’t fixed them yet.

Advanced Configuration – Max Custom Data Index (Only Scripts that export Custom Data)

Only used for scripts that export Custom Data, you can specify the maximum Custom Index value. Unfortunately, COD scripts have no ability to determine how many custom data entries you have or which index numbers are used without jumping through some hoops. To work around this, you need to specify the maximum Custom Data Index value. The script will then loop through all those numbers and find which ones contain values and remembers them. It then exports only those custom index values so that the script runs efficiency.

By default the script uses 5000 as the maximum index number. But as you can see from the below example, the maximum index number is 10000 so we need to specify that. We look at all 10000 possibilities (it goes fairly quick) and takes note that there’s only 8 indices used and then extracts only those 8 from the ITM’s. In the past, the script would loop through all 10000 for each ITM really slowing things down. Now, even if your largest number is 6 or 7 digits (not recommended) the script will still be fairly quick.

Here’s what that Delimiter Character configuration option looks like…


In the past, if you didn’t like the export files names, where they went, or wanted to change the scope of which files or folders you extract data from, you could have always changed the COD script code yourself. You now shouldn’t have to. Hopefully this makes running these scripts a little more flexible and user friendly.

COD Script Extension for VS Code

If you write COD Scripts for Autodesk Fabrication, take note. There’s now an Extension for Microsoft Visual Studio Code (VS Code) which is Microsoft’s free code editor. If you use Notepad or Notepad++ to edit your code today you may want to consider switching. The COD Extension has some really nice features. Color coding of your code is the most obvious as shown below. However, there’s a lot more than just color coding. Features like Auto-Complete, Folding Sections and Dimension/Option Picker are nice additions in addition to a lot more robust documentation.

Installing The Fabrication COD Extension

If you don’t already have it, you can download and install VS Code here…https://code.visualstudio.com/. Once installed, go to the Extension section, type FABCOD and click the Install button.

Extension Summary

Once you’ve installed the Extension, you can review a summary of extension details here…

From here, you can review a couple of the key features and their keyboard shortcuts….

VS Code Feature – Mini-Map

Not a feature of the extension, but one reason VS Code is a nice editor is the Mini-Map which helps you visualize where you are your code.

FABCOD Extension Feature – Folding

One of the features the FABCOD extension exposes in VS Code is the ability to collapse/expand sections of code for Looping and Conditional function and other areas. When you move your cursor to the left margin, you see symbols that activate this functionality called Folding.

In addition to Folding sections of code, you can create your own areas of code to collapse/expand. These are Folding Regions and can be inserted (or typed manually using the proper syntax) by highlighting the code and pressing CTRL+SHIFT+/.

FABCOD Extension Feature – AutoComplete

Auto-Complete is another core feature of any code editor. VS Code’s Auto-Complete features is leveraged by the FABCOD extension. You’ll need to be editing a saved file with a COD file extension so the VS Code extension knows which code extension to use.

ABCOD Extension Feature – Hover Tips

If you hover over known functions/properties and their context can be determined, VS Code will display a tooltip for the function you’re hovering over. This can be a great way to learn coding as it’ll help you with the syntax.

FABCOD Extension Feature – DIM / OPTION Picker

One of the best features of the FABCOD extension is the ability to get suggestions for the Dimension (DIM) and Options. You can activate the DIM picker with SHIFT+F1 and the OPTION picker using SHIFT+F2 keyboard shortcuts. When using these features, you are presented with an edit box. You type the CID/Pattern Number you’re interested in and press Enter. You are then given a list of Dimensions or Options you’re interested in. It’s not fool proof because some patterns have variable DIM/OPTION values but it seriously helps none the less. Take a look here…

FABCOD Extension Feature – Additional Help

Sometimes you need added help for a function. The FABCOD extension is an open source project on GitHub (https://github.com/AgileBIM/FabCOD). This project contains added help for every function and property and is Auto-Generated and updated as the extension is developed. You can access this help from any of the popup ToolTips by clicking on the BLUE hyperlinked text.

FABCOD Extension Feature – AutoCAD Launcher

One of the other neat features of the FABCOD extension is the AutoCAD Launcher. Pressing F5 in the editor will initiate the script in CADmep. Simply Alt-Tab to AutoCAD and press enter. AutoCAD and CADmep must be loaded at the time for this to work. Due to Autodesk’s limitations in their API’s, this functionality does not work with ESTmep or CAMduct.

VC Code FABCOD Extension – Wrapup

There’s a lot more to VS Code that I won’t get into here. I’ve only covered the highlights of how it and the FABCOD extension can be used to help edit COD file in Autodesk Fabrication. As it’s an open source project, there’s instructions on how to become involved if you have the coding skills. You can also just head over and log issues or suggestions. (https://github.com/AgileBIM/FabCOD)