AutoCAD Object Data and FME
Autodesk’s Object Data is a proprietary internal database to store attributes on various AutoCAD objects. It can be difficult to work with but is still a great way to store attribute information. What makes it difficult to work with is extracting that data especially with the built-in AutoCAD tools.
Safe Software’s Feature Manipulation Engine (FME) plays a pivotal role by bridging the gap between the AutoCAD Object Data and your GIS formats. Using FME to set up your ETL (extract, transform, and load) script can be a bit tricky because of the number of options available to you. The method I choose is based on the ability to control each step of the attribute extraction and merging process.
The Old Way
First lets look at the pre-FME way of extracting data using only the AutoCAD Map 3D tools.
I will be using a sample sewer system with Object data assigned to both the lines and the nodes.
To export our data we must use the Map Tools: Map > Tools > Export …
or Output > Map 3D Export
You must have your DWG setup so you can filter by layer or selection. You cannot save a SHP for lines and a SHP for nodes but you have to repeat the process for each file you wish to create.
The attribute selection dialog lets you select the Object Data table and then hitting OK should result in the file you want. If it doesn’t then fix and repeat.
There is a better way thanks to Safe Software and FME.
The New Way — Creating an ETL Script
Open up FME and start a new workspace. If you haven’t tried it already, try the Workspace Dialog as it helps simplify a few things.
For the reader, select Autodesk AutoCAD Map 3D Object Data and select your DWG.
For the writer, select your GIS format. In this case I will use SHP.
Under the reader Parameters… select “Raw Relational” and uncheck “Expand Blocks into Entities”
The Raw Relational setting will give us the most control as we start our ETL script by letting us choose exactly how and when the attributes are joined to the objects.
For this example I will only use one layer.
As you can see the geometry feature type is on the top and the Object Data attribute table is down below. We are gong to join them with the Feature Merger transformer. Both feature types have the autocad_od_entity_key attribute that will be used for the join.
Connect the geometry feature type to the requester since it is “requesting” attributes. Connect the Object Data table feature type to the supplier since it is supplying the attributes. Use the autocad_od_entity_key as the join attribute for both.
I connected some visualizers so I could see what else is going on with my join. This is useful when checking the quality of your data. Since I am only using one layer in this example I am missing many objects with Object Data but out of the objects I did process, all of them are complete except for two.
With this simple workspace we have created a SHP file that contains the AutoCAD DWG geometry linked to its associated object data in the form of feature attributes. This method of using Raw Relational on the AutoCAD Object Data reader allows for much better control of your data. Data quality checks can be put in place to insure every feature and record is accounted for. FME allows this process to be setup once and run many times making the old AutoCAD Map export cumbersome, prone to error, and obsolete.
Leave a Reply
You must be logged in to post a comment.