対象商品:IJCAD2018以前
作図領域内で GetSelection や SelectAll で選択したオブジェクトを扱うために、
SelectionSet クラスや、SelectedObject クラスがあります。
IJCAD2018以前のIJCADでは、IJCAD と AutoCAD で SelectionSet クラスの実装に関して差があることが確認されています。
なお、IJCAD2019以降のIJCADでは、AutoCADとの差は解消されています。
複数のオブジェクトを選択した場合は、for や foreach といった、
ループ文を使用して選択されているオブジェクトを扱いますが、
確実に要素が1つしかない場合はループさせること自体が無駄であると言えます。
VB.NET を使用している場合は、
SelectionSet(0).ObjectId SelectionSet.item(0).ObjectId
のいずれかで、IJCAD も AutoCAD も同じように要素を問題なく取得することができますが、
C# を使用している場合は、
//IJCAD SelectionSet.get_Item(0).ObjectId
//AutoCAD SelectionSet[0].ObjectId
のように違いがあります。
AutoCAD で使用しているソースコードを IJCAD に移植する場合は修正が必要であり、
IJCAD と AutoCAD を併用して使用する事を考えている場合に、
ソリューションやプロジェクト内で同じソースファイルを使用する場合は、
条件付きコンパイルを使用してコードを使い分ける必要が発生します。