void SmoBlockMod(object senderObj, EventArgs evtArgs)
{
Document acDoc = acad.DocumentManager.MdiActiveDocument;
Database acCurDb = acDoc.Database;
Editor ed = acDoc.Editor;
if (acCurDb.TransactionManager.NumberOfActiveTransactions == 0)
if (senderObj.GetType() == typeof(BlockReference))
{
BlockReference br = senderObj as BlockReference;
using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
{
double h = 0;
foreach (DynamicBlockReferenceProperty j in
br.DynamicBlockReferencePropertyCollection)
{
if (j.PropertyName == "Высота")
h = Convert.ToDouble(j.Value);
}
foreach (ObjectId attRefID in br.AttributeCollection)
{
DBObject obj = acTrans.GetObject(attRefID,
OpenMode.ForRead);
AttributeReference attRef = obj as AttributeReference;
if (attRef != null)
if (attRef.Tag == "ВЫСОТА")
{
attRef.UpgradeOpen();
attRef.TextString = Convert.ToString(Math.Round(h / 1000, 1));
attRef.DowngradeOpen();
}
}
acTrans.Commit();
}
}
ed.Regen();
}