プラグインは COM サーバです。これは、C++ と ATL、VB6、VB.NET、C#、またはインプロセス DLL にコンパイルすることができるその他のプログラミング言語を使用して作成できます。
プラグインは、IAcStPlugin2 インタフェースを実装し、Windows レジストリの AutoCAD のセクションに登録する必要があります。IAcStPlugin2 インタフェースによって公開されるプロパティとメソッドは、登録されているプラグインとの通信のために CAD 標準フレームワークによって使用されます。
IAcStPlugin2 インタフェースのメソッドとプロパティは、次のタスクの実行に使用されます。
作成された各プラグインは、IAcStPlugin2 インタフェースによって公開されるプロパティの特定のセットをサポートする必要があります。これらのプロパティは、プラグインおよびプラグインの作成者によって設定された標準仕様を識別するために使用されます。プラグインは、次のプロパティを実装する必要があります。
オブジェクト タイプを指定しないと、図面内のすべてのオブジェクトが監査され、作成または修正されたすべてのオブジェクトに対して通知が生成されます。これは、AutoCAD プログラムのパフォーマンスに影響しますが、ユーザはリアルタイムで標準仕様が確認できます。
プラグインの初期化は、プラグインが初めて AutoCAD プログラムまたはバッチ標準チェッカー スタンドアロン アプリケーションにロードされたときに行われます。プラグインは、次のいずれかの条件に基づいて初期化されます。
Initialize メソッドは、プラグインのエントリ ポイントです。このメソッドには、標準仕様マネージャ オブジェクトへの参照が渡されます。この参照は保存して、プラグインがアクティブである間使用することができます。プラグインが初期化されると、SetupForAudit メソッドが実行され、確認される図面および標準仕様の確認時に使用する DWS ファイルのセットアップに使用されます。
プラグインは、指定された設定済み CAD 標準仕様セットに基づいて、図面のエラーをチェックし、検出されたエラーを修正します。エラーを修正するには、識別する必要があります。各プラグインは、図面内のエラーを特定するために、1 セットの規則を実装します。エラーは、リアルタイムのチェック中またはユーザが図面全体のチェック処理を手動で開始したときに識別できます。
エラー チェックが実施されるオブジェクトは、配列として SetContext メソッドに渡されます。SetContext メソッドには、リアルタイムのチェックがアクティブであるかどうかを示すためのブール値も渡されます。False の値は、リアルタイムのチェックがアクティブであること、および配列内のオブジェクトのみが対象であることを意味します。
エラー チェックは、CAD 標準仕様フレームワークによって Start メソッドが実行されると開始されます。図面内の最初の標準仕様違反を表す最初のエラー オブジェクトが Start メソッドに渡されます。Start メソッドの実行が終了すると、Next メソッドが実行されて、SetContext メソッドに渡された配列内の各エラー オブジェクトのステップ処理が続行されます。エラーがチェックされると、Done メソッドが実行されて、修正する必要がある他のエラーがあるかどうかが判定されます。Done メソッドが False のブール値を返すと、Next メソッドが実行されてエラー チェックが続行されます。
エラーを修正するためには、エラーが識別され、使用可能なすべての修正オブジェクトと比較されなければなりません。現在のエラー オブジェクトは、GetError メソッドで取得されます。現在のエラー オブジェクトが取得されると、使用可能な修正のリストが GetAllFixes メソッドで取得できます。GetAllFixes メソッドによって返される修正は、SetupForAudit メソッドの一部として最初にセットアップされた修正です。
GetAllFixes メソッドは、エラー オブジェクトと 2 つの変数を必要とします。最初の変数は修正オブジェクトの配列を、2 番目の変数は推奨される修正を表します。推奨される修正は、エラーの自動修正に使用されます。GetRecommendedFix メソッドは、CAD 標準仕様フレームワークによってエラーの自動修正をサポートするために使用されます。エラーに対して推奨される修正は、プラグインによって、多くの場合オブジェクトの名前またはジオメトリ プロパティの比較によって決定されます。エラーと修正オブジェクトを比較するときは、GetPropertyDiffs メソッドでプロパティの差異のリストが取得できます。
エラーを識別し、すべての使用可能な修正を取得したら、FixError メソッドを使用してエラーに修正を適用することができます。FixError メソッドは、プラグインの開発には必要ありませんが、AutoCAD プログラムの CAD 標準仕様機能を使用したエラーの修正をサポートするために必要です。FixError メソッドをプラグインで定義していないと、メッセージ ボックスが表示されて、ユーザにエラーが修正できない旨が伝えられます。
エラーが FixError メソッドで修正されたとき、プラグインは、ユーザにより修正が正常に適用されたかどうかに基づいて、エラーオブジェクトの ResultStatus プロパティを更新する必要があります。エラーが修正できた場合 ResultStatus プロパティを AcStMgr.AcStResultStatus.acStResFixed に設定し、エラーが修正できなかった場合は AcStMgr.AcStResultStatus.acStResFixFailed に設定します。AutoCAD プログラムの CAD 標準仕様機能を使用すると、エラーを修正済みまたは無視するもの([この問題を無視するものとしてマーク]をオンにしている場合)とマークできます。
CAD 標準仕様フレームワークは、図面内のオブジェクトの標準仕様の確認後にレポートを生成します。レポートには、検出された、修正された、および無視されたエラーの数を含めることができます。レポートの提示方法は、AutoCAD プログラムの CAD 標準仕様機能とバッチ標準チェッカーのどちらが使用されたかによって変わります。
AutoCAD プログラムの CAD 標準仕様機能の一部である[標準仕様を確認]ダイアログ ボックスは、図面ファイルの標準仕様を確認および修正するために使用されます。図面ファイルの確認が終了すると、メッセージ ボックスが表示されます。メッセージ ボックスには、検出された、手動または自動で修正された、無視されたエラーの合計数が一覧表示されます。プラグインでは、検出された、修正された、または無視されたエラーの数を追跡する必要はありません。これは、CAD 標準仕様フレームワークによって処理されます。
バッチ標準チェッカーは、確認した図面で見つかったエラーを含むレポートを生成します。レポートは、バッチ標準チェッカーによって作成される CHX ファイルの一部として保存されます。プラグインに関する情報は、WritePluginInfo メソッドでレポートに書き込むことができます。一方で、エラー オブジェクトまたは修正オブジェクトに関する情報は、WriteData メソッドを使用してレポートに書き込むことができます。