Yeah, I agree... I must enjoy doing it, because I keep doing it.
The Civil 3D API is quite a mess. They started out creating a COM API, then recently decided to focus on the managed API and ignore the COM API. So now we have some things that are available only via the COM API, and some that are available only via the managed API, and we basically have to use a mish-mash of both. And many things are not available at all via the API, which is a constant source of frustration, as entire tasks are prevented because one part is not available via the API. Plus, the whole API is very low-level, anyway - hardly more than a wrapper around some core functions, with few (if any) events, etc. - and not really the sort of thing I've grown to expect from a true Framework.
But with all its problems, it's still a pretty powerful API. It's much better than what Bentley has for PowerCivil, or what Carlson has for Carlson Civil.
