SDI, the end is nigh
Sorry if the title is a little abrupt, but it seemed too good an opportunity to show off my now appalling poetry skills. [Something almost no-one knows (well, OK, knew) about me is that, at the age of 8, I was the youngest winner of a poetry competition. I went along to the King’s Lynn Arts Centre (known back then as The Fermoy Centre) to recite my poem, “Words Inside my Pencil”, to a packed – at least it seemed so, at the time – audience of the various winners’ parents. Anyway, as you can see it was all downhill from there, at least in terms of my poetic ambition.]
I’ve talked a little before about SDI and MDI inside AutoCAD (SDI == Single Document Interface, MDI == Multiple Document Interface). I’ve also written a few posts on how best to structure your application to deal with the change to MDI, whether you’re using ObjectARX or you’re using .NET. And there’s a lot of good information on this topic in the ObjectARX Developer’s Guide – be sure to search it for “MDI”.
When we introduced MDI in AutoCAD 2000, we added the capability to force SDI-only execution (i.e. AutoCAD tries to close the existing drawing when you open or create another), whether by an ObjectARX application (one not registering itself as “MDI-aware”) or by setting the SDI system variable to something other than zero (something that loading an MDI-unaware application would also do).
Maintaining this execution mode has added a fair amount of complexity to the development and testing needed for the AutoCAD product, which has inevitably meant that a portion of our engineering resources has focused on maintaining SDI rather than on developing new features. This is a natural trade-off, but we’ve now maintained SDI for 10 releases and the prevailing thinking is that it’s enough: the AutoCAD-based verticals and the majority of independent AutoCAD-based applications have now embraced the brave new world of MDI.
Now there are bound to be stragglers out there, which is one of the reasons I’m writing this post. I want to get a sense for the extent of the problem and determine what my team should do to help.
So, if you know your application currently requires SDI-only execution, please send me an email. Please explain your reasons for not supporting MDI and the potential hurdles you see with doing so. I can’t promise my team will be able to provide personalised assistance – if there are many of you out there then we will have to do something wider-scale – but we will do our best.
If you don’t know whether your application requires SDI-only execution, the chances are it doesn’t, but please do run the application and check it works properly when multiple drawings have been created or loaded in the AutoCAD editor.