How to new a TextStyle? And then set it current?

How to new a TextStyle? And then set it current?

Anonymous
Not applicable
1,146 Views
4 Replies
Message 1 of 5

How to new a TextStyle? And then set it current?

Anonymous
Not applicable

Hello.I want to set a TestStyle,so I can control the fontsize,fontname,etc.Is there anyone who have done that before,Can your code be shared with us? Thank you.

0 Likes
1,147 Views
4 Replies
Replies (4)
Message 2 of 5

cadMeUp
Collaborator
Collaborator

Here is one way you can go about it:

 

Document curDoc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
Database db = curDoc.Database;
Editor ed = curDoc.Editor;

TextStyleTableRecord txtStyle = new TextStyleTableRecord();
txtStyle.Name = "My Style";
txtStyle.Font = new Autodesk.AutoCAD.GraphicsInterface.FontDescriptor("Symbol", false, false, 0, 0);
txtStyle.Annotative = AnnotativeStates.True;
txtStyle.TextSize = 0.125;

using (Transaction trans = db.TransactionManager.StartTransaction())
{
 TextStyleTable tab = (TextStyleTable)db.TextStyleTableId.GetObject(OpenMode.ForWrite);
 tab.Add(txtStyle);
 trans.AddNewlyCreatedDBObject(txtStyle, true);
 db.Textstyle = txtStyle.Id;
 trans.Commit();
}

0 Likes
Message 3 of 5

Anonymous
Not applicable

Hi,

 

how can I show what is the current TextStyle ??

 

this show me my style, but I know what is this name:

textStyleId = textStyleTable["MyTextStyle"];
TextStyleTableRecord style = tr.GetObject(textStyleId, OpenMode.ForRead) as TextStyleTableRecord;
string sTx = style.Name;

ed.WrittenMessage("\nCurrent Text Style: {0}", sTx);

 

but If I don't??

textStyleId = textStyleTable[??];  // - I want to know name current TextStyle
TextStyleTableRecord style = tr.GetObject(textStyleId, OpenMode.ForRead) as TextStyleTableRecord;
string sTx = style.Name;
 
ed.WrittenMessage("\nCurrent Text Style: {0}", sTx);

 

regards

0 Likes
Message 4 of 5

Alfred.NESWADBA
Consultant
Consultant

Hi,

 

if you have access to your database you also have access to the property .Textstyle (e.g. AcadDocDB.Textstyle) which gives you the ObjectID for the TextStyleTableRecord.

 

- alfred -

------------------------------------------------------------------------------------
Alfred NESWADBA
ISH-Solutions GmbH / Ingenieur Studio HOLLAUS
www.ish-solutions.at ... blog.ish-solutions.at ... LinkedIn ... CDay 2026
------------------------------------------------------------------------------------

(not an Autodesk consultant)
0 Likes
Message 5 of 5

Anonymous
Not applicable

Hi Alfred,

 

thank you it's work 🙂

 

TextStyleTableRecord style = tr.GetObject(db.Textstyle, OpenMode.ForRead) as TextStyleTableRecord;
string sTx = style.Name;

 

regards

0 Likes