void ChangeCircleCoord(double length1, double length2, double widthXR, double depthXR, double sandLlayerXR)
{
if (!IsValid) return;
Document adoc = Application.DocumentManager.MdiActiveDocument;
if (adoc == null) return;
Database db = adoc.Database;
using (DocumentLock dockLock = adoc.LockDocument())
{
using (Transaction tr = db.TransactionManager.StartTransaction())
{
Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage("\nНачинаю запись изменений......");
DBObject dbObj = tr.GetObject(_circleId, OpenMode.ForRead);
ObjectId surId = dbObj.ExtensionDictionary;
DBDictionary dbExt = (DBDictionary)tr.GetObject(surId, OpenMode.ForWrite);
ObjectId dId = dbExt.GetAt("ESMT_LEP_v1.0");
Xrecord xr = (Xrecord)tr.GetObject(dId, OpenMode.ForWrite);
TypedValue[] arr = xr.Data.AsArray();
XElement xml_att = XElement.Parse((string)arr[0].Value);
//xml_att.SetElementValue("Number", numberXR);
//xml_att.SetElementValue("Name", nameXR);
if (xml_att.Name.ToString() == "Conductor")
{
xml_att.SetElementValue("AdditionalLength1", Convert.ToString(length1));
xml_att.SetElementValue("AdditionalLength2", Convert.ToString(length2));
}
if (xml_att.Name.ToString() == "Trench")
{
xml_att.SetElementValue("Width", Convert.ToString(widthXR)); //Ширина траншеи
xml_att.SetElementValue("Depth", Convert.ToString(depthXR)); //Глубина траншеи
xml_att.SetElementValue("SandLlayer", Convert.ToString(sandLlayerXR)); //Слой песка
}
Xrecord xRec = new Xrecord();
dbExt.Remove("ESMT_LEP_v1.0");
xRec.Data = new ResultBuffer(new TypedValue(1, xml_att));
dbExt.SetAt("ESMT_LEP_v1.0", xRec);
tr.AddNewlyCreatedDBObject(xRec, true);
tr.Commit();
Application.DocumentManager.MdiActiveDocument.Editor.WriteMessage("\nСохранение изменений выполнено");
}
}
Autodesk.AutoCAD.Internal.Utils.FlushGraphics();
Autodesk.AutoCAD.Internal.Utils.SetFocusToDwgView();
}