autocad.net创建尺寸样式并置为当前

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//by 鸟哥 qq1833183060
//qq群 720924083
//2020-11-09

/// <summary>
/// 创建尺寸样式并置为当前
/// 参考 https://adndevblog.typepad.com/autocad/2012/04/creating-a-new-dimension-style-and-make-it-as-current.html
/// </summary>
[CommandMethod("NewDimStyle")]
public void NewDimStyle()
{
Database db =Application.DocumentManager.MdiActiveDocument.Database;

using (Transaction trans =db.TransactionManager.StartTransaction())
{
DimStyleTable DimTabb =(DimStyleTable)trans.GetObject(db.DimStyleTableId,OpenMode.ForRead);

ObjectId dimId = ObjectId.Null;

if (!DimTabb.Has("Test"))
{
DimTabb.UpgradeOpen();

DimStyleTableRecord newRecord =new DimStyleTableRecord();

newRecord.Name = "Test";

dimId = DimTabb.Add(newRecord);

trans.AddNewlyCreatedDBObject(newRecord, true);

}

else
{
dimId = DimTabb["Test"];
}

DimStyleTableRecord DimTabbRecaord =(DimStyleTableRecord)trans.GetObject(dimId,OpenMode.ForRead);

if (DimTabbRecaord.ObjectId != db.Dimstyle)
{
db.Dimstyle = DimTabbRecaord.ObjectId;
db.SetDimstyleData(DimTabbRecaord);
}
trans.Commit();

}
}