private void ConfirmarCambios()
        {
            F_Base.EnviarEstadoVacio();
            foreach (cPiso Piso in F_Base.Proyecto.Edificio.Lista_Pisos)
            {
                List <cNervio> NerviosOrdenados = Piso.Nervios.OrderBy(y => !y.SimilitudNervioCompleto.IsMaestro).ToList();

                foreach (cNervio Nervio in NerviosOrdenados)
                {
                    List <IElemento> Subtramos = Nervio.Lista_Elementos.FindAll(x => x is cSubTramo).ToList();
                    for (int i = 0; i < DGV_1.Rows.Count; i++)
                    {
                        Subtramos.ForEach(subtramo =>
                        {
                            cSubTramo SubTramoAux = (cSubTramo)subtramo;
                            SubTramoAux.Estaciones.ForEach(x => {
                                cSolicitacion solicitacionFind = x.Lista_Solicitaciones.Find(y => y.Nombre == (string)DGV_1.Rows[i].Cells[C_NombreCombinacion.Index].Value);
                                if (solicitacionFind != null)
                                {
                                    solicitacionFind.SelectEnvolvente = (bool)DGV_1.Rows[i].Cells[C_CheckCombinacion.Index].Value;
                                }
                            });
                        });
                    }
                    Nervio.CrearEnvolvente();
                    Nervio.CrearAceroAsignadoRefuerzoLongitudinal();
                    Nervio.CrearAceroAsignadoRefuerzoTransversal();
                }
            }
        }
예제 #2
0
        private void EditarTendenciaATodosLosNervios()
        {
            int i = 0;

            foreach (cTendencia tendencia in TendenciasCreadasI)
            {
                cTendencia         TI = tendencia;
                cTendencia         TS = TendenciasCreadasS[i];
                cTendencia_Estribo TE = Tendencia_Estribos[i];
                foreach (cNervio Nervio in F_Base.Proyecto.Edificio.PisoSelect.Nervios)
                {
                    cTendencia         TIN = Nervio.Tendencia_Refuerzos.TendenciasInferior.Find(x => x.ID == TI.ID);
                    cTendencia         TSN = Nervio.Tendencia_Refuerzos.TendenciasSuperior.Find(x => x.ID == TS.ID);
                    cTendencia_Estribo TEN = Nervio.Tendencia_Refuerzos.TendenciasEstribos.Find(x => x.ID == TE.ID);
                    TI.Tendencia_Refuerzo_Origen.NombreNervioOrigen = Nervio.Nombre;
                    TS.Tendencia_Refuerzo_Origen.NombreNervioOrigen = Nervio.Nombre;
                    if (TIN != null)
                    {
                        TIN.MaximaLongitud          = TI.MaximaLongitud;
                        TIN.MinimaLongitud          = TI.MinimaLongitud;
                        TIN.CuantiaMinima           = TI.CuantiaMinima;
                        TIN.BarrasAEmplearAdicional = cFunctionsProgram.DeepCloneFast(TI.BarrasAEmplearAdicional);
                        TIN.BarrasAEmplearBase      = cFunctionsProgram.DeepCloneFast(TI.BarrasAEmplearBase);
                    }
                    else
                    {
                        Nervio.Tendencia_Refuerzos.TendenciasInferior.Add(cFunctionsProgram.DeepCloneFast(TI));
                    }
                    if (TSN != null)
                    {
                        TSN.MinimaLongitud          = TS.MinimaLongitud;
                        TSN.MaximaLongitud          = TS.MaximaLongitud;
                        TSN.CuantiaMinima           = TS.CuantiaMinima;
                        TSN.BarrasAEmplearAdicional = cFunctionsProgram.DeepCloneFast(TS.BarrasAEmplearAdicional);
                        TSN.BarrasAEmplearBase      = cFunctionsProgram.DeepCloneFast(TS.BarrasAEmplearBase);
                    }
                    else
                    {
                        Nervio.Tendencia_Refuerzos.TendenciasSuperior.Add(cFunctionsProgram.DeepCloneFast(TS));
                    }

                    if (TEN == null)
                    {
                        Nervio.Tendencia_Refuerzos.TendenciasEstribos.Add(cFunctionsProgram.DeepCloneFast(TE));
                    }

                    Nervio.AsignarMaximaLongitudTendencias();
                }

                i++;
            }


            //int ID = F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TendenciasInferior.Max(x => x.ID);
            //foreach (cNervio Nervio in F_Base.Proyecto.Edificio.PisoSelect.Nervios)
            //{
            //    cTendencia TI = cFunctionsProgram.DeepClone(F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TendenciasInferior.Find(x => x.ID == ID));
            //    cTendencia TS = cFunctionsProgram.DeepClone(F_Base.Proyecto.Edificio.PisoSelect.NervioSelect.Tendencia_Refuerzos.TendenciasSuperior.Find(x => x.ID == ID));
            //    TI.ID += 1; TI.Nombre = "Tendencia " + ID;
            //    TS.ID += 1; TS.Nombre = "Tendencia " + ID;
            //    TI.LimpiarTendencia(); TS.LimpiarTendencia();
            //    TI.Tendencia_Refuerzo_Origen.NombreNervioOrigen = Nervio.Nombre;
            //    TS.Tendencia_Refuerzo_Origen.NombreNervioOrigen = Nervio.Nombre;
            //    Nervio.Tendencia_Refuerzos.TendenciasInferior.Add(TI);
            //    Nervio.Tendencia_Refuerzos.TendenciasSuperior.Add(TS);
            //    Nervio.AsignarMaximaLongitudTendencias();
            //}
        }