Создание ординатных размеров
Ординатные, или базовые, размеры измеряют перпендикулярное расстояние от начальной точки, называемой базой, до заданной точки элемента, например, центра отверстия, у измеряемого объекта.

Ординатные размеры состоят из координат X или Y на выносках. Размеры по ординатам X измеряют расстояние элемента от базовой точки вдоль оси X. Размеры по ординатам Y измеряют такое же расстояние вдоль оси Y.
Координаты измеряются относительно текущей пользовательской системы координат (ПСК). Используются абсолютные значения координат. Текст размера выравнивается по выноске ординаты независимо от ориентации, заданной текущим размерным стилем.
Текст размера можно заменить на пользовательский. Создать новый ординатный размер можно с помощью класса OrdinateDimension. У конструктора класса OrdinateDimension имеется перегрузка без параметров и со всеми параметрами; характеристики размера могут быть установлены через свойства:
- UsingXAxis : признак, создавать ли размер вдоль оси X (аналогично свойство UsingYAxis);
- DefiningPoint : базовая точка, для которой считается размер;
- LeaderEndPoint : точка начала полки выноски;
- DimensionText : текст размера;
- Стиль размера (свойство DimensionStyleName или DimensionStyle);
В примере ниже создается ординатный размер в пространстве модели
[CommandMethod("CreateOrdinateDimension")]
public static void CreateOrdinateDimension()
{
// Get the current database
Document acDoc = Application.DocumentManager.MdiActiveDocument;
Database acCurDb = acDoc.Database;
// Start a transaction
using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
{
// Open the Block table for read
BlockTable acBlkTbl;
acBlkTbl = acTrans.GetObject(acCurDb.BlockTableId,
OpenMode.ForRead) as BlockTable;
// Open the Block table record Model space for write
BlockTableRecord acBlkTblRec;
acBlkTblRec = acTrans.GetObject(acBlkTbl[BlockTableRecord.ModelSpace],
OpenMode.ForWrite) as BlockTableRecord;
// Create an ordinate dimension
using (OrdinateDimension acOrdDim = new OrdinateDimension())
{
acOrdDim.UsingXAxis = true;
acOrdDim.DefiningPoint = new Point3d(5, 5, 0);
acOrdDim.LeaderEndPoint = new Point3d(10, 5, 0);
acOrdDim.DimensionStyle = acCurDb.Dimstyle;
// Add the new object to Model space and the transaction
acBlkTblRec.AppendEntity(acOrdDim);
acTrans.AddNewlyCreatedDBObject(acOrdDim, true);
}
// Commit the changes and dispose of the transaction
acTrans.Commit();
}
}