Fabrication COD Script Library – Updated

If you’ve not downloaded the Autodesk Fabrication Script Libraries lately, you might want to grab an updated copy. There’s been several updates over the last month. Here’s what’s changed…

  • Damper Rotation Property (undocumented) has been added to all Debug, Job and Library scripts. Support for this property was added in 2017 but never documented. It’s there to support the rotation of Dampers on Fabrication Parts in Revit. It should be noted, that this value is Added to the Angle property of the assigned damper. As such, it acts as an Adjust and not an Override. e.g. Damper w/Angle of 90 + Rotation Property in the ITM of 90 results in a damper rotated 180 degrees.
  • Stiffener Group Property added to the Autodesk Fabrication 2022.0 and later versions of the Debug, Job and Library scripts.
  • Airturn Group Property added to the Autodesk Fabrication 2022.0 and later versions of the Debug, Job and Library scripts.
  • Splitter Group Property added to the Autodesk Fabrication 2022.0 and later versions of the Debug, Job and Library scripts.
  • Insulation StatusLock Property added but listed as “Unavailable” as it stopped working in 2017. Added in the hopes it gets fixed in future versions.
  • StructureType Property added to the Autodesk Fabrication 2022.0 and later versions of the Debug, Job and Library scripts. Property was “Write Only” in 2021 and prior versions so was unable to display in prior versions.
  • Product List HasCustomData Property has been added to all Debug, Job and Library scripts.
  • Product List HasFlow Property has been added to all Debug, Job and Library scripts.
  • Item PCFSKey Property has been added to all Debug, Job and Library scripts.
  • Item CostByLength Property removed from Material Debug scripts (never really belonged there).

You can find the updated scripts here….Script Library.

New Properties are documented here…Item Property Reference.

Fabrication 2022 Bug – Configure Users

If you run Autodesk Fabrication as a multi-user installation, there’s a defect in the Configure Users utility. When you run the utility from a 2022 installation, it won’t read any of the user accounts you have configured.

In fact, the only way to login, is to use the Default Administrator account Autodesk uses if there are no users configured. It won’t read your Administrative account regardless of what the login is. To see the issue, you can use the following to login and see the problem…

User Name: Administrator
Password:  Admin

Once logged in, there will be one account. You can make more but when you exit and come back in, those accounts don’t show up. IN fact, even the original Administrator account isn’t there, it’ll make a new one. The following image shoes the users accounts that were created in 2022 be repeatedly going into it. Next to it is the 2021 utility showing those same accounts. As you can see, they are there, its just 2022 won’t show them.

Note that all the other Fabrication products will read/honor the accounts properly. It only seems to be the Configure Users utility that had the issue.

How to Determine Which Version of Configure Users To Run

To make things ‘easy’, Autodesk chose not to add the version in the name of the shortcut. Simply looking for ‘Configure Users‘ shows a lot of indeterminate results.

To pick a particular version, Right-Click on one of the shortcuts and select ‘Open file location‘.

This will display a File Explorer window to the location of the shortcut you selected. As you can see below, the one I happened to pick was for CAMduct Components 2016. The product doesn’t matter, only the version, You can navigate back a folder then pick one of the Fabrication products for any version you want. 2021 and earlier will work.

Not sure if or when they’ll get around to fixing this. While 2022 has had a few issues fixed, they didn’t release any updates (yet) for 2021. Regardless if they fix it or not, it’s easy to work around by using any other version.

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…

Revit 2022 – Missing Fabrication Addins (temporary fix)

Update (2020.04.08): Autodesk released the Extension for MEP Fabrication 2022 on April 8th. You can get it from the Autodesk Desktop App or from your Autodesk Accounts Portal (manage.autodesk.com). This restores the MAJ Import/Export functionality and access to Fabrication Reports. It does NOT install the RME to FAB add-in. So part of the below guidance is still needed. You’ll want to copy the ADSK_Export.addin file per the below instructions. The other file is no longer needed and Autodesk’s newly released Extension will overwrite what’s needed if you used the below guidance.


If you’re an Autodesk Fabrication user and loaded up Revit 2022, you may have noticed some key Fabrication Add-ins are missing. It happens most every release. Deadlines for product releases always trump add-ins. This year, all the installers were reworked too so there was extra work I’m sure.

Don’t fear, they’ll get to them eventually. Just keep an eye on the Desktop App for when the updated Add-ins are release. In the mean time, here’s a temporary fix…

Enabling Fabrication Add-ins

To get the Fabrication Add-ins, you’ll need Revit 2021 installed and have those add-ins loaded in there. From there, there’s 2 files you’ll need to copy to a different folder.

Autodesk.MEPFabricationPart.Commands.Application.addin
ADSK_Export.addin

The first file enables MAJ Import/Export and Fabrication Reports. The second file enables the Fabrication RME Extension in the Add-ins Ribbon.

You copy them from this folder…

