Exemplo n.º 1
0
        public int LoadLinesData()
        {
            Lines.Clear();
            LinesDict.Clear();
            int res = 0;

            using (var trans = Ac.StartTransaction())
            {
                var acLines = trans.GetAllEntities <Line>();
                Ac.InitProgress(AppServices.Strings.LoadingLines, acLines.Count());
                foreach (var acLn in acLines)
                {
                    if (acLn.Length < 0.000001)
                    {
                        continue;
                    }
                    var ln    = new AcPolygonSegment(acLn);
                    var lnRev = ln.Reverse();

                    Lines.Add(ln);
                    LinesDict.AddListItem(ln.StartPoint.Id(), ln);

                    // Trzeba dodać odwrotną linię, bo nie zawsze startPoint jest
                    // z tej strony, z której bym chciał
                    Lines.Add(lnRev);
                    LinesDict.AddListItem(lnRev.StartPoint.Id(), lnRev);


                    res++;
                    Ac.SetProgress(res);
                }
                Ac.ClearProgress();
            }
            return(res);
        }