.NET プラグインがそれらのブロックのインスタンスを図面に配置できるように、プログラムでブロックを図面にインポートする方法を作成しようとしています。現在、私の方法は次のようになっています。
/// <summary>
/// Method to programatically import all the blocks in a given list
/// </summary>
public static void ImportBlocks(string[] filesToTryToImport)
{
//Importing all the blocks
for (int i = 0; i < filesToTryToImport.Count(); i++)
{
if (filesToTryToImport[i].EndsWith(".dwg"))
{
try
{
Transaction tr = _database.TransactionManager.StartTransaction();
DocumentLock docLock = _activeDocument.LockDocument();
using (tr)
using (docLock)
{
BlockTable blkTbl = tr.GetObject(_database.BlockTableId, OpenMode.ForRead) as BlockTable;
// ToDo: Add files
}
}
catch (Autodesk.AutoCAD.Runtime.Exception ex)
{
_editor.WriteMessage("\nError during copy: " + ex.Message);
}
}
}
}
そして、私が望むのは、ファイルパスが文字列配列 filesToTryToImport にあるすべてのブロックが、ブロックを挿入するときにオプションとして表示されることです
したがって、たとえば、One-Inch-Block が最初はリストに含まれていなかったが、そのファイル パスがこのメソッドに渡された配列内の文字列として渡された場合、それはオプションになります。