C:\ProgramData\Autodesk\Revit\Addins\2021

…to this folder…

C:\ProgramData\Autodesk\Revit\Addins\2022

Here’s what that looks like in Windows Explorer….

What This Looks Like in Revit

Once you copy those files, restart Revit to see the changes. Here’s a review of what that looks like…

MAJ Exports

MAJ Import

Fabrication Reports

A Parting Word

It should be noted that this work around should be considered “temporary”. You’re running 2021 Add-ins in 2022. The files you coped should be removed once the official 2022 Add-ins are released. This will ensure you get any fixes they may have added to the 2022 versions.

Fabrication Job Contains No Parts – Possible Fix?

Have you ever tried importing an MAJ into Revit and received the following error….Fabrication Job Contains No Parts.

There’s a lot of reasons this can occur and it’s NEVER because there are no parts. So much for Autodesk’s QA/QC and Error checking.

You may see this most commonly because parts used in the model contain data that’s no longer in your database. You’ve likely noticed from time to time database entries with curly braces around parts of the name like the following…

This happens when an entry in the database is used by an ITM but the database entry itself later gets deleted. Information is cached within the ITM so when it’s accessed, it creates a Proxy entry in your database if it was missing. Within the {Curley Braces} is the name of the object that created the entry.

While CADmep, ESTmep and CAMduct handle this fairly gracefully, Revit on the other hand does not. When it attempts to load an MAJ, it sees these entries and notices they’re missing from your database and prohibits you from importing the MAJ file. Revit thinks the database doesn’t match the MAJ and stops you cold!

A Possible Fix

If this is cause for the import error, you can use the following COD script to potentially work around the issue….

Take the following script and run in in CADmep, ESTmep or CAMduct. You should be logged in with Administrative Permissions while doing this. This script isn’t fixing Revit or the MAJ. What it’s doing is loading ALL the ITM’s from your Database Library into memory.

The process of loading all these ITM’s into memory creates all these proxy entries in your database. This way, when Revit attempts to import the MAJ, the data associated with those ITM’s are most likely present in your Database configuration. In many cases then results in a successful import of the MAJ.

If the Revit file you are importing the MAJ into already points to a Fabrication Configuration, you should reloaded the configuration FIRST before attempting to import the MAJ.

If for some reason this process still doesn’t work, verify that Revit is reading from the same database location as the version of CADmep, ESTmep or CAMduct where you ran the COD script.

In the event it still doesn’t work, there may be other reasons for the failure but this is often the most common, especially with MAJ’s created recently.

If it does work, you’ll want to use the other scripts I provide on this site to help analyze your database. You likely deleted those database entries in the first place for a reason. You either didn’t realize they were needed, or you didn’t know where they were used to repoint those ITM’s to a proper substitute. Those scripts can help you find which ITM’s use which database entries.

Hope this helps.

Autodesk Fabrication Scripting – Did You Know?

In the list of COD Scripting updates I just posted, there’s a couple undocumented functions that have been on my list to explore for more than a few years. I’ve finally gotten to them and figured out what they do.

I won’t comment on how long it took me to actually explore what I had listed in my “To Research” list for years other than to say, Procrastination is a Virtue for those with no Patience.

So without further delay…here you go….


Output Function

This first one is the OUTPUT function. You can call it a couple different ways, with and without parenthesis just like the DEBUG function. It doesn’t really seem to matter. It’s really kind of a worthless function in my opinion.

Not only does it only work in CAMduct and ESTmep (not CADmep) it really isn’t that helpful. It just outputs a message to the Console window. I was initially hopeful it would allow me to “script” some of the secret Console command but no such luck. It’s just a message.

You can see in the COD Code editor the below with both syntax examples…

When you run the script, it’ll call up the Console and display the text you specified. You can see from the following example, it doesn’t even space the text when you call it multiple times. Even tried embedding a Carriage Return in the string and still no luck automating via the Console.


Breakpoint Command

The other command is much more helpful and something most folks don’t know about. I have run into a couple now who knew but most it’s not known. I wish I knew years ago…it’s actually a small step closer to what you’d expect in a modern IDE (Integrated Development Environment).

The Breakpoint function calls up the panel on the right. It displays the values of all your variables. You can see how the value of the “z” variable is displayed. When you hit a Breakpoint, code execution stops until you hit the green arc’d arrow. Code execution then continues until you get to the next Breakpoint if any.

You can access the COD Script editor in CAMduct or ESTmep using the FILE pulldown menu. You can also use the editor in CADmep but unfortunately, there’s no way to display it without writing intentionally wrong code to cause your program to fail and display it. You can then use the editor like you do in ESTmep or CAMduct.

One thing to note, BREAKPOINT only appears to work when you execute code from the Script Editor. If you call it from AutoLISP using (executescript “myscript.cod”) or the EXECUTESCRIPT command in CADmep or by right clicking in your Takeoff items in ESTmep or CAMduct, it runs without stopping your code. This means you can leave the breakpoints in your code and edit/debug via the script editor but not have to remove them when executing them un a production setting.

