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