Exemplo n.º 1
0
        public static Core.MaterialLibrary ToSAM_MaterialLibrary(this TBD.Building building)
        {
            List <TBD.Construction> constructions = building?.Constructions();

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

            Core.MaterialLibrary result = new Core.MaterialLibrary(building.name);
            foreach (TBD.Construction construction in constructions)
            {
                if (construction == null)
                {
                    continue;
                }

                List <TBD.material> materials_TBD = construction.Materials();
                if (materials_TBD == null || materials_TBD.Count == 0)
                {
                    continue;
                }

                foreach (TBD.material material_TBD in materials_TBD)
                {
                    if (material_TBD == null)
                    {
                        continue;
                    }

                    if (result.GetMaterial(material_TBD.name) != null)
                    {
                        continue;
                    }

                    Core.IMaterial material = material_TBD.ToSAM();
                    if (material == null)
                    {
                        continue;
                    }

                    result.Add(material);
                }
            }

            return(result);
        }
Exemplo n.º 2
0
        public static AnalyticalModel ToSAM_AnalyticalModel(this TBD.Building building)
        {
            if (building == null)
            {
                return(null);
            }

            ProfileLibrary profileLibrary = building.ToSAM_ProfileLibrary();

            Core.MaterialLibrary materialLibrary = building.ToSAM_MaterialLibrary();

            Core.Location location = new Core.Location(building.name, building.longitude, building.latitude, 0);
            location.SetValue(Core.LocationParameter.TimeZone, Core.Query.Description(Core.Query.UTC(building.timeZone)));

            Core.Address address = new Core.Address(null, null, null, Core.CountryCode.Undefined);

            return(new AnalyticalModel(building.name, null, location, address, ToSAM(building), materialLibrary, profileLibrary));
        }
Exemplo n.º 3
0
        public static Construction ToSAM(this OpaqueConstructionAbridged opaqueConstructionAbridged, Core.MaterialLibrary materialLibrary = null)
        {
            if (opaqueConstructionAbridged == null)
            {
                return(null);
            }

            List <ConstructionLayer> constructionLayers = Query.ConstructionLayers(materialLibrary, opaqueConstructionAbridged.Materials);

            Construction result = new Construction(opaqueConstructionAbridged.Identifier, constructionLayers);

            return(result);
        }
Exemplo n.º 4
0
        public static Construction ToSAM_Construction(this AnyOf <OpaqueConstructionAbridged, WindowConstructionAbridged, ShadeConstruction, AirBoundaryConstructionAbridged> construction, Core.MaterialLibrary materialLibrary = null)
        {
            if (construction == null)
            {
                return(null);
            }

            string        name          = null;
            List <string> materialNames = null;

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

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

            List <ConstructionLayer> constructionLayers = null;

            if (materialNames != null)
            {
                constructionLayers = new List <ConstructionLayer>();
                foreach (string materialName in materialNames)
                {
                    double thickness = 0;

                    AnyOf <EnergyMaterial, EnergyMaterialNoMass, EnergyWindowMaterialGlazing, EnergyWindowMaterialGas> material_Honeybee = SAM.Core.LadybugTools.Query.DefaultMaterial(materialName);
                    if (material_Honeybee != null)
                    {
                        if (material_Honeybee.Obj is EnergyMaterial)
                        {
                            thickness = ((EnergyMaterial)material_Honeybee.Obj).Thickness;
                        }
                        else if (material_Honeybee.Obj is EnergyMaterialNoMass)
                        {
                        }
                        else if (material_Honeybee.Obj is EnergyWindowMaterialGlazing)
                        {
                            thickness = ((EnergyWindowMaterialGlazing)material_Honeybee.Obj).Thickness;
                        }
                        else if (material_Honeybee.Obj is EnergyWindowMaterialGas)
                        {
                            thickness = ((EnergyWindowMaterialGas)material_Honeybee.Obj).Thickness;
                        }
                    }

                    constructionLayers.Add(new ConstructionLayer(materialName, thickness));
                }
            }

            return(new Construction(name, constructionLayers));
        }
Exemplo n.º 5
0
        public static Construction ToSAM_Construction(this IConstruction construction, Core.MaterialLibrary materialLibrary = null)
        {
            if (construction == null)
            {
                return(null);
            }

            if (construction is OpaqueConstructionAbridged)
            {
                return(((OpaqueConstructionAbridged)construction).ToSAM(materialLibrary));
            }

            return(null);
        }
Exemplo n.º 6
0
        public static ApertureConstruction ToSAM(this WindowConstructionAbridged windowConstructionAbridged, Core.MaterialLibrary materialLibrary = null)
        {
            if (windowConstructionAbridged == null)
            {
                return(null);
            }

            List <ConstructionLayer> constructionLayers = Query.ConstructionLayers(materialLibrary, windowConstructionAbridged.Materials);

            ApertureConstruction result = new ApertureConstruction(System.Guid.NewGuid(), windowConstructionAbridged.Identifier, ApertureType.Window, constructionLayers);

            return(result);
        }
Exemplo n.º 7
0
        public static ApertureConstruction ToSAM_ApertureConstruction(this IConstruction construction, Core.MaterialLibrary materialLibrary = null)
        {
            if (construction == null)
            {
                return(null);
            }

            if (construction is WindowConstructionAbridged)
            {
                return(((WindowConstructionAbridged)construction).ToSAM(materialLibrary));
            }

            return(null);
        }