画層状態を復元する(.NET)

RestoreLayerState メソッドは、画層状態の画層設定をリセットします。4 つの値が必要です。最初の値は復元する画層状態の名前で、2 番目の値は、画層設定を復元するビューポートのオブジェクト ID です。3 番目の値は、画層状態に含まれない画層を処理する方法を定義する整数です。4 番目の値は、復元する画層設定を指定します。

次の値は、画層状態に含まれない画層を処理する方法を指定します。

注: 上記の複数の値の合計値を使用して、画層状態に含まれない画層の復元動作を定義できます。たとえば、画層状態に保存されていない画層を非表示にしてフリーズすることができます。

たとえば、画層の色と線種の設定を "ColorLinetype" という名前で保存した後、その設定を変更した場合、"ColorLinetype" を復元すると、画層の色と線種の設定は "ColorLinetype" を保存したときの値に復元されます。"ColorLinetype" を保存した後に新しい画層を追加した場合、新しい画層は "ColorLinetype" を復元しても影響を受けません。

図面の画層の色と線種の設定を復元する

現在の図面の画層の色と線種の設定が、"ColorLinetype" という名前で以前に保存されていたとします。次の例では、図面の画層の色と線種の設定を、"ColorLinetype" を保存したときの値に復元します。

C# の例

using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
 
[CommandMethod("RestoreLayerState")]
public static void RestoreLayerState()
{
    // Get the current document
    Document acDoc = Application.DocumentManager.MdiActiveDocument;
 
    LayerStateManager acLyrStMan;
    acLyrStMan = acDoc.Database.LayerStateManager;
 
    string sLyrStName = "ColorLinetype";
 
    if (acLyrStMan.HasLayerState(sLyrStName) == true)
    {
        acLyrStMan.RestoreLayerState(sLyrStName,
                                     ObjectId.Null,
                                     1,
                                     LayerStateMasks.Color |
                                     LayerStateMasks.LineType);
    }
}