/// <summary>Добавляем ObjectData-атрибуты к примитиву чертежа</summary>
        /// <param name="wid"> ObjectId примитива </param>
        /// <param name="wr"> Данные атрибутов </param>
        /// <param name="wTbl"> Таблица ObjectData </param>
        public void AddAttr(ObjectId wid, Data.MyRecord wr, Autodesk.Gis.Map.ObjectData.Table wTbl)
        {
            if (wTbl == null)
            {
                return;
            }
            var acDoc = Application.DocumentManager.MdiActiveDocument;

            using (acDoc.LockDocument())
            {
                using (var acTrans = acDoc.Database.TransactionManager.StartTransaction())
                {
                    using (var odRecord = Record.Create())
                    {
                        wTbl.InitRecord(odRecord);
                        for (var i = 0; i < wTbl.FieldDefinitions.Count; i++)
                        {
                            var fdef = wTbl.FieldDefinitions[i];
                            var fval = wr.SearchField(fdef.Name);
                            if (fval != null)
                            {
                                if (!fval.IsGeom)
                                {
                                    odRecord[i].Assign(fval.GetString());
                                }
                            }
                        }
                        wTbl.AddRecord(odRecord, wid);
                        acTrans.Commit();
                    }
                }
            }
        }
 /// <summary>Загружаем данные слоя</summary>
 /// <param name="wDoc">xml-файл с данными</param>
 /// <returns>Список записей</returns>
 /// <exception cref="Data.DataLoadException"> Ошибка XPath при загрузке слоя </exception>
 internal List <MyRecord> LoadData(XmlDocument wDoc)
 {
     try
     {
         var wNm = LoadNamespace(wDoc);
         var layersXmlNodeList = wDoc.DocumentElement?.SelectNodes(_Rule.LayerPath, wNm);
         if (layersXmlNodeList == null)
         {
             return(Table);
         }
         foreach (XmlNode n in layersXmlNodeList)
         {
             var layerXmlNodeList = n.SelectNodes(_Rule.Entpath, wNm);
             if (layerXmlNodeList == null)
             {
                 continue;
             }
             foreach (XmlNode nn in layerXmlNodeList)
             {
                 var wRec = new MyRecord(_Rule);
                 wRec.LoadData(nn, wNm);
                 Table.Add(wRec);
             }
         }
         return(Table);
     }
     catch (XPathException e)
     {
         throw new DataLoadException("Ошибка XPath при загрузке слоя " + Name, e);
     }
 }
Beispiel #3
0
 /// <summary>
 /// Загружаем данные слоя
 /// </summary>
 /// <param name="wDoc"> xml-файл с данными </param>
 /// <returns> Список записей </returns>
 /// <exception cref="Data.DataLoadException"> Ошибка XPath при загрузке слоя </exception>
 internal List <MyRecord> LoadData(XmlDocument wDoc)
 {
     try
     {
         XmlNamespaceManager wNM = this.LoadNamespace(wDoc);
         XmlNodeList         LayersXmlNodeList = wDoc.DocumentElement.SelectNodes(this._Rule.LayerPath, wNM);
         XmlNodeList         LayerXmlNodeList;
         MyRecord            wRec;
         foreach (XmlNode n in LayersXmlNodeList)
         {
             LayerXmlNodeList = n.SelectNodes(this._Rule.Entpath, wNM);
             foreach (XmlNode nn in LayerXmlNodeList)
             {
                 wRec = new MyRecord(this._Rule);
                 wRec.LoadData(nn, wNM);
                 this.Table.Add(wRec);
             }
         }
         return(this.Table);
     }
     catch (System.Xml.XPath.XPathException e)
     {
         throw new Data.DataLoadException("Ошибка XPath при загрузке слоя " + this.Name, e);
     }
 }
Beispiel #4
0
 /// <summary>
 /// Добавляем ObjectData-атрибуты к примитиву чертежа
 /// </summary>
 /// <param name="wid"> ObjectId примитива </param>
 /// <param name="wr"> Данные атрибутов </param>
 /// <param name="wTbl"> Таблица ObjectData </param>
 public void AddAttr(ObjectId wid, Data.MyRecord wr, Autodesk.Gis.Map.ObjectData.Table wTbl)
 {
     AppServ.Document acDoc = AppServ.Application.DocumentManager.MdiActiveDocument;
     using (AppServ.DocumentLock acLckDoc = acDoc.LockDocument())
     {
         using (Transaction acTrans = acDoc.Database.TransactionManager.StartTransaction())
         {
             using (Record odRecord = Record.Create())
             {
                 wTbl.InitRecord(odRecord);
                 FieldDefinition fdef;
                 Data.FieldValue fval;
                 for (int i = 0; i < wTbl.FieldDefinitions.Count; i++)
                 {
                     fdef = wTbl.FieldDefinitions[i];
                     fval = wr.SearchField(fdef.Name);
                     if (fval != null)
                     {
                         if (!fval.IsGeom)
                         {
                             odRecord[i].Assign(fval.GetString());
                         }
                     }
                 }
                 wTbl.AddRecord(odRecord, wid);
                 acTrans.Commit();
             }
         }
     }
 }