ElementHandle eh (...);
TextBlockPtr textBlock = TextHandlerBase::GetFirstTextPartValue (eh);
if (!textBlock.IsValid ())
DRange3d nominalRange = textBlock->GetNominalRange ();
DPoint3d shapePts[5];
memset (shapePts, 0, sizeof (shapePts));
shapePts[0] = nominalRange.low;
shapePts[2] = nominalRange.high;
shapePts[1].x = shapePts[2].x;
shapePts[1].y = shapePts[0].y;
shapePts[3].x = shapePts[0].x;
shapePts[3].y = shapePts[2].y;
shapePts[4] = shapePts[0];
Transform transform;
transform.InitFrom (TextBlock::GetOrientation (), TextBlock::GetUserOrigin ());
transform.Multiply (shapePts, shapePts, 5);