using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Runtime;
using Autodesk.Civil;
using Autodesk.Civil.ApplicationServices;
using Autodesk.Civil.DatabaseServices.Styles;
using System.Collections.Generic;
namespace C3d2018Test
{
public class TestExportStyle
{
[CommandMethod("ExportStyleTest", CommandFlags.Session)]
public void ExportStyle()
{
List<Document> docs = new List<Document>();
foreach (Document adoc in Application.DocumentManager)
{
docs.Add(adoc);
}
if (docs.Count < 2) return;
Document firstDoc = docs[0];
Database firstDb = firstDoc.Database;
CivilDocument firstCdoc = CivilDocument.GetCivilDocument(firstDb);
double txtHeight = firstCdoc.Styles.LabelStyles.DefaultLabelStyle.Components.TextHeight.Value;
Document secondDoc = docs[1];
Database secondDb = secondDoc.Database;
using (secondDoc.LockDocument())
{
CivilDocument secondCdoc = CivilDocument.GetCivilDocument(secondDb);
secondCdoc.Styles.LabelStyles.DefaultLabelStyle.Components.TextHeight.Value = txtHeight;
}
ObjectId labelStyleId = firstCdoc.Styles.LabelStyles.AlignmentLabelStyles.MajorStationLabelStyles["Parallel with Tick"];
using (firstDoc.LockDocument())
using (Transaction tr = firstDb.TransactionManager.StartTransaction())
{
StyleBase labelStyle = tr.GetObject(labelStyleId, OpenMode.ForRead) as StyleBase;
labelStyle.ExportTo(docs[1].Database, StyleConflictResolverType.Override);
tr.Commit();
}
}
}
}