Hi,
You can get the dimension MText contents from the BlockTableRecord of the Dimension and the measurement text from the dimension properties.
Here's an example you can start from.
private static string GetDimensionContents(Dimension dimension) =>
((BlockTableRecord)dimension.DimBlockId.GetObject(OpenMode.ForRead))
.Cast<ObjectId>()
.Where(id => id.ObjectClass.Name == "AcDbMText")
.Select(id => (MText)id.GetObject(OpenMode.ForRead))
.First()
.Contents;
private static string GetMeasurementText(Dimension dimension) =>
(dimension is LineAngularDimension2 || dimension is Point3AngularDimension) ?
Converter.AngleToString(dimension.Measurement, (AngularUnitFormat)dimension.Dimaunit, dimension.Dimadec) :
Converter.DistanceToString(dimension.Measurement, (DistanceUnitFormat)dimension.Dimlunit, dimension.Dimdec);
And then use Regex to replace the measurement part by another text.
dimension.DimensionText = Regex.Replace(
GetDimensionContents(dimension),
GetMeasurementText(dimension),
replacementText);