public AnalyticElement(Element element)
        {
            Element = element;

            Parameter parInsTypeCheck = Element.get_Parameter(BuiltInParameter.RBS_REFERENCE_INSULATION_TYPE);

            if (parInsTypeCheck.HasValue)
            {
                Parameter parInsThickness = Element.get_Parameter(BuiltInParameter.RBS_REFERENCE_INSULATION_THICKNESS);
                InsulationThk = (int)parInsThickness.AsDouble().FtToMm().Round();
            }

            switch (Element)
            {
            case Pipe pipe:
                //Outside diameter
                oDia = Element.get_Parameter(BuiltInParameter.RBS_PIPE_OUTER_DIAMETER).AsDouble().FtToMm();
                //Wallthk
                DN      = (int)pipe.Diameter.FtToMm().Round();
                WallThk = MepUtils.pipeWallThkDict()[DN];
                break;

            case FamilyInstance fi:
                //Outside diameter
                Cons cons = MepUtils.GetConnectors(fi);
                DN      = (int)(cons.Primary.Radius * 2).FtToMm().Round();
                oDia    = MepUtils.outerDiaDict()[DN];
                WallThk = MepUtils.pipeWallThkDict()[DN];
                break;

            default:
                break;
            }
        }
        public void AnalyzeReducer()
        {
            int fromDN = (int)(From.NextCon.Radius * 2).FtToMm().Round();

            oDia    = MepUtils.outerDiaDict()[fromDN];
            WallThk = MepUtils.pipeWallThkDict()[fromDN];

            int toDN = (int)(To.PreviousCon.Radius * 2).FtToMm().Round();

            secondODia    = MepUtils.outerDiaDict()[toDN];
            secondWallThk = MepUtils.pipeWallThkDict()[toDN];
        }