AutoCAD Error: “unrecognized version and cannot be read”

If AutoCAD has ever given you an error “unrecognized version and cannot be read” error, it’s likely a corrupt CTB/STB file. An image of the error can be seen below…

You can also see this followed by another error dialog, “is not recognized syntax, select OK to ignore or Cancel to abort“. This error also shown below, is likely related to the same corrupt CTB/STB file.


Where Are CTB/STB Files Located?

To find where your plot style tables are located, type “OPTIONS” in AutoCAD”s command line. In the “FILES” tab, expand the “PRINTER SUPPORT FILE PATH” node as shown below.

A few things to note and the plot style tables support path….

  • Support paths are specific to the AutoCAD profile that’s loaded. Load a different AutoCAD profile and the path may be different.
  • AutoCAD profiles are user specific, if other users log into the system, they may also be pointed to a different path.
  • Support paths for the plot style tables will follow nested folders. That is, if you have folders under the configured path, AutoCAD will look in all those sub-folders for additional CTB/STB files too.
  • Shortcuts are followed. IF you have shortcut placed in the support path, AutoCAD will also follow and look for CTB/STB files in the location the shortcut points to as well as any sub folders there too.

Buying ITM Content

If you use Revit’s Fabrication Parts, CADmep or any of the other Autodesk Fabrication products like ESTmep or CAMduct, you use ITM content. ITM files can be tricky and time consuming to build. If you don’t want to tackle it yourself or just done have time, I recommend Virtual Building Supply (https://itembuilders.com).

There are other companies that will build ITM content for you but their quality varies. Nibco as an example, is two companies removed from the firm that produces their content. As that firm has had some questionable business practices, I won’t get into detail other than to say I can tell just by looking at an ITM if they created it. If they did, I won’t use it.

There’s a few Autrodesk resellers as well who will build ITM content slightly cheaper but don’t put the quality or extra data associated with it into their work.

Virtual Building Supply on the other hand is run and operated by industry insiders. They’ve installed pipe. They’ve managed Autodesk Fabrication databases. They know their stuff.

If you browse to their downloads page, the have a few things you might be interested in…

PDF Catalog of Fabrication Patterns

IEZ Service Import File w/All Default Pattern Numbers

Beware! – Revit & Desktop Connector

If you use BIM360 Design (formerly “Collaboration for Revit” a.k.a. C4R) along with the Autodesk Desktop Connector, you should be aware of a common mistake that can lead to data loss.

BIM360 Design or C4R as the older version is called, is used to store Revit models in the cloud on Autodesk’s BIM360 platform. BIM360 Design using the BIM360 Docs platform as storage platform. C4R on the other hand uses the older BIM360 Team for storage of the Revit models.

While you could (can) upload your Revit models via the web interface to either storage platform, Revit would not see these files. They needed to be enabled for Collaboration and uploaded through Revit. This process made changes to the Revit files which enabled collaboration from BIM360 Design/C4R.

BIM360 Design/C4R collaboration is enabled and files uploaded using the Collaborate ribbon in Revit.

while Revit models need to be uploaded this way, there was no other way to upload other files types besides the web interface. Even if you did upload AutoCAD, IFC, Navis or other files types that Revit can link, there was no way to link these files into Revit from the BIM360 platforms. If you linked them from your server, the other members of your team without access to your server would not have access.

Autodesk Desktop Connector was created for this purpose. While you can’t link a non Revit file type into Revit directly from BIM360, you can use the Autodesk Desktop Connector to sync those other files types locally to your computer. Any other team members also using the Autodesk Desktop Connector would then also have access to those same files and the links would be identical.

What’s the problem?

The common problem that comes up when using BIM360 Design/C4R along with the desktop connector is Autodesk’s unfortunate choice in using the same icon for both products.

Depending where you see the icon, you get different results. If you click the one that references BIM360 collaboration services you’re good. If you click the one that references the Autodesk Desktop Connector, bad things can happen.

When a file is enabled for Collaboration and you open it through the Autodesk Desktop Connector, Collaboration is disabled and the file is configured as a local file or central file like you’d typically use of a file server. When this happens, the file is seen as being different and will not sync back to the BIM360 platform.

What this means then if that you have two different version of the file. One stored locally from the Autodesk Desktop Connector and another cached locally when opened from BIM360 Collaboration service (BIM360 Design / C4R) When you look at BIM360 Docs or BIM360 Team portals, you only see one version.

How do I know I’m using the correct Icon to open my Revit file?

Depending on the particular versions of Revit and their update versions, your install of Revit may appear different but the underlying concepts are the same. For these images, Revit 2018.3.2 and 2019.1 were used.

When opening a Revit model from 2018, you’ll see the “B” shortcut in the left. This is the proper way to open BIM360 Design/C4R enabled files. BIM360 Design and/or C4R sites will be listed depending if you have been given access to projects within those sites that use 2018 version of Revit.

Revit 2018 Open Dialog when accessing BIM360 Collaboration models.

When opening a Revit model from 2019, you’ll also see the “B” shortcut in the left. The same as with 2018 versions, this is the proper way to open BIM360 Design enabled files. BIM360 Design only will be listed because 2019 doesn’t use BIM360 Team/C4R. If nothing is displayed here, you may not have been given access to projects within those sites that use the 2019 version of Revit.

Revit 2018 Open Dialog when accessing BIM360 Collaboration models.

The other place you may see the BIM360 icon is from My Computer or other shortcuts that look at your local system. The following image shows 2018 when using the incorrect shortcut because it instead points to the Autodesk Desktop Connector drive on your computer.

Revit 2018 Open Dialog when accessing the Autodesk Desktop Connector Drive

And once again, 2019 versions of Revit are similar. On clue is that here, even though 2019 doesn’t support C4R, they are listed here. This is because you’re not accessing via Revit’s collaboration tools, you’re simply accessing a special local drive on your computer that’s syncing everything in the BIM360 platform completely independent of Revit.

Revit 2019 Open Dialog when accessing the Autodesk Desktop Connector Drive

More clues when opening Models from the Recent Files List

If you’re trying to open Revit models using the Recent Files list, there’s a few subtle clues that tell you if you’re opening a collaboration enabled BIM360 model or simply opening a model from the Autodesk Desktop Connector drive.

The following image shows Revit 2018 with a BIM360 Design/C4R model correctly. Notice the drive letter in the path as well as the “Cloud” image in the thumbnail.

Revit 2018 with a Recent File that uses BIM360 Collaboration

The following image shows Revit 2018 with a Recent File that was accessed incorrectly from the Autodesk Desktop Connector. Notice the path will point to your Users folder on your computer and there’s no “Cloud” image on the thumbnail.

Revit 2018 with a Recent File that uses Autodesk Desktop Connector

Similar to 2018 but formatted differently, Revit 2019 displays the same details in it’s Recent Files. The following image is 2019 showing a recent file opened correctly through BIM360 Collaboration tools.

Revit 2019 with a Recent File that uses BIM360 Collaboration

And one more image below that shows a recent model opened incorrectly from the Autodesk Desktop Connector.

Revit 2019 with a Recent File that uses Autodesk Desktop Connector

Additional Clues

Looking at some of those subtle options can easily be overlooked or forgotten. Especially in the daily stress of production and deadlines. There are a few more obvious clues that can tell you if you’re opening your Revit models correctly.

For starters, when you open a BIM360 Design or C4R model properly in Revit, you’ll see a nice status dialog indicating that the files is being opened and sync’d locally.

Opening BIM360 Models Properly Displays A Status Dialog

On the other hand, there’s a major red flag when you open the files incorrectly though the Autodesk Desktop Connector. When you open the files incorrectly, you’re prompted to work on the model temporarily or save it locally as a Central Model. If you see this dialog, you know you opened the file incorrectly and should click the Cancel button.

Revit Model Opened Incorrectly from the Autodesk Desktop Connector

If for some reason you or another user did open the file incorrectly, you can use the Autodesk Desktop Connector icon in the Windows System tray to review the pending actions. There will likely be warnings when reviewing the connector’s syncing status tasks. Note however that that lack of pending tasks with errors does not mean a file can’t been opened incorrectly. Any number of other actions could have overwritten the local copy or cleared those actions.

Autodesk Desktop Connector Pending Actions With Errors

Another subtle clue is that if you look at the collaboration hubs and you see multiple projects that use different versions of Revit between them, you know you’re opening the models incorrectly. The Autodesk Desktop Connector display all projects, regardless of Revit version being used because it;s independent of Revit. When opening files correctly for BIM360 collaboration, Revit 2018 will only see 2018 project versions and Revit 2019 will only see 2019 project versions.

Again, if you don’t see differently projects that use different Revit versions, that does not mean you’re opening them properly. You merely may have been granted to projects of only one Revit version. But if you do see multiple projects you know are using different versions of Revit, it;s a sure sign you’re opening the files wrong.

Two Projects Using Different Versions of Revit Listed Together is a Red Flag

Best To Avoid Using The Dropdown

The last word of warning is with using the drop down list in the Open dialog. Depending when and how you’ve accessed Models, neither BIM360 icon may be present, one or the other may be present, or both BIM360 icons may be present. Because they have no description, its hard to tell wich does which.

The following image shows the Dropdown list expended with both BIM360 icons displayed. One will take you to the proper BIM360 collaboration tools and the other, incorrectly to the Autodesk Desktop Connector.

BIM360 Collaboration and Autodesk Desktop Connector Icons Look Similar.

Because of this very subtle difference, it’s likely a best practice to not use them ever. If they don’t show up on your system, don’t worry. They typically won’t display until you’ve first accessed the corresponding My Computer or BIM360 shortcuts on the left side of the dialog.

Revit 2019.2 Update Released

Revit 2019.2 Update was released today. Of particular interest in 2019.2 is the addition of Revit Cloud Models which allows users to host Revit models in the BIM360 platform even if not collaborating. Kind of a BIM360 Design/C4R “LITE” so to speak. That description of Revit Cloud Models is likely a little misleading so I recommend a more robust (but still not entirely clear) explanation on the Revit Blog.

You can download the update from your Autodesk Accounts Portal…

Or you can download and install from the Autodesk Desktop App…

You can see a list of issues fixed and new features from this link.

ITM Dimension/Option Locking Hack

When you build content, it’s often desirable to have certain dimensions or options locked. This even applies to connectors, seams and dampers but to a lesser degree.

If you have a lot of Dimensions and/or Options to Lock or Unlock, you don’t have to individually pick each one. You can lock or unlock many very quickly provided they’re in a row.

The trick is simple….pick the button to lock/unlock the first field you want to change, and then while still holding the pick button drag your mouse up or down. This is a fast an efficient way to lock large groups of properties without picking each one.

The following recording shows this process. We’re using Pattern Number (CID) 910 as our example.

What Does COST TYPE do on ITM Content?

When you build Autodesk Fabrication content, you may have noticed one of the properties “Cost Type“. You can see this setting is shown in the following image. 

If you do some searching online, you may run across an explanation for some but not all. As Autodesk explains in it’s online help….

  • Normal – Reads the MaterialFabrication, and Installation tables to generate costs of all materials, fabrication labor and installation labor.
  • Supply Only – Reads the Material and Fabrication tables to generate the same costs of material and fabrication but NOT installation. (You’d typically use this if you are fabricating for others outside your company.)
  • Free Issue – Reads only the Install table when calculating costs.

This leaves two remaining values that can be set. These are not documented by Autodesk. These two serve the same purpose…

  • Demolition – Used as a filter for Labor table value sets
  • Relocation – Used as a filter for Labor table value sets

Using these values would allow you to build a labor table for relocation that would include uninstall and reinstall time. You could also use the demolition value to build a labor table for removal only of an item. 

While you would think these only would apply to an install table, these filter values are also available for the fabrication table. At the very least, this opens up the possibility of using it in creative ways to serve whatever purpose you like.

Defensive Driving for Coders

Disclaimer: I’m not a professional coder. Just a good hack, script kiddie, amateur, whatever you want to call me. But I’ve been doing it for a while and I tend to be good at finding ways to make things less error prone. I also pickup tricks from industry peers who humble me with their ability.

If you aren’t a professional programmer, you’ve likely never been told either. So I’m telling you as its helped me and I’m sure it’ll help you too if you’re an amateur like me. 

This works regardless of language. Whether you code in Visual Basic, AutoLISP, Java, C# or any other language the concepts are the same but the syntax will be different. For this reason, I’ll use pseudo code…that is, syntax that isn’t any particular language but uses terms obvious to describe what’s going on.

The Issue with Strings (Text)

A common activity in any programming is reading text, often called String data types. You read the value from somewhere else like a property or have the user type the data. You then need to test the data in a conditional statement to see if the data is valid. You may also be testing to see which action to take depending on what was typed. 

The problem when doing this is you don’t always know the case used when typing. Most conditional testing on string data is CaSe SeNsItIvE. Take the following examples….

MyValue = "Elephant"
if MyValue = "Elephant" then
MessageBox "Yes - There's an Elephant in the room"
end if

This code works because the case of the text strings is identical. But what about this….


MyValue = "elephant"
if MyValue = "Elephant" then
MessageBox "Yes - There's an Elephant in the room"
end if

In the above code, the test fails because the “E” in “Elephant” is now lower case.  This is very simple to solve and is obvious once it’s pointed out.

To resolve this, when you test a String value, use code to force the value to either UPPER (or lower) case and test against that. Now look at the following code…

MyValue = "Elephant"
if
Upper(MyValue) = "ELEPHANT" then
MessageBox "Yes - There's an Elephant in the room"
end if

  …or this example…. 

MyValue = "Elephant"
if
Lower(MyValue) = "elephant" then
MessageBox "Yes - There's an Elephant in the room"
end if

In either of these examples, we take the value we want to test, force it’s case one way or the other and test against that case. Now it doesn’t matter what case is typed by a user or returned when reading a value, the test is now essentially inoculated from case differences by forcing it one direction or the other. 

A Less Obvious (but related) Tip

Another common mistake I see people do is not use this technique when they know the software better. For example, lets say you wanted to retrieve the type of AutoCAD object and noticed that AutoCAD ALWAYS returns the name in mixed case….”Line”. 

It’s common for less experienced programmers but very smart and observant coders to ignore the tip I just suggested. I’d advise you to NOT do that…always use a forced case when testing text strings. Even when you’re sure the value you are reading and testing is always a particular way.

Why? What happens if…that pesky if…AutoCAD or whatever you are using changes? Autodesk sees a lot of programmers…maybe they overhaul AutoCAD code and object types are now returned upper or lower or a mix? You’ve now put in the hands of someone else if your program will break in the future. As unlikely as it seems, it’ll eventually happen. The key to writing resilient code is tricks like this. Think of it as a coder’s version of “Defensive Driving”. Anticipating future inconsistencies and planning for them makes your code more resilient and less likely to break on your next upgrade. 

Fabrication CADmep Help

It’s sometimes easy to miss new things. This is why I want to point out something that was added in 2015. CADmep now has an APPHELP command. You can type APPHELP at the command prompt to bring up CADmep’s help system.

If you’re online, the help is pulled from Autodesk’s web site from the following URLs…

When you’re not online, APPHELP  loads the help system that’s installed locally. You can find it in these folders…

  • C:\Program Files\Autodesk\Fabrication 2015\Help\index.html
  • C:\Program Files\Autodesk\Fabrication 2016\Help\index.html
  • C:\Program Files\Autodesk\Fabrication 2017\Help\index.html
  • C:\Program Files\Autodesk\Fabrication 2018\Help\index.html
  • C:\Program Files\Autodesk\Fabrication 2019\Help\index.html

But what if you’re using CAMduct or ESTmep? No worries. The other products work the same way. Instead of typing APPHELP, type F1 on your keyboard or use the Help pull down menu.