現在、IJCAD 6.4 Pro(C++)からIJCAD 2018 Pro(C#)へカスタマイズコマンドの移植を行っています。

旧環境の方で、ハッチを作成しているコマンドがございます。
そのコマンド内で、標準コマンド「.HATCH」を実行しています。

ads_command(RTSTR, ".HATCH",
            RTSTR, "ANSI31",
            RTSTR, "100",
            RTSTR, "0",
            RTENAME, entParent,
            RTSTR, "",
            RTNONE);

※entParentはこちらを呼び出す前に作成した閉じたポリラインの図形名

同じことを新環境でやろうと考え、以下の2つを行いました。

①acedCmdを用いて、同じように標準コマンド「.HATCH」を行った。

ResultBuffer req = new ResultBuffer();
req.Add(new TypedValue((int)ResultCode.RTSTR, ".Hatch"));
req.Add(new TypedValue((int)ResultCode.RTSTR, "ANSI31"));
req.Add(new TypedValue((int)ResultCode.RTSTR, "100"));
req.Add(new TypedValue((int)ResultCode.RTSTR, "0"));
req.Add(new TypedValue((int)ResultCode.RTENAME, entParent));
req.Add(new TypedValue((int)ResultCode.RTSTR, ""));
acedCmd(req.ResbufObject);

※entParentはこちらを呼び出す前に作成した閉じたポリラインのObjectId

②Hatchオブジェクトを用いて、同形式のハッチを作成した。

Document doc = Application.DocumentManager.MdiActiveDocument;
Database db = doc.Database;
Hatch hatch = new Hatch();
hatch.SetHatchPattern(HatchPatternType.PreDefined, "ANSI31");
hatch.PatternScale = 100;
hatch.PatternAngle = 0;
ObjectIdCollection objIds = new ObjectIdCollection();
objIds.Add(entParent);
hatch.Associative = true;
hatch.AppendLoop(HatchLoopTypes.Default, objIds);
hatch.EvaluateHatch(true);
using (Transaction tx = db.TransactionManager.StartTransaction())
{
    BlockTable bt = tx.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
    ObjectId modelspaceObjectId = blockTable[BlockTableRecord.ModelSpace];
    BlockTableRecord btr = tx.GetObject(modelspaceObjectId, OpenMode.ForWrite) as BlockTableRecord; 
    btr.AppendEntity(hatch);
    tx.AddNewlyCreatedDBObject(hatch, true);
    tx.Commit();
}

※entParentはこちらを呼び出す前に作成した閉じたポリラインのObjectId

①では、ハッチが作成されず、②ではハッチは作成されたが、オブジェクトタイプが旧環境とは異なり「ブロック参照」ではなく「ハッチング」となってしまいました。

調べてみたところ、
IJCAD 6.4 Proで「HATCH」コマンドを行った際に作成されるのは「ブロック参照」になりますが、IJCAD 2018 Proで「HATCH」コマンドを行った際に作成されるのは「ハッチング」になります。

その後の処理でハッチがブロック参照であることを前提としている処理があるため、新環境でもハッチを「ブロック参照」として作成したいと考えております。

そこで下記の方法を行うと考えています。

1.ハッチングを作成する。

2.ハッチングを分解し、線分にする。

3.分解してできた全線分を名無しのブロックにする。

上記の方法でもできるかと考えております。※未検証

ただし、標準的な方法があれば、その方法を実装したいと考えております。
これ以外に標準的な方法がございましたら、教えていただけないでしょうか?

□旧環境
OS:Windows7
IJCAD:IJCAD 6.4 Pro
VisualStudio:Microsoft Visual C++ 6.0
言語:C++

□新環境
OS:Windows10
IJCAD:IJCAD 2018 Pro
VisualStudio:Visual Studio 2017
言語:C#