April 26, 2006

ArcSDE CAD Client #8

Editing Simple Features with ArcSDE CAD Client

I tend to think of myself as relatively handy. I have a neighbor who was born with just one hand. Its amazing to see him sweeping his driveway and pounding nails in fences, etc… He told me once, while we were contemplating the responsibilities of homeownership, “I can do anything… I just can’t do everything!” I’ve used this adage recently to relieve myself of the burden of auto care. I hate fixing cars. (Personally, I think cars are barbaric; useful, but barbaric… they need to be completely re-thought.) Understanding them and repairing them is something I could learn, and it could save me some money, but this year I just gave up. I am better at other things. I will save in other areas; I’ll target other projects and not try to do everything.

The workflow for editing ArcSDE features in CAD Client is restricted to non-geodatabase layers. In organization implementing both ArcGIS and CAD Client with ArcSDE there has to be a designated editor and a designated viewer, or there has to be a second tier of workflow to manage the conversion between ArcSDE simple feature layers and ArcSDE enterprise geodatabase layers.

ArcSDE CAD Client was developed before the invent of the ArcSDE enterprise geodatabase. It was not architected to understand the geodatabase. Other vendors in the market space have developed “CAD Client” editors of geodatabases by embedding ArcObjects code and using the disconnected editing capability to successfully edit enterprise geodatabase features managed by ArcSDE from within AutoCAD and Microstation. I will devote a future BLOG post to those applications. You can view the simple features of an ArcSDE enterprise geodatabase layer, but they are read/only. (Similar to the Autodesk Map ArcSDE solution)

To me there are two logical workflows that would benefit from ArcSDE CAD Client editing. One is where the data is completely managed and edited using CAD Client and only viewed by other ArcSDE GIS client software. The other is similar, where one is using ArcSDE CAD Client solely as an drawing entity repository for base mapping in CAD without regard for GIS; other than access, such as serving the CAD data to the web using and ArcIMS application.

In these workflows the data is free to be edited by CAD Client, but would be read/only to other applications. With these restrictions I have the ability to take advantage of the CAD BLOB so that I STORE, RETRIEVE and EDIT the CAD versions of the data stored in ArcSDE. The process of editing in ArcSDE involves enabling database links in the SETTINGS then retrieving data using a RETRIEVE template and then pairing that with a STORE template to define what information and how you want it to be updated when and if you choose to store your edits.

When I check out data from ArcSDE for editing, an area lock is created on the ArcSDE layer for the geographic extents of the extracted data to avoid editing conflicts. I use all the tools of CAD to make changes to the retrieved entities. The retrieved entities are really just a copy or snapshot of the data in ArcSDE. At the end of my editing session I can choose to retain or reject the changes, additions and deletions I may have made. ArcSDE CAD Client editing sessions are connected editing. I must be logged into ArcSDE during the edit session and make my changes during that session. ArcSDE CAD Client does not support disconnected editing. ArcSDE CAD Client is also a read/only client to ArcSDE for Coverages.

April 24, 2006

ArcSDE CAD Client #7

Announcing the CAD Client Update for AutoCAD 2005/2006

I think it is appropriate to interrupt this BLOG to bring you an announcement that the latest version of CAD Client has just been made available for download. Included here is the README.doc that has some useful installation information.

You can find the new web update: Here









April 21, 2006

ArcSDE CAD Client #6

Retrieving Features from ArcSDE Layers

The family is planning a camping trip in mid July with some friends. We have an active toddler and the wife isn’t too keen on the idea of tenting so much… I am not keen on the cost of renting an RV so we are sort of at an impasse. My calculations put RV rental at around $250 per night and that doesn’t count fuel costs which are rising! I figure I can build a small house for that much on the campsite and burn it before I leave! Perhaps this is yet another character flaw, but… secretly, or not so secretly now… I am really considering it! Another plan would be to drive to the destination, find the nearest U-Haul and a thrift store to buy beat up furniture, and use that for an RV. Somebody please stop me… (I’ll buy the furniture and then give it back, and get a tax write off…) It’s a client-server vacation I just access the stuff when and where I need it.

