図面間でスタイルを共有する

ラベル スタイルは、すべてのスタイル オブジェクトと同様に図面間で共有できます。これを行うには、スタイルの ExportTo() メソッドを呼び出し、スタイルの追加先の図面をターゲットとして指定します。

注:

静的な StyleBase::ExportTo() メソッドを使用して、スタイルのコレクションを別の図面に書き出すこともできます。

スタイルを書き出す場合、StyleConflictResolverType 列挙を使用して、競合を解決する方法を指定します。次の例では、アクティブな図面から別の開いている図面 Drawing1.dwg に、MajorStationLabelStyles コレクションの最初のスタイルが書き出されます。

[CommandMethod("ExportStyle")]
public void ExportStyle()
{
    CivilDocument doc = CivilApplication.ActiveDocument;
    Document AcadDoc = Application.DocumentManager.MdiActiveDocument;
    Database destDb = null;
    // Find the database for "Drawing 1"
    foreach (Document d in Application.DocumentManager)
    {
        if (d.Name.Equals("Drawing1.dwg")) destDb = d.Database;
    }
    // cancel if no matching drawing:
    if (destDb == null) return;
    using (Transaction ts = AcadDoc.Database.TransactionManager.StartTransaction())
    {
        // Export style:
        ObjectId styleId = doc.Styles.LabelStyles.AlignmentLabelStyles.MajorStationLabelStyles[0];
        LabelStyle oLabelStyle = ts.GetObject(styleId, OpenMode.ForRead) as LabelStyle;
        oLabelStyle.ExportTo(destDb, Autodesk.Civil.StyleConflictResolverType.Rename);
    }
}
注:

ExportTo() を呼び出す際、トランザクション中断の試みが失敗する場合があります。これは、次のすべての状態がすべて真である場合に発生します。1) 複数のスタイルが書き出されている。2) スタイル間に名前の競合が発生している。3) StyleConflictResolverTypeStyleConflictResolverType.Override である。