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); }
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)); }
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); }
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)); }
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); }
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); }
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); }