ArcSDE CAD Client is a client software application that links CAD to ArcSDE data. It has the ability to generate CAD representations from GIS features that are stored in ArcSDE layers. The process of reading the GIS feature and creating these CAD entities from data stored in ArcSDE is called “retrieving” in CAD Client. As mentioned in the previous post you can use existing CAD data to build ArcSDE databases. You can even stored binary copies (BLOBs) of entities as optional data in ArcSDE. However, you don’t need to store data using CAD client to retrieved data from ArcSDE using CAD Client. You can retrieve the simple features of any data stored in ArcSDE regardless of how it was stored originally. Only ArcSDE data stored using CAD Client will have CAD binary data associated with ArcSDE features so the only way to use this data is to RETRIEVE it back into the same version of CAD Client that stored the data originally.

There are two different options I can choose when adding ArcSDE data to my CAD session using ArcSDE CAD Client. The first choice is whether the data will be retrieved with links to the ArcSDE feature attribute tables. I'll talk about this more when I discuss the CAD Client Settings tool. The only reason you might want to disable this setting is if you are concerned about file size and you do not need to edit the features or view the attributes. Choosing not to RETRIEVE data with the ArcSDE database links will preclude that data from being edited, or the feature attributes viewed. The second option is… if and only if data was stored with the CAD Blobs retained; you can choose to RETRIEVE the CAD Blob version of the data instead of the default ArcSDE simple feature data. The other option involves adding ArcSDE simple feature data to the CAD session for the purpose of editing the geometry.

I select which features in the ArcSDE database I want to retrieve and how you will retrieve them by using a RETRIEVE template. The RETRIEVE template is created using a wizard that creates a simple file that is essentially a stored query. You can use a combination of SPATIAL and ATTRIBUTE parameters to define this “query”. For example you can query the basemap for all of the features of an ArcSDE layer that are within or crossing a given polygon, or just the parcels owned by the City. There are several different spatial operators and you have the ability to use any valid SQL WHERE clause to filter the features by tabular attributes.

I can store and reuse these templates to perform repeated or common extractions (“retrieves”) from the ArcSDE database. Unless I am retrieving the CAD binary copies of previously stored CAD data, the CAD entities that are generated will appear using the current default entity properties. If I want different queries to be symbolized differently in CAD, I change the default symbology between retrieves. If I want to use the ArcSDE attributes to drive symbology I create a custom application using the ArcSDE CAD Client API and host CAD API to read the ArcSDE attributes and re-symbolize the CAD drawing using CAD tools accordingly.

...Or, because I have ArcGIS on my machine I just use the Export To CAD tool instead, and append to a CAD drawing with data that comes from any ArcGIS data source including ArcSDE. I would run the Export to CAD tool in ArcCatalog and not from within CAD, but I could. (think ArcEngine CAD/ArcGIS VB-Automation, but thats another topic for another day, and it uses an ArcInfo license.)

April 17, 2006

ArcSDE CAD Client #5

Storing CAD Properties with Features

Storing everything all the time is not always best. My wife is quick to remind me of that fact whenever the topic of our garages storage capacity is mentioned. I admit that I have pack-rat tendencies, although strangely I am not very accommodating to anyone else in the family contributing to the garage archives… Storing what you need, or what you will use is generally accepted as more practical… Unless you can’t decide if maybe in the future that broken garage spring might come in handy as a replacement part for some as yet un-invented contraption?

As mentioned earlier in the series ArcSDE CAD Client can store a binary copy of CAD features as a special BLOB (Binary Large Object) attribute of an ArcSDE feature. This binary copy retains all of the CAD symbology such as line weight, color, layer, etc… When data is stored in ArcSDE in this way I have a choice to either RETRIEVE the CAD version of the data or the ArcSDE geometric version of the data. Because symbolic variance is often a method of attribution all to itself in CAD data, extracting the CAD graphic properties when storing ArcSDE features from CAD data is a way to retain more of the intelligence of a CAD file. This data can also be useful when symbolizing ArcSDE features in non-CAD ArcSDE Client software like ArcGIS.

By default ArcSDE will only store geometry. You need to explicitly define which of the available CAD properties that you want to record in ArcSDE columns. Access to these properties will only be available to ArcGIS if they are configured for during the STORE process. Unlike a CAD feature dataset where the CAD properties are always included unless you explicitly hide them. When you save CAD data as ArcSDE features each feature is stored individually as a record in the ArcSDE spatial database layer. An ArcSDE representation of the feature based on the CAD geometry is stored as the feature’s “shape”. CAD Client must store data into a predefined ArcSDE layer. The schema of the layer is determined by the database administrator in Oracle or SQL Server or the ArcSDE supported database of your choice. If you would like to extract the CAD graphic properties an make them accessible by ArcGIS you will need to establish a column or field in the schema that can be used to store that graphic property value; columns like CADColor, CADLayer, etc…

