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.

BIM360 Integrations

If you’ve ever wonder who’s integrating with Autodesk’s BIM360 Platform there’s a list online. This is more important than ever with the number of solutions out in the market. When you select one, you’ll want to know if you’re creating another digital silo. Autodesk integration list is a good way to see if your net solution can be leveraged with your existing BIM360 accounts. 

https://integrations.bim360.autodesk.com/ 

Autodesk Selling Previously Abandoned Product

While applicable to my career over a decade ago, I normally wouldn’t cover news on ArtCAM. It’s not relevant in my current professional life. However I find this interesting and noteworthy which is why it caught my eye. 

ArtCAM History 101

In 2014, Autodesk acquired a CAM software developer named Delcam. (https://en.wikipedia.org/wiki/Delcam)  Delcam was based in the United Kingdom and wasn’t as widely known as some of the big players like MasterCAM, Gibbs, Esprit or any number of others. Delcam was different. Instead of a few well selling products, they had a vast portfolio of CAM smaller solutions for niche markets like jewelry and footwear. 

Autodesk on the other hand is a large volume software company. They don’t do “niche” very well. The smart play was to leave Delcam alone. This lasted for a few years but that recently ended.  

One of their more popular products was ArtCAM. I supported it at one of my past employers over a decade ago. Earlier this year, Autodesk announced they were discontinuing ArtCAM to the dismay of it’s users. This was no surprise as Autodesk has a long history of acquiring software and companies and realigning or discontinuing products. You can see a list of most of them on Steve Johnson’s blog here…https://www.cadnauseam.com/autodesk-graveyard/

Departing from Historical Actions

What I do find noteworthy, and I’m just getting around to write about it now despite being month old news, is that they made the decision to sell it off. ArtCAM will continue but from a new company. This typically doesn’t happen. You either take the hit and migrate to what Autodesk wants or you find another product. This time, the product will continue but with a new company and name…Carveco. http://carveco.com/

Why do I find this interesting? It’s no surprise that Autodesk has pretty much abandoned new development of Fabrication CADmep, ESTmep and CAMduct. All their efforts are focused on Revit’s Fabrication parts. While that eliminates the need for CADmep for many, there’s still no clear public strategy on ESTmep or CAMduct. It would be nice if they took those products and found a way to spin them off. Granted, it’s harder in this case. They share a common data platform (the Fabrication Configuration) and content with Revit now. None the less, I’m sure there’s a lot of smaller firms that could make a good run of it. They’d just have to partner with Autodesk a little differently than in typical. 

What do you say Autodesk CEO Andrew Anagnost? You’re company helped fracture the MEP industry with your purchase of MAP software in 2012. Only now do we see several 3rd parties emerging and targeting the MEP contractor. How about giving one or two of them a shot…to continue with the value we see in these products?  

AutoCAD ActiveX Programming in VBA or AutoLISP

ActiveX is a framework developed by Microsoft in 1996 which adapts earlier concepts of COM (Component Object Model) and OLE (Object Linking and Embedding). Most people may think of this as Visual Basic (pre .Net era) programming.

This was supposed to fade away as Microsoft moved to the .Net based languages so Autodesk pulled support in the shipping versions of AutoCAD years ago. It was however still available as a separate download for a limited time but that time never arrived. Microsoft kept it around and still today, Autodesk supports VBA, a version of Visual Basic embedded within the Application over half a decade later.

If you’e not interested in programming AutoCAD in VB or VBA but do use AutoLISP, I’d encourage you to keep reading, this article is still for you.


Enabling VBA in AutoCAD

 If you want to take a stab at VBA programming in AutoCAD, you’ll need to install the Visual Basic Extension. The extension can be downloaded for 2016 – 2019 versions of AutoCAD from this link….https://tinyurl.com/AcadVBAInstaller

Download the VBA Enabler for AutoCAD from Autodesk’s web site.

VBA Help for the AutoLISP Programmer

Now, with AutoCAD’s help now Online, you might be tempted to think that it’s the most robust help you can get from Autodesk. Simply typing “F1” will bring up AutoCAD’s help and browsing through the developer documentation, you can find documentation of AutoCAD’s ActiveX Object Model like seen in the following image.

AutoCAD’s ActiveX Object Model is buried in the AutoLISP documentation Online.

Looking at the above image, the graphic of the Object Model contains no hyperlinks. And there’s no documentation on the Methods, Properties and Events typically available for this type of programming. 

If you’re programming in VBA, the VBA Editor has tools for helping navigate this model or provides a lot of Auto Complete functionality when typing code.  This doesn’t help anyone trying to program ActiveX from AutoLISP.

This is where the Offline Help comes in. You can access the OffLine Help download page from within AutoCAD by clicking the down arrow next to the question mark in the upper right corner of AutoCAD and then selecting Download Offline Help to download and install the help system.

Got to the Offline Help Download page from this menu.

You can also click the following link….https://tinyurl.com/Acad2019-OfflineHelp to go to the AutoCAD 2019 Offline Help download page as shown in the following image.

Download and Install Offline Help from this page.

Configuring Offline Help

Once installed, you can configure AutoCAD to use the Offline version of Help by typing Options at the command line and clearing the toggle in the following image.

Clear this Toggle to Default AutoCAD to Offline Help

Once configured, typing “F1” will access the Offline help. One of several added pieces of Documentation which includes the ActiveX Developer’s Guide, is the ActiveX Reference Guide. You can see the graphic of the same Object Model documentation as before, but this one is hyperlinked to documentation of the Objects as well as lists all of the Methods, Properties and Events. 

The ActiveX Reference Guide contain all the documentation you need for ActiveX programming.

While all of documentation is written with the Visual Basic programmer in mind, the organization of the ActiveX object model and everything else is where you can get all the documentation you need to help translate the function calls to their AutoLISP syntax. When you make a call to (vl-load-com) in AutoLISP, you have access to over 2000 additional AutoLISP functions with a VLR- prefix. These functions are all documented here in the ActiveX Reference Guide in Visual Basic syntax.

In a future post, I’ll explain how to translate the Visual Basic documentation to AutoLISP syntax. If you don’t want to wait, review the ActiveX documentation found in the AutoLISP developer guides…it’s all in there!  

One Final Note: You do NOT  need to install the VBA Extensions in order to program w/ActiveX from AutoLISP. Just install with Offline Help and you’ll have everything you need. 

Fabrication Area Calculation

Have you ever had a duct fitting seemingly calculate the area significantly under what it really way? The answer may be right under your nose.

The following two properties dialogs are for the same fitting. For simplicity, connectors and seams were set to “None

Notice the properties window on the left says 4 sq/ft and the one on the right is 20 sq/ft. You’ll notice a little lower the “Cost Units

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 Properties via AutoLISP

If you’re an AutoLISP programmer and use Autodesk Fabrication CADmep, you most likely know that there’s a COD Scripting language in Autodesk Fabrication that provides read and/or write access to CADmep properties. The problem with COD Scripts, is that sometimes they’re not powerful enough to do all of the other things you’d like to do and you may want to use AutoLISP.

What you may not know is that you can access the vast majority of CADmep properties from AutoLISP. To so this, you need to configure CADmep’s List Setup dialog which will provide a light weight but similar interface to what you see when you build reports in Autodesk Fabrication. 

To access List Setup, right-click in an open area or the drawing editor and then select “CADmep” -> “Setup” -> “List Setup” from the menu. 

List Setup will Provide access to CADmep Properties

Configuring List Setup will provide access to the configured properties via DXF codes which are one of the most common ways of accessing object properties in AutoLISP. (You can also access these same DXF based properties via VBA, ARX or .Net)

The following image shows the List Setup dialog before (left) and after (right) being configured. Simply add the properties you want to extract in the order you want them.

Before and After Configuration of List Setup

Once you’ve configured the properties you want, a simple call to the (ENTGET) function in AutoLISP will return the data you’re looking for. You can see in the following image, that we’ve saved the DXF data to two different variables in the VisualLISP editor. The listsetup-blank variable (left) was done before configuration and the listsetup-config variable (right) was done after the configuration of List Setup.

CADmep Properties can be Found in the 300 DXF Group Codes

The code used to extract the data is the following….

(setq listsetup-blank (entget (car (entsel))))
(setq listsetup-config (entget (car (entsel))))

Because the VisualLISP editor does not word wrap it’s results, you can use the Inspect

Now, there are a few things to know about this method….

  • All CADmep properties show up in DXF Group Code 300. If you are returning multiple properties, you’ll have multiple 300 codes to parse through.
  • The order the properties are configured in List Setup is the order the properties will appear when returned in AutoLISP. There really is no other foolproof way of knowing which codes are which properties (unless obvious by their value) without knowing the order List Setup was configured.
  • If you later change the properties or their order, you’ll likely break your existing code. Think carefully about what you may want later and add it from the start even if you don’t want it at this time. If you need to add properties later, simply add them to the end of the list.
  • This method works well for reading Fabrication properties. It doesn’t allow you to set them using functions like “(ENTMOD)” or “(ENTUPD)

Fabrication 2018.3 & 2019.1 Updates Available….Again.

After a very brief appearance toward the end of October, the Fabrication updates for 2018.3 and 2019.1 are back on line as of today.

Unlike previously speculated, they were not removed due to issues. They were intended to be released later but were inadvertently released early. If you happened to have them from their initial release, you don’t need to download the update again, the build numbers did not change. However, the PDF documentation of fixed issues on some of them did get more information listed in what was fixed. You can review all the issues addressed here…

Tag Opposite End of Fitting

In CADmep, using the Size command, you can tag the size of a fitting. But on a fitting like a transition, what if you wanted to tag the size of the opposite end?

This can be easily done but the sequence is a little nuanced. Type “SIZE” from AutoCAD’s command prompt or select the “Size” tool button on the CADmep toolbar.  

When prompted to Select Objects, select the fitting. Once the fitting is selected, instead of pressing <Enter> to end the selection like you normally would, press and hold the <TAB> key while you press the <Enter> on the keyboard at the same time. Your tag will display the size of the opposite end.

Depending on your AutoCAD and Mouse settings, right-clicking to end the select objects prompt may not work and instead bring up a right-click menu. For this reason, it’s recommended you use the <Enter> key on your keyboard while pressing <Tab>

The following video shows to transitions of the same size side by side. The left transition has it’s size tagged like you normally would. The fitting on the right, the <Tab> key his being held down when the <Enter> key is pressed which results in the tag displaying the size of the opposite end of the fitting.