Fabrication “Edit Configuration” Utility Documentation

I’ve added documentation for thee Autodesk Fabrication Edit Configuration utility to the site. You can find it here or in the Fabrication menu.

This utility is fairly misleading. Because it prompts for a Database Configuration, most people think the settings apply to the selected configuration. While some of the settings are saved in the MAP.INI and therefor specific to a database configuration, not all are. Many are saved in the Windows Registry.

How Settings Work

Settings stored in the registry need to be made for each program, program version and user. That is, if you make changes to settings stored in the registry using CADmep, they only apply for CADmep. If you’re using ESTmep, you need to make the changes there too. Additionally, if you use the utility that ships with the 2020 version of CADmep, they won’t apply in the 2021 version of CADmep without making the changes there too. Lastly, the only apply for the user who is currently logged in. Log in as another user and all those settings needs to be changed again.

This is the reason I typically make the changes directly using registry edits or automation that imports the registry changes. This allows me to ensure I’ve not missed anything and that they get set no matter the user.

Edit Configuration Utility Tricks

The Edit Configuration utility itself is confusing. The utility ships with each Fabrication Program (CADmep, ESTmep, CAMduct, CAMduct Components, Remote Entry and Tracker). The same utility will present slightly different options depending which folder it is run from. And to add to the confusion, the shortcuts are all named identically.

To make it easier, I go to the folder with the shortcuts and rename them. From “Edit Configuration” to “Edit Config (CAD21)” and similar. This helps me know which program I’m calling the utility for.

Even if you don’t edit the MAP.INI file or Windows Registry directly and instead use the utility the documentation is helpful for letting you know where the settings are stored. This helps you know how to edit them to your needs.

Updated From Prior Documentation

If you’ve attended any of my prior Autodesk University or MEP Force conference presentation, you may already have a copy of this documentation. However, I’d encourage you to use the version I’ve posted no this site. Not only did I add information for the CAMduct Components, Remote Entry, Tracker and Fab Review applications, I’ve also fixed some errors and typos in the prior existing data.

Renumber Revit Fab Parts – No Purchase or Coding Required

Most MEP contractors moving to Revit with Fabrication Parts at some point wrestle with renumbering parts. You can purchase tools or add-ins to make this easier or even write your own with Dynamo or C#.

But most contractors aren’t coders. And buying more software can also be a challenge. The good news is that those are not your only options, There’s some well written FREE Revit Add-Ins that make this a breeze.

Required Tools

Head over to DiRoot’s web site (https://diroots.com/) and download the OneFilter Add-In found here and the ReOrdering Add-In found here.

Once installed, you’ll find the tools in the DiRoots Ribbon in Revit along with any of their other tools you may have installed.

Getting Started

The following image shows 2 runs of Rectangular and 2 runs of Round duct work drawn in Revit using Fabrication Parts. One is drawn in a +2in WG service and the other -2in WG service. All duct has a tag configured to display the Fabrication Part’s Item Number property.

First Up – DiRoots OneFilter

Using the DiRoot’s OneFilter Add-In, you can easily select not just Fabrication Parts, but also select them based on their properties.

Once selected, you can see Revit selects the specified items in your model.

Next – DiRoots ReOrdering

Now that your desired parts are selected, you can use the DiRoots ReOrdering Add-In to renumber those parts.

After applying your renumbering parameters, you can see how Revit then displayed the updated Item Numbers for the Fabrication Parts.

Wrapup

As you can see, with a couple free (well written) utilities you can quickly and easily select and renumber your fabrication parts in Revit.

There’s a lot of other reasons beyond renumbering to use some of these Add-Ins. They’re very functional for a lot of workflows. Those uses are beyond the scope of this post but feel free to explore these Add-Ins or some of the other DiRoots tools when you get a chance. They’re some of the highest quality free Add-Ins for Revit than you’ll find anywhere.

COD Script Updates – 2020.07.08

I’ve made a couple updates to the Autodesk Fabrication script libraries. If you use them, you can download updated versions from here.

Scripts have been updated to include the Connector Material property found on CID/Patterns 522, 1522 & 2512 as shown below…

This property is intended to be used by a connector to specify a alternate material the connector can connect to. This allows a coupling to connect to alternate materials such as with transition couplings.

Credit for discovering the COD function to extract this property goes to Liz Fong at MacDonald Miller Facility Solutions in Seattle, WA.

Note: This property has also been added to the list of COD Item Properties located here.

Scripts Updated

  • Debug Scripts
    • Debug ITEM Connectors.cod
  • Job Item Scripts
    • WriteAllConnectors (Job).cod
    • WriteAll_Props (Job).cod
  • Library Item Scripts
    • WriteAllConnectors (Library).cod
    • WriteAll_Props (Library).cod