using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.GraphicsInterface;
using Autodesk.AutoCAD.Runtime;
using System;
// This line is not mandatory, but improves loading performances
[assembly: CommandClass(typeof(CopyStandartStyle.MyCommands))]
namespace CopyStandartStyle
{
public class MyCommands
{
[CommandMethod("CopyStandard")]
public void CopyStandardHandler()
{
Document doc = Application.DocumentManager.MdiActiveDocument;
if (doc == null) return;
Editor ed = doc.Editor;
Database db = doc.Database;
ObjectId idStandardCur = SymbolUtilityServices.GetTextStyleStandardId(db);
using (TextStyleTableRecord textStyleTableRecordCur = (TextStyleTableRecord)idStandardCur.Open(OpenMode.ForRead))
{
FontDescriptor fd = textStyleTableRecordCur.Font;
//using (TextStyle ts = new TextStyle())
{
//ts.FromTextStyleTableRecord(idStandardCur);
using (Database newDb = new Database(true, true))
{
IdMapping maps = new IdMapping();
newDb.WblockCloneObjects(new ObjectIdCollection() { idStandardCur }, newDb.TextStyleTableId, maps,
DuplicateRecordCloning.Replace, false);
ObjectId idStandardNew = SymbolUtilityServices.GetTextStyleStandardId(newDb);
// ts.ToTextStyleTableRecord(idStandardNew);
using (TextStyleTableRecord textStyleTableRecord = (TextStyleTableRecord)idStandardNew.Open(OpenMode.ForWrite))
{
textStyleTableRecord.Font = fd;
}
newDb.SaveAs(@"C:\DupStandard.dwg", DwgVersion.Newest);
}
}
}
}
}
}