ラベル スタイルは、すべてのスタイル オブジェクトと同様に図面間で共有できます。これを行うには、スタイルの 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) StyleConflictResolverType が StyleConflictResolverType.Override である。