In the STORE Template wizard you establish a paring between extractable CAD graphic properties and the columns of the target ArcSDE layer, which in turn is the schema established for the attribute table by the ArcSDE/database administrator. The template is the place where you select which if any CAD attributes you would like to store in columns in the database when you STORE CAD data in ArcSDE using CAD Client.

To store extended attribute information such as AtutoCAD block attributes, Microstation tags, Xdata, MSlinks or Object Data you will have to build a custom application using the API of AutoCAD or Microstation to read the information and then the Automation, C-Api, AutoLisp or Basic ArcSDE CAD Client API’s to store that additional data.

April 11, 2006

ArcSDE CAD Client #4

Storing GIS Features from CAD Entities

I was talking to my carpool partner yesterday about vacations and planning and the alike. One thing I like to do with my family vacations is to have a theme for the vacation. Past themes have included very simple things like... everything you drink on the vacation has to have an umbrella in it. We bought our own drink umbrellas and stuck them in sodas, water bottles, and the fruit smoothies we made with our daughter in the hotel room. We kept well hydrated and enjoyed very much just relaxing anywhere we were while sipping around the umbrella stick. Themes help set expectations for the trip and make it more memorable. Themes also help focus choices. If the theme is PIRATES then the choice between spaghetti and roast chicken eaten with your hands; is easy. Do we go to the maritime museum or the arcade? The choices tend to make themselves, and there is generally no dissension in the group if everyone is on board with the theme.

CAD Client will allow you to specify a gripped/fenced selection set of feature or the contents of the current drawing to be stored into an ArcSDE simple feature layer. CAD Client relies on the configuration of what is called a “Store Template” to define various options of CAD data storage in ArcSDE layer… things like do you want to store CAD graphic properties in the attribute table, if so which ones…in what existing columns? … For example storing the CAD drawing name in an ArcSDE feature attribute column would allow you to select the resulting ArcSDE features based on their source CAD drawing name. Also included in the STORE template is the option of whether I want to store the CAD BLOB in ArcSDE?

The CAD Client is an organizing definition that identifies how CAD data is going to be stored in an ArcSDE layer. Like a vacation theme it defines what gets packed into the car, where the flashlight is going to be stored, and the parameters for future decisions.

Using CAD Client to populate existing ArcSDE simple feature layers pre-supposes you have an ArcSDE simple feature layer created and accessible. Some consideration when defining your ArcSDE layers that will be populated using ArcSDE CAD Client would include: will you include columns to store CAD graphic properties; will you enable your ArcSDE layer to accept CAD blob data storage?

These are some concerns or limitations about its data storage you need to come to grips with before using CAD Client:

  • CAD Client retains the full CAD definition of curves and complex objects in the CAD Blob, but the ArcSDE simple feature will be simplified with tessellated straight line segments.
  • CAD Client allows you to store a copy of a complex object with tags or block attributes, but unlike the ArcGIS CAD Feature Class does not allow you to populate the ArcSDE feature layer attributes with these values. You will be able to store and retrieve CAD BLOBS with tags and block attributes, but that information is not accessible to other GIS applications, since the values are locked in the CAD BLOB and not extracted or included in the feature attribute table.
  • ArcSDE CAD Client can store features of different geometric types in the same feature layer. ArcGIS only allows you to store one type of geometry in a feature layer (POINT, POLYLINE, POLYGON, and ANNOTATION). CAD Client does not store or retrieve MULTIPATCH features.
  • You have the flexibility to store different types of geometry in the same ArcSDE simple feature layer for easy storage and retrieval (a little known fact of ArcSDE), but be aware that in doing so only the highest level geometric type would be accessible by ArcGIS. If I am not using ArcGIS to access my CAD data (stored using ArcSDE CAD Client) then I like to mix feature classes and put all the data in one big CAD BLOB repository, which makes one big pool of all my CAD content. In that way I can use a single query to access any of the data I’ve stored.
  • The ArcSDE CAD Client software was developed before geodatabase style annotation was envisioned and only stores and retrieves CAD TEXT as ArcSDE simple feature annotation. CAD Text stored as ArcSDE simple feature annotation must be converted to geodatabase style annotation before it can be used in ArcGIS.

