public static string DefaultConstructionName(this ApertureType apertureType, bool @internal = false)
        {
            if (apertureType == ApertureType.Undefined)
            {
                return(null);
            }

            GlobalConstructionSet globalConstructionSet = GlobalConstructionSet.Default;

            if (globalConstructionSet == null)
            {
                return(null);
            }

            switch (apertureType)
            {
            case ApertureType.Window:
                return(@internal ? globalConstructionSet.ApertureSet.InteriorConstruction : globalConstructionSet.ApertureSet.OperableConstruction);

            case ApertureType.Door:
                return(@internal ? globalConstructionSet.DoorSet.InteriorConstruction : globalConstructionSet.DoorSet.ExteriorConstruction);
            }

            return(null);
        }
예제 #2
0
        public static AnyOf <EnergyMaterial, EnergyMaterialNoMass, EnergyWindowMaterialGlazing, EnergyWindowMaterialGas> DefaultMaterial(this string name)
        {
            if (string.IsNullOrWhiteSpace(name))
            {
                return(null);
            }

            GlobalConstructionSet globalConstructionSet = GlobalConstructionSet.Default;

            if (globalConstructionSet == null)
            {
                return(null);
            }

            List <AnyOf <EnergyMaterial, EnergyMaterialNoMass, EnergyWindowMaterialGlazing, EnergyWindowMaterialGas> > materials = globalConstructionSet.Materials;

            if (materials == null)
            {
                return(null);
            }

            foreach (AnyOf <EnergyMaterial, EnergyMaterialNoMass, EnergyWindowMaterialGlazing, EnergyWindowMaterialGas> material in materials)
            {
                if (material.Obj is EnergyMaterial)
                {
                    if (name.Equals(((EnergyMaterial)material.Obj).Identifier))
                    {
                        return(material);
                    }
                }
                else if (material.Obj is EnergyMaterialNoMass)
                {
                    if (name.Equals(((EnergyMaterialNoMass)material.Obj).Identifier))
                    {
                        return(material);
                    }
                }
                else if (material.Obj is EnergyWindowMaterialGlazing)
                {
                    if (name.Equals(((EnergyWindowMaterialGlazing)material.Obj).Identifier))
                    {
                        return(material);
                    }
                }
                else if (material.Obj is EnergyWindowMaterialGas)
                {
                    if (name.Equals(((EnergyWindowMaterialGas)material.Obj).Identifier))
                    {
                        return(material);
                    }
                }
            }

            return(null);
        }
        public static string DefaultConstructionName(this PanelType panelType)
        {
            if (panelType == PanelType.Undefined)
            {
                return(null);
            }

            GlobalConstructionSet globalConstructionSet = GlobalConstructionSet.Default;

            if (globalConstructionSet == null)
            {
                return(null);
            }

            switch (panelType)
            {
            case PanelType.Floor:
                return(globalConstructionSet.FloorSet?.InteriorConstruction);

            case PanelType.Air:
                return(globalConstructionSet.AirBoundaryConstruction);

            case PanelType.UndergroundSlab:
                return(globalConstructionSet.FloorSet.ExteriorConstruction);

            case PanelType.UndergroundWall:
                return(globalConstructionSet.WallSet.ExteriorConstruction);

            case PanelType.Undefined:
                return(null);

            case PanelType.FloorExposed:
                return(globalConstructionSet.FloorSet.ExteriorConstruction);

            case PanelType.Shade:
                return(globalConstructionSet.WallSet.InteriorConstruction);

            case PanelType.Roof:
                return(globalConstructionSet.RoofCeilingSet.ExteriorConstruction);

            case PanelType.WallExternal:
                return(globalConstructionSet.WallSet.ExteriorConstruction);

            case PanelType.Ceiling:
                return(globalConstructionSet.RoofCeilingSet.InteriorConstruction);

            case PanelType.WallInternal:
                return(globalConstructionSet.WallSet.InteriorConstruction);

            case PanelType.SlabOnGrade:
                return(globalConstructionSet.FloorSet.GroundConstruction);
            }

            return(null);
        }
        public static AnyOf <OpaqueConstructionAbridged, WindowConstructionAbridged, ShadeConstruction, AirBoundaryConstructionAbridged> DefaultConstruction(this PanelType panelType)
        {
            string name = DefaultConstructionName(panelType);

            if (string.IsNullOrEmpty(name))
            {
                return(null);
            }

            GlobalConstructionSet globalConstructionSet = GlobalConstructionSet.Default;

            if (globalConstructionSet == null)
            {
                return(null);
            }


            List <AnyOf <OpaqueConstructionAbridged, WindowConstructionAbridged, ShadeConstruction, AirBoundaryConstructionAbridged> > constructions = globalConstructionSet.Constructions;

            foreach (AnyOf <OpaqueConstructionAbridged, WindowConstructionAbridged, ShadeConstruction, AirBoundaryConstructionAbridged> construction in constructions)
            {
                string name_Temp = null;

                if (construction.Obj is OpaqueConstructionAbridged)
                {
                    name_Temp = ((OpaqueConstructionAbridged)construction.Obj).Identifier;
                }
                else if (construction.Obj is WindowConstructionAbridged)
                {
                    name_Temp = ((WindowConstructionAbridged)construction.Obj).Identifier;
                }
                else if (construction.Obj is ShadeConstruction)
                {
                    name_Temp = ((ShadeConstruction)construction.Obj).Identifier;
                }
                else if (construction.Obj is AirBoundaryConstructionAbridged)
                {
                    name_Temp = ((AirBoundaryConstructionAbridged)construction.Obj).Identifier;
                }

                if (string.IsNullOrWhiteSpace(name))
                {
                    continue;
                }

                if (name.Equals(name_Temp))
                {
                    return(construction);
                }
            }


            return(null);
        }