using (Transaction tr = db.TransactionManager.StartTransaction())
{
//Открывает таблицу стилей
DBDictionary mlStyles = (DBDictionary)tr.GetObject(db.MLeaderStyleDictionaryId, OpenMode.ForWrite);
//Таблицы блоков
BlockTable bt = (BlockTable)tr.GetObject(db.BlockTableId, OpenMode.ForRead);
//Переменная стиля
MLeaderStyle mleaderStyle;
//Проверка есть ли такой размерный стиль или нет
if (mlStyles.Contains(NameMLeaderStyle))
{
//MessageBox.Show($"Размерный стиль ({NameMLeaderStyle}) уже существует", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning);
mleaderStyle = (MLeaderStyle)tr.GetObject((ObjectId)mlStyles[NameMLeaderStyle], OpenMode.ForWrite);
}
else
{
mleaderStyle = new MLeaderStyle();
ObjectId mleaderStyleId = mleaderStyle.PostMLeaderStyleToDb(db, NameMLeaderStyle);
tr.AddNewlyCreatedDBObject(mleaderStyle, true);
}
#region ПАРАМЕТРЫ ВЫНОСКИ
// группа "General" - ОБЩИЕ
mleaderStyle.LeaderLineType = LeaderType.StraightLeader; // Тип выноски - прямая
mleaderStyle.LeaderLineColor = Autodesk.AutoCAD.Colors.Color.FromColorIndex(ColorMethod.ByLayer, 256); //Цвет
mleaderStyle.LeaderLineTypeId = db.ByBlockLinetype; // тип линии выноски
mleaderStyle.LeaderLineWeight = LineWeight.LineWeight025; // толщина выноски
// Группа "Arrowhead" - СТЕРЕЛКА
if (!bt.Has("_DOT")) { GetArrowObjectId("DIMBLK", "_DOT"); } // Загружаем определение блока "_DOT"
mleaderStyle.ArrowSymbolId = bt["_DOT"]; // Устанавливаем блок точки на указатель выноски
mleaderStyle.ArrowSize = 0.5; // Размер блока "точки"
// Группа "Leader break" - Разрыв выноски
mleaderStyle.BreakSize = 0; // Размер размера
// Группа "Constrains" - Зависимости и ограничения
mleaderStyle.MaxLeaderSegmentsPoints = 2; // Максимальное количество точек выноски
mleaderStyle.FirstSegmentAngleConstraint =AngleConstraint.DegreesAny; // Угол выноски первого сегмента - любой
mleaderStyle.SecondSegmentAngleConstraint = AngleConstraint.DegreesAny; // Угол выноски второго сегмента - любой
mleaderStyle.EnableDogleg = false; //выключаем полку - смещение текста на полке
mleaderStyle.DoglegLength = 0; // само смещение полки
mleaderStyle.EnableFrameText = false; // наличии рамки
// Группа "Scale"- масштабы
mleaderStyle.Annotative = AnnotativeStates.False; // аннотативный
mleaderStyle.Scale = 1; // масштаб
// Вкладка "Content" - СОДЕРЖАНИЕ
mleaderStyle.ContentType = ContentType.MTextContent; //
// Присвоим стиль текста
mleaderStyle.TextStyleId = GetTextStyleObjectId(TextStyle);
// Группа "Text options"
mleaderStyle.TextAngleType = TextAngleType.HorizontalAngle; //Угол строки текста
mleaderStyle.TextColor = Autodesk.AutoCAD.Colors.Color.FromColorIndex(ColorMethod.ByLayer, 256);
mleaderStyle.TextHeight = text025;
mleaderStyle.TextAlignAlwaysLeft = false; // выравнивание всегда налево
//Привязка текста
mleaderStyle.TextAttachmentType = TextAttachmentType.AttachmentBottomLine;
mleaderStyle.SetTextAttachmentType(TextAttachmentType.AttachmentBottomLine, LeaderDirectionType.LeftLeader); // Привязка слева
mleaderStyle.SetTextAttachmentType(TextAttachmentType.AttachmentBottomLine, LeaderDirectionType.RightLeader); // Привязка справа
#endregion ПАРАМЕТРЫ ВЫНОСКИ
tr.Commit();
}