Continue to Part #5

April 10, 2006

ArcSDE CAD Client #3

The CAD BLOB

Well our daughter, baby Evie, had a short run at her new “big” bed, but it proved a little too much for her to handle at this time. Our 2 year old had been climbing out of her crib and we thought it might be time for her to move to a "child-size bed". However, she didn’t handle her new found freedom very well. With her liberty she found it difficult to settle down and sleep. Ransacking her room seemed to be a more pressing pursuit than sleeping… late at night till early in the morning. This weekend we discovered the “crib tent”, this is a euphemism for a crib lid; an arching mesh cover that transforms you baby’s crib into a... well... cage. Despite one night of vocal opposition to returning to the crib she now sleeps soundly again within the comfortable confines of her smaller nighttime domain.

Sometimes the freedom and power of an all encompassing software solution can leave you floundering as you attempt to come to grips with its far reaching implications. I like CAD Client for its targeted simplicity. If the ArcSDE CAD Client fits your workflow it is one of those applications that you can use, like a hammer, to get something done. It doesn’t drive screws very well, but if you got a nail it can do the job.

When storing CAD data into ArcSDE simple feature layers, CAD Client will always be creating ArcSDE features. Other GIS applications that can read ArcSDE data, will be able to access the ArcSDE feature representations stored from the geometry of my CAD data. As part of the data storage process CAD Client converts CAD entity geometry into ArcSDE feature geometry. In addition to the geometry, it also has the ability to store the CAD entity graphic properties, such as COLOR, LAYER, LINESTYLE, etc… as tabular ArcSDE feature attributes. ArcSDE CAD Client also has the ability to store a binary copy of each CAD object in a special column in ArcSDE. The exact binary copy of a CAD object stored inside ArcSDE is often called CAD BLOB or CAD Object storage in CAD Client. Unlike the compulsory creation of ArcSDE features for each CAD object, CAD BLOB storage is optional.

Storage of the CAD BLOB Object is useful, because when working inside the CAD host (AutoCAD/Microstation) using CAD Client you can choose to RETRIEVE CAD BLOB data that is stored in ArcSDE layers rather than the ArcSDE feature version of the data. Other GIS applications will not understand the CAD BLOB data, which is why it always creates an ArcSDE feature when CAD data is stored.

ArcSDE CAD Client can be used as a way to create a CAD basemap of CAD BLOB objects in ArcSDE for retrieval back into CAD. The resulting data is also accessible by other GIS application that read the ArcSDE feature versions of that same data.

I will discuss more about the methods of data storage later in this series. Let me just say for now CAD Client stores features not drawings. For this reason, although some have tried to use it as such, CAD Client makes a better basemapping system than it does a CAD document managment system.

CAD BLOB data storage inside ArcSDE-managed data layers is a unique and useful feature of CAD Client that distinguishes it from any other ESRI, Bentley or Autodesk GIS interoperability CAD client applications.

April 07, 2006

ArcSDE CAD Client #2

What It Is and Isn’t

I had the flu yesterday and now I’m feeling better. With a toddler in the house it was good to get back to work so I could get some rest! I have received a good number of emails and comments about this series and I thought I should spend a moment to set some expectations.

CAD Client is one of those software products that I have always liked. It only really has 5 functions: LOGIN/LOGOUT, STORE, RETRIEVE, IDENTIFY and SETTINGS. It is NOT a GIS desktop mapping application. It doesn’t have any analysis functions. It doesn’t include any editing functions (other than the CAD applications). It doesn’t perform any thematic mapping. What it does do however is allow you to STORE CAD entities in ArcSDE and to RETRIEVE CAD entities back into CAD. It will create CAD entities out of GIS features RETRIEVEd from ArcSDE and will create GIS features out of CAD entities STOREd into ArcSDE. It gives you the ability to IDENTIFY and edit the tabular attributes of the GIS features you have RETRIEVED from ArcSDE. It has CAD conversion built into the STORE and RETRIEVE operations.



CAD Client is based ArcSDE 3.x technology, before the invent of the ArcGIS geodatabase format, upon which ArcSDE version 8.x and the current ArcSDE 9.x use with ArcGIS desktop and Server applications. ArcSDE CAD Client is a full read/write client of ArcSDE simple features. ArcSDE geodatabases use simple features to store geometry but have a system of other tables and functionality bundled together that add intelligence, and behaviors to the data stored. ArcSDE CAD Client was not built to understand the geodatabase and is therefore a read/only client of the ArcSDE geodatabase.

