• Industries
  • Products
  • Buy
  • Services & Support
  • Communities
  • Discussion Groups

    .NET

    Reply
    Contributor
    waterharbin
    Posts: 14
    Registered: ‎07-17-2011

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

    137 Views, 4 Replies
    07-30-2011 04:22 AM

    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.

    Please use plain text.
    Valued Mentor
    Posts: 330
    Registered: ‎05-11-2006

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

    07-30-2011 08:00 AM in reply to: waterharbin

    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();
    }

    Please use plain text.
    Active Contributor
    Posts: 30
    Registered: ‎09-13-2012

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

    12-19-2012 04:56 AM in reply to: cadMeUp

    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

    Please use plain text.
    *Expert Elite*
    Posts: 6,456
    Registered: ‎06-29-2007

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

    12-19-2012 05:13 AM in reply to: ZK_BUDiKOM

    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
    Ingenieur Studio HOLLAUS ... www.hollaus.at
    -------------------------------------------------------------------------
    Please use plain text.
    Active Contributor
    Posts: 30
    Registered: ‎09-13-2012

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

    12-19-2012 05:50 AM in reply to: alfred.neswadba

    Hi Alfred,

     

    thank you it's work :smileyhappy:

     

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

     

    regards

    Please use plain text.