public static double GetBondedPipeKOd(int dn, PipeSeriesEnum pipeSeries)
        {
            switch (pipeSeries)
            {
            case PipeSeriesEnum.S1:
                if (kOdsS1Bonded.ContainsKey(dn))
                {
                    return(kOdsS1Bonded[dn]);
                }
                break;

            case PipeSeriesEnum.S2:
                if (kOdsS2Bonded.ContainsKey(dn))
                {
                    return(kOdsS2Bonded[dn]);
                }
                break;

            case PipeSeriesEnum.S3:
                if (kOdsS3Bonded.ContainsKey(dn))
                {
                    return(kOdsS3Bonded[dn]);
                }
                break;

            default:
                return(0);
            }
            return(0);
        }
        public static double GetBondedPipeKOd(Entity ent, PipeSeriesEnum pipeSeries)
        {
            int dn = GetPipeDN(ent);

            switch (pipeSeries)
            {
            case PipeSeriesEnum.S1:
                if (kOdsS1Bonded.ContainsKey(dn))
                {
                    return(kOdsS1Bonded[dn]);
                }
                break;

            case PipeSeriesEnum.S2:
                if (kOdsS2Bonded.ContainsKey(dn))
                {
                    return(kOdsS2Bonded[dn]);
                }
                break;

            case PipeSeriesEnum.S3:
                if (kOdsS3Bonded.ContainsKey(dn))
                {
                    return(kOdsS3Bonded[dn]);
                }
                break;

            default:
                return(0.0);
            }
            return(0.0);
        }
        public static double GetAluPexTwinPipeKOd(Entity ent, PipeSeriesEnum pipeSeries)
        {
            int dn = GetPipeDN(ent);

            switch (pipeSeries)
            {
            case PipeSeriesEnum.S1:
                if (kOdsS1AluPexTwin.ContainsKey(dn))
                {
                    return(kOdsS1AluPexTwin[dn]);
                }
                break;

            case PipeSeriesEnum.S2:
                if (kOdsS2AluPexTwin.ContainsKey(dn))
                {
                    return(kOdsS2AluPexTwin[dn]);
                }
                break;

            default:
                return(0.0);
            }
            return(0.0);
        }
        public static double GetPipeKOd(Entity ent, PipeSeriesEnum pipeSeries)
        {
            PipeTypeEnum   pipeType   = GetPipeType(ent);
            PipeSystemEnum pipeSystem = GetPipeSystem(ent);

            switch (pipeType)
            {
            case PipeTypeEnum.Ukendt:
                return(0.0);

            case PipeTypeEnum.Twin:
                switch (pipeSystem)
                {
                case PipeSystemEnum.Ukendt:
                    return(0.0);

                case PipeSystemEnum.Stål:
                    return(GetTwinPipeKOd(ent, pipeSeries));

                case PipeSystemEnum.Kobberflex:
                    return(GetCuTwinPipeKOd(ent, pipeSeries));

                case PipeSystemEnum.AluPex:
                    return(GetAluPexTwinPipeKOd(ent, pipeSeries));

                default:
                    return(0.0);
                }

            case PipeTypeEnum.Frem:
            case PipeTypeEnum.Retur:
                switch (pipeSystem)
                {
                case PipeSystemEnum.Ukendt:
                    return(0.0);

                case PipeSystemEnum.Stål:
                    return(GetBondedPipeKOd(ent, pipeSeries));

                case PipeSystemEnum.Kobberflex:
                    return(GetCuEnkeltPipeKOd(ent, pipeSeries));

                case PipeSystemEnum.AluPex:
                    return(GetAluPexEnkeltPipeKOd(ent, pipeSeries));

                default:
                    return(0.0);
                }

            default:
                return(0.0);
            }
        }
        private void seriesButtonCheckBox_Click(object sender, EventArgs e)
        {
            CheckBox cb = (CheckBox)sender;

            foreach (CheckBox checkBox in seriesButtons)
            {
                if (checkBox.Checked && cb.Name != checkBox.Name)
                {
                    checkBox.Checked = false;
                }
            }

            PipeSeriesEnum pipeSeriesEnum =
                (PipeSeriesEnum)Enum.Parse(typeof(PipeSeriesEnum), cb.Text);

            PaletteUtils.CurrentSeries = pipeSeriesEnum;
        }
        public static double GetTwinPipeKOd(Entity ent, PipeSeriesEnum pipeSeries)
        {
            int dn = GetPipeDN(ent);

            switch (pipeSeries)
            {
            case PipeSeriesEnum.S1:
                if (kOdsS1Twin.ContainsKey(dn))
                {
                    return(kOdsS1Twin[dn]);
                }
                else
                {
                    return(0);
                }

            case PipeSeriesEnum.S2:
                if (kOdsS2Twin.ContainsKey(dn))
                {
                    return(kOdsS2Twin[dn]);
                }
                else
                {
                    return(0);
                }

            case PipeSeriesEnum.S3:
                if (kOdsS3Twin.ContainsKey(dn))
                {
                    return(kOdsS3Twin[dn]);
                }
                else
                {
                    return(0);
                }

            default:
                return(0);
            }
        }
        public static string GetLabel(Entity ent)
        {
            //Test to see if the polyline resides in the correct layer
            int DN = GetPipeDN(ent);

            if (DN == 999)
            {
                prdDbg("Kunne ikke finde dimension på valgte rør! Kontroller lag!");
                return("");
            }
            var type = GetPipeType(ent);

            if (type == PipeTypeEnum.Ukendt)
            {
                prdDbg("Kunne ikke finde systemet på valgte rør! Kontroller lag!");
                return("");
            }
            double od = GetPipeOd(ent);

            if (od < 1.0)
            {
                prdDbg("Kunne ikke finde rørdimensionen på valgte rør! Kontroller lag!");
                return("");
            }
            PipeSystemEnum system = GetPipeSystem(ent);

            if (system == PipeSystemEnum.Ukendt)
            {
                prdDbg("Kunne ikke finde system på valgte rør! Kontroller lag!");
                return("");
            }

            //Build label
            string         labelText = "";
            double         kOd       = 0;
            PipeSeriesEnum series    = GetPipeSeriesV2(ent);

            kOd = GetPipeKOd(ent, series);
            if (kOd < 1.0)
            {
                prdDbg("Kunne ikke finde kappedimensionen på valgte rør! Kontroller lag!");
                return("");
            }

            switch (type)
            {
            case PipeTypeEnum.Twin:
                switch (system)
                {
                case PipeSystemEnum.Stål:
                    labelText = $"DN{DN}-ø{od.ToString("N1")}+ø{od.ToString("N1")}/{kOd.ToString("N0")}";
                    break;

                case PipeSystemEnum.Kobberflex:
                    labelText = $"CU{DN}-ø{od.ToString("N0")}+ø{od.ToString("N0")}/{kOd.ToString("N0")}";
                    break;

                case PipeSystemEnum.AluPex:
                    labelText = $"AluPex{DN}-ø{od.ToString("N0")}+ø{od.ToString("N0")}/{kOd.ToString("N0")}";
                    break;

                default:
                    break;
                }
                break;

            case PipeTypeEnum.Frem:
            case PipeTypeEnum.Retur:
                switch (system)
                {
                case PipeSystemEnum.Stål:
                    labelText = $"DN{DN}-ø{od.ToString("N1")}/{kOd.ToString("N0")}";
                    break;

                case PipeSystemEnum.Kobberflex:
                    labelText = $"CU{DN}-ø{od.ToString("N0")}/{kOd.ToString("N0")}";
                    break;

                case PipeSystemEnum.AluPex:
                    labelText = $"AluPex{DN}-ø{od.ToString("N0")}/{kOd.ToString("N0")}";
                    break;

                default:
                    break;
                }
                break;

            default:
                break;
            }
            return(labelText);
        }
        public static double GetPipeMinElasticRadius(Entity ent, bool considerInSituBending = true)
        {
            if (considerInSituBending && IsInSituBent(ent))
            {
                return(0);
            }

            Dictionary <int, double> cuS1Enkelt = new Dictionary <int, double>
            {
                { 15, 0.6 },
                { 18, 0.7 },
                { 22, 0.8 },
                { 28, 0.8 },
            };
            Dictionary <int, double> cuS2Enkelt = new Dictionary <int, double>
            {
                { 15, 0.8 },
                { 18, 0.8 },
                { 22, 0.8 },
                { 28, 1.0 },
            };
            Dictionary <int, double> cuS1Twin = new Dictionary <int, double>
            {
                { 22, 0.9 },
                { 28, 0.9 },
            };
            Dictionary <int, double> cuS2Twin = new Dictionary <int, double>
            {
                { 22, 1.1 },
                { 28, 1.1 },
            };
            Dictionary <int, double> aluPexS1Enkelt = new Dictionary <int, double>
            {
                { 20, 0.7 },
                { 25, 0.7 },
                { 32, 0.7 },
            };
            Dictionary <int, double> aluPexS2Enkelt = new Dictionary <int, double>
            {
                { 20, 0.7 },
                { 32, 0.9 },
            };
            Dictionary <int, double> aluPexS1Twin = new Dictionary <int, double>
            {
                { 20, 0.9 },
                { 25, 0.9 },
                { 32, 1.1 },
            };
            Dictionary <int, double> aluPexS2Twin = new Dictionary <int, double>
            {
                { 16, 0.9 },
                { 20, 1.0 },
                { 25, 1.0 },
                { 32, 1.5 },
            };
            Dictionary <int, double> steelRadii = new Dictionary <int, double>
            {
                { 20, 13.0 },
                { 25, 17.0 },
                { 32, 21.0 },
                { 40, 24.0 },
                { 50, 30.0 },
                { 65, 38.0 },
                { 80, 44.0 },
                { 100, 57.0 },
                { 125, 70.0 },
                { 150, 84.0 },
                { 200, 110.0 },
                { 250, 137.0 },
                { 300, 162.0 },
                { 350, 178.0 },
                { 400, 203.0 },
                { 999, 0.0 }
            };

            PipeTypeEnum   pipeType   = GetPipeType(ent);
            PipeSeriesEnum pipeSeries = GetPipeSeriesV2(ent);
            PipeSystemEnum pipeSystem = GetPipeSystem(ent);

            switch (pipeSystem)
            {
            case PipeSystemEnum.Ukendt:
                return(0);

            case PipeSystemEnum.Stål:
                return(steelRadii[GetPipeDN(ent)]);

            case PipeSystemEnum.Kobberflex:
                switch (pipeType)
                {
                case PipeTypeEnum.Ukendt:
                    return(0);

                case PipeTypeEnum.Twin:
                    switch (pipeSeries)
                    {
                    case PipeSeriesEnum.Undefined:
                        return(0);

                    case PipeSeriesEnum.S1:
                        return(cuS1Twin[GetPipeDN(ent)]);

                    case PipeSeriesEnum.S2:
                        return(cuS2Twin[GetPipeDN(ent)]);

                    case PipeSeriesEnum.S3:
                        return(0);

                    default:
                        return(0);
                    }

                case PipeTypeEnum.Frem:
                case PipeTypeEnum.Retur:
                    switch (pipeSeries)
                    {
                    case PipeSeriesEnum.Undefined:
                        return(0);

                    case PipeSeriesEnum.S1:
                        return(cuS1Enkelt[GetPipeDN(ent)]);

                    case PipeSeriesEnum.S2:
                        return(cuS2Enkelt[GetPipeDN(ent)]);

                    case PipeSeriesEnum.S3:
                        return(0);

                    default:
                        return(0);
                    }

                default:
                    return(0);
                }

            case PipeSystemEnum.AluPex:
                switch (pipeType)
                {
                case PipeTypeEnum.Ukendt:
                    return(0);

                case PipeTypeEnum.Twin:
                    switch (pipeSeries)
                    {
                    case PipeSeriesEnum.Undefined:
                        return(0);

                    case PipeSeriesEnum.S1:
                        return(aluPexS1Twin[GetPipeDN(ent)]);

                    case PipeSeriesEnum.S2:
                        return(aluPexS2Twin[GetPipeDN(ent)]);

                    case PipeSeriesEnum.S3:
                        return(0);

                    default:
                        return(0);
                    }

                case PipeTypeEnum.Frem:
                case PipeTypeEnum.Retur:
                    switch (pipeSeries)
                    {
                    case PipeSeriesEnum.Undefined:
                        return(0);

                    case PipeSeriesEnum.S1:
                        return(aluPexS1Enkelt[GetPipeDN(ent)]);

                    case PipeSeriesEnum.S2:
                        return(aluPexS2Enkelt[GetPipeDN(ent)]);

                    case PipeSeriesEnum.S3:
                        return(0);

                    default:
                        return(0);
                    }

                default:
                    return(0);
                }

            default:
                return(0);
            }
        }
 public static string GetPipeSeries(PipeSeriesEnum pipeSeries) => pipeSeries.ToString();