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.
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
It’s not a lot, but there are some improvements in Revit 2019.2 for Mechanical Contractors using Fabrication Parts. Martin Schmid, MEP Product Manager with Autodesk, explains more with some great video examples on the Revit Blog.
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 Teamfor 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.
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.
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.
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.
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.
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.
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.
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.
And one more image below that shows a recent model opened incorrectly from the Autodesk Desktop Connector.
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.
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.
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.
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.
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.
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 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.
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.
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 Material, Fabrication, 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.
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.
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…
Only One Concurrent Database Administrator at a Time.
If you use a shared database (such as on a network location), you’ll want to lock down who can edit the database and restrict that to a single concurrent user. Many areas of the Autodesk Fabrication database are large tables. If two or more users have the ability to edit those tables at the same time, you’re asking for problems. That is, the last user to edit the database wins and the other looses their changes.
Here’s how that happens….
User A logs in with full administrative permissions. User B then logs in with full administrative permissions.
At this point, both users are on the same page because they both loaded the database into the computer’s memory.
Now lets say, User A creates some new materials and connectors for some content they are building. At the same time, User B creates a new service and exits.
User B now has their new service written to the database on the server. That’s good. But User A doesn’t have those changes, they opened the database before those changes were made. When User A exits the database, what’s in memory on their computer gets written back. This is their new connectors and materials, but also the original list of Services without User B’s changes.
For this reason, it’s a good idea to create a separate user account used only for Database Administration work and limit it to a single concurrent user. To do this, use the “Configure Users” program that comes with all of the Fabrication products. The following image shows the setting that allows a single concurrent user and all the settings this account could (should) have.
Now if you look closely, you may notice I typically have a couple other Admin accounts in there. Once users are setup, you typically don’t need to mess with them again so I create a separate account only for this purpose but you wouldn’t have to, it could be combined with the “DatabaseAdmin” account.. This is the “UserAdmin” account shown in the image. I also restrict this to a single concurrent user and guard it’s password to only a few select people who really understand how the Fabrication Database works.
For every rule, there’s an exception and you’ll also see a “ReportAdmin” account. This account is NOT restricted to a single concurrent users and here’s why…
When you edit most database settings, you’re editing a large database table with lots of entries. When you edit a report, you’re editing a single file for that report only. The chances that two or more people will edit the same report at the same time is very small. This means multiple users can create multiple reports at the same time and each will save to their own file.
Much like Reports, content (ITM files) are separate file based and will most likely not have more than one person editing the same ITM at the same time. This means you could also create a separate “ContentAdmin” account that lets you setup and delete folders only (no other permissions). Alternatively, you could combine both of the Report and Content accounts into a single “PowerUser” account that does both like in the following image…
Using a less restricted account like this allows more people to create Reports or Content without creating a bottleneck in your workflow. Those creating ITM’s won’t be able to create new connectors or materials or other settings, but they can make new ITM’s that point to existing database entries. This will help you scale your content building activities when you get a last minute request for a large library of pipe fittings. Your primary database admin will use the restricted “DatabaseAdmin” account to create the needed materials and connectors, and you can then have a large number of users making ITM’s using the “PowerUser” account in a safe manner,
Based on a lot of years experience, I’ve been told many times by people that they are careful to not have two or more people go in at the same time and don’t need to restrict their accounts. But I can also tell you, the more I make sure it can’t happen with these restrictions instead of letting them assure me it doesn’t happen because they’re “careful”, the less “unexplained” problems and corruption I see.