Example #1
0
        public List <LinhaComAtributo> SelecionarDuto()
        {
            List <LinhaComAtributo> listaDeDutos = new List <LinhaComAtributo>();
            double comprimento = 0;

            Document acDoc   = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
            Database acCurDb = acDoc.Database;
            Editor   acDocEd = acDoc.Editor;

            //COMEÇAR UMA TRANSAÇÃO
            using (Transaction acTrans = acCurDb.TransactionManager.StartTransaction())
            {
                TypedValue[] filList = new TypedValue[1] {
                    new TypedValue((int)DxfCode.Start, "LWPOLYLINE")
                };
                SelectionFilter        filter = new SelectionFilter(filList);
                PromptSelectionOptions opts   = new PromptSelectionOptions();
                opts.MessageForAdding = "Selecione o(s) duto(s): ";
                PromptSelectionResult res = acDocEd.GetSelection(opts, filter);

                if (res.Status == PromptStatus.OK)
                {
                    SelectionSet  selSet = res.Value;
                    ObjectId[]    ids    = selSet.GetObjectIds();
                    StringBuilder sb     = new StringBuilder();
                    for (int i = 0; i < ids.Length; i++)
                    {
                        Polyline         pl   = (Polyline)acTrans.GetObject(ids[i], OpenMode.ForRead);
                        LinhaComAtributo duto = new LinhaComAtributo();
                        duto.ID          = "";
                        duto.Nome        = pl.Layer;
                        duto.Descricao   = "Duto de instalação elétrica";
                        comprimento      = Math.Round(pl.Length, 3);
                        duto.Comprimento = comprimento.ToString();
                        listaDeDutos.Add(duto);
                    }
                }
                acTrans.Commit();
            }
            return(listaDeDutos);
        }
Example #2
0
        public List <LinhaComAtributo> MontarListaDeDutos(List <Elemento> listaElementos)
        {
            List <LinhaComAtributo> listaDutos           = new List <LinhaComAtributo>();
            List <LinhaComAtributo> listaBlocosCorrigida = new List <LinhaComAtributo>();

            try
            {
                foreach (Elemento elem in listaElementos)
                {
                    if (elem.Tipo == "duto")
                    {
                        LinhaComAtributo duto = new LinhaComAtributo();
                        duto.ID          = elem.ID;
                        duto.Nome        = elem.Nome;
                        duto.Descricao   = elem.Especificacao;
                        duto.Comprimento = elem.Quantificacao;
                        listaDutos.Add(duto);
                    }
                }
            }
            catch { }
            listaBlocosCorrigida = CorrigirListaDeDutos(listaDutos);
            return(listaDutos);
        }