There are two "CAD Client" applications from Bentley Systems, the makers of Microstation that provide support for the modern geodatabase and use the disconnected editing technology of ESRI's ArcObjects to make editing transactions against an ArcSDE geodatabase (I'll dedicate another post for these). Autodesk also has a connection to ArcSDE data, but like the ArcSDE CAD Client from ESRI it is based on the C-API (not ArcObjects) and old-school simple feature ArcSDE database layers.

There is a tool in ArcGIS to convert a simple feature database into a versioned, multi-user geodatabase. This would allow you to support a data building workflow where you STORE data using CAD Client and then turn it into an ArcGIS geodatabase.

CAD Client is also well suited for read/only access to the feature stored in geodatabases.

Perhaps the most limiting feature of CAD Client when working with geodatabases is that it is unable to read geodatabase style annotation. CAD Client only reads and writes ArcSDE style annotation features or Annotation stored in a Coverages served up by ArcSDE for Coverages. Another catch-22 is that ArcMap can only edit geodatabases and not simple features. You could create ArcSDE simple feature data with CAD client but to edit it in ArcMap you would have to convert it to a versioned geodatabase, in doing so you make the data read/only to CAD Client. This limits you to workflows where you edit in one or the other environment, or where you have some data publishing intermediate workflow to move data back and forth between one format or the other.

Some customers customize CAD Client using the included C-API, AutoLISP, Microstation Basic, and Automation tools to annotate and perform various forms of thematic mapping from tabular attributes. Some have even forgone the CAD Client interface altogether in favor of building their own application inside AutoCAD or Microstation using the included CAD Client API functions to access ArcSDE data directly.

April 04, 2006

ArcSDE CAD Client #1

The FREE GIS CAD Interoperability Solution

The most exciting basketball games of the season are behind us; of course I speak my daughter’s freshman basketball team. Their tiny school faced some more experienced, taller, faster and older girls in the tournament, but came back from a 10 point deficit late in the fourth quarter of the final game in the consolation round (after losing in the semi-finals to the eventual champions) to tie the game. Giving their all in a full court trap they managed to steal the ball over-and-over successfully converting free throws and a couple three pointers. Down by two points with seven seconds, one of our veteran players, an 8th grader, was fouled after the opponents missed free throw, and she went to the free throw line. The league is for 9th graders, but our school only had one 9th grade player; the rest of the team was made up of two 8th graders, two 7th graders and six 6th graders. Our seasoned 8th grader stepped up to the line and confidently buried both her free throws to tie the game and the clock ran out before the opponents could get off a shot. Now running (flying) on adrenaline after the comeback, the full court press produces several more steals, layins and free throws and our team won going away in overtime!

Inspired by that come back I’d like to spend a little bit of time with an often overlooked GIS and CAD Interoperability solution. ArcSDE CAD Client is often de-emphasized as an ESRI Interoperability solution because it does not have the ability to edit an ArcGIS geodatabase. However, in workflows where you are simply building GIS databases, or need access to the current ArcSDE basemap from within CAD, the ArcSDE CAD Client for AutoCAD or Microstation is a useful, viable, and very clever FREE application!

This is the first in a series of posting on the topic of the ArcSDE CAD Client software. If you have ArcSDE then you have on that CD a copy of CAD Client. This is a no-cost add-on to Microstation or AutoCAD that allows you to query data out of ArcSDE and “RETIEVE” features into your current CAD session. ArcSDE CAD Client also lets you store and edit ArcSDE simple features. I’ll talk more about the distinction between ArcSDE simple feature and ArcGIS Geodatabase features a little more in a future post. Suffice to say for now CAD Client is read/only for ArcSDE geodatabases and read/write for ArcSDE simple features.

For those of you still dealing with a large amount of legacy ArcInfo Coverage data there is a often overlooked ArcSDE extension for Coverages called ArcSDE for Coverages that serves up Coverage data as if it was an ArcSDE database. This means an ArcSDE Client software like the ArcSDE CAD Client would also be able to access the data stored in a coverage using the ArcSDE for Coverages interface.
FREE hit counter and Internet traffic statistics from freestats.com