コード例 #1
0
ファイル: DicED.cs プロジェクト: vildar82/AcadLib
        public void AddRec(RecXD recXd)
        {
            if (recXd == null || recXd.IsEmpty()) return;
            if (!IsCorrectName(recXd.Name))
                throw new Exception("Invalid Name - " + recXd.Name);

            if (Recs == null) Recs = new List<RecXD>();
            Recs.Add(recXd);
        }
コード例 #2
0
ファイル: ExtDicHelper.cs プロジェクト: vildar82/AcadLib
        public static DicED GetDicEd(ObjectId dicId)
        {
            DicED res;

            if (!dicId.IsValidEx())
            {
                return(null);
            }

            using (var dic = dicId.Open(OpenMode.ForRead) as DBDictionary)
            {
                if (dic == null)
                {
                    return(null);
                }

                res = new DicED
                {
                    Inners = new List <DicED>(),
                    Recs   = new List <RecXD>()
                };

                foreach (var item in dic)
                {
                    if (item.Value.ObjectClass == General.ClassRecord)
                    {
                        using (var xrec = item.Value.Open(OpenMode.ForRead) as Xrecord)
                        {
                            if (xrec == null)
                            {
                                continue;
                            }
                            var values = xrec.Data.AsArray();
                            var rec    = new RecXD {
                                Name = item.Key, Values = values.ToList()
                            };
                            res.Recs.Add(rec);
                        }
                    }
                    else if (item.Value.ObjectClass == General.ClassDBDic)
                    {
                        var dicEdInner = GetDicEd(item.Value);
                        if (dicEdInner != null)
                        {
                            dicEdInner.Name = item.Key;
                            res.Inners.Add(dicEdInner);
                        }
                    }
                }
            }

            return(res);
        }
コード例 #3
0
ファイル: DicED.cs プロジェクト: vildar82/AcadLib
 public void AddRec([CanBeNull] RecXD recXd)
 {
     if (recXd == null || recXd.IsEmpty())
     {
         return;
     }
     if (!IsCorrectName(recXd.Name))
     {
         throw new Exception("Invalid Name - " + recXd.Name);
     }
     if (Recs == null)
     {
         Recs = new List <RecXD>();
     }
     Recs.Add(recXd);
 }
コード例 #4
0
ファイル: ExtDicHelper.cs プロジェクト: vildar82/AcadLib
        /// <summary>
        /// Создание записи XRecord в словаре dicId
        /// </summary>
        /// <param name="dicId">Словарь DBDictionary</param>
        /// <param name="rec">Запись XRecord</param>
        public static void SetRecXD(ObjectId dicId, [CanBeNull] RecXD rec)
        {
            if (rec?.Values == null || rec.Values.Count == 0)
            {
                return;
            }
            var idXrec = GetRec(dicId, rec.Name, true, true);

            if (!idXrec.IsValidEx())
            {
                return;
            }

            using (var xrec = (Xrecord)idXrec.Open(OpenMode.ForWrite))
                using (var rb = new ResultBuffer(rec.Values.ToArray()))
                {
                    if (xrec != null)
                    {
                        xrec.Data = rb;
                    }
                }
        }