public static TBD.material ToTAS(this BHPMC.Layer layer, TBD.material tbdMaterial) { if (layer == null) { return(tbdMaterial); } if (layer.Material != null) { tbdMaterial.name = layer.Material.Name; } tbdMaterial.width = (float)layer.Thickness; tbdMaterial.type = (int)layer.Material.ToTASType(); BHM.IEnvironmentMaterial envMat = layer.Material.Properties.Where(x => x.GetType() == typeof(BHM.IEnvironmentMaterial)).FirstOrDefault() as BHM.IEnvironmentMaterial; if (envMat != null) { switch ((TBD.MaterialTypes)tbdMaterial.type) { case TBD.MaterialTypes.tcdGasLayer: tbdMaterial.convectionCoefficient = (float)((BHM.GasMaterial)envMat).ConvectionCoefficient; tbdMaterial.vapourDiffusionFactor = (float)(((BHM.GasMaterial)envMat).VapourResistivity / 5 / layer.Thickness); //Vapour Resistivity / 5GN·s/kg·m / material thickness tbdMaterial.description = ((BHM.GasMaterial)envMat).Description; break; case TBD.MaterialTypes.tcdOpaqueLayer: //Thickness not showing tbdMaterial.conductivity = (float)((BHM.SolidMaterial)envMat).Conductivity; tbdMaterial.specificHeat = (float)((BHM.SolidMaterial)envMat).SpecificHeat; tbdMaterial.density = (float)((BHM.SolidMaterial)envMat).Density; tbdMaterial.vapourDiffusionFactor = (float)(((BHM.SolidMaterial)envMat).VapourResistivity / 5 / layer.Thickness); //Vapour Resistivity / 5GN·s/kg·m / material thickness tbdMaterial.externalSolarReflectance = (float)((BHM.SolidMaterial)envMat).SolarReflectanceExternal; tbdMaterial.internalSolarReflectance = (float)((BHM.SolidMaterial)envMat).SolarReflectanceInternal; tbdMaterial.externalLightReflectance = (float)((BHM.SolidMaterial)envMat).LightReflectanceExternal; tbdMaterial.internalLightReflectance = (float)((BHM.SolidMaterial)envMat).LightReflectanceInternal; tbdMaterial.externalEmissivity = (float)((BHM.SolidMaterial)envMat).EmissivityExternal; tbdMaterial.internalEmissivity = (float)((BHM.SolidMaterial)envMat).EmissivityInternal; tbdMaterial.description = ((BHM.SolidMaterial)envMat).Description; break; case TBD.MaterialTypes.tcdTransparentLayer: tbdMaterial.conductivity = (float)((BHM.SolidMaterial)envMat).Conductivity; tbdMaterial.vapourDiffusionFactor = (float)(((BHM.SolidMaterial)envMat).VapourResistivity / 5 / layer.Thickness); //Vapour Resistivity / 5GN·s/kg·m / material thickness tbdMaterial.solarTransmittance = (float)((BHM.SolidMaterial)envMat).SolarTransmittance; tbdMaterial.externalSolarReflectance = (float)((BHM.SolidMaterial)envMat).SolarReflectanceExternal; tbdMaterial.internalSolarReflectance = (float)((BHM.SolidMaterial)envMat).SolarReflectanceInternal; tbdMaterial.lightTransmittance = (float)((BHM.SolidMaterial)envMat).LightTransmittance; tbdMaterial.externalLightReflectance = (float)((BHM.SolidMaterial)envMat).LightReflectanceExternal; tbdMaterial.internalLightReflectance = (float)((BHM.SolidMaterial)envMat).LightReflectanceInternal; tbdMaterial.externalEmissivity = (float)((BHM.SolidMaterial)envMat).EmissivityExternal; tbdMaterial.internalEmissivity = (float)((BHM.SolidMaterial)envMat).EmissivityInternal; tbdMaterial.description = ((BHM.SolidMaterial)envMat).Description; break; } } return(tbdMaterial); }
public static BHM.Roughness Roughness(this Construction construction) { if (construction.Layers.Count == 0) { return(BHM.Roughness.Undefined); } BHM.IEnvironmentMaterial firstSide = construction.Layers.First().Material.Properties.Where(x => x is BHM.IEnvironmentMaterial).FirstOrDefault() as BHM.IEnvironmentMaterial; BHM.IEnvironmentMaterial finalSide = construction.Layers.Last().Material.Properties.Where(x => x is BHM.IEnvironmentMaterial).FirstOrDefault() as BHM.IEnvironmentMaterial; if (firstSide == null || finalSide == null) { return(BHM.Roughness.Undefined); } int totalRoughness = (int)firstSide.Roughness + (int)finalSide.Roughness; return((BHM.Roughness)(totalRoughness / 2)); }
public static TBD.MaterialTypes ToTASType(this BHPM.Material material) { BHM.IEnvironmentMaterial envMaterial = material.Properties.Where(x => x.GetType() == typeof(BHM.IEnvironmentMaterial)).FirstOrDefault() as BHM.IEnvironmentMaterial; if (envMaterial == null) { return(TBD.MaterialTypes.tcdOpaqueLayer); } if (envMaterial.GetType() == typeof(BHM.GasMaterial)) { return(TBD.MaterialTypes.tcdGasLayer); } else if (material.IsTransparent()) { return(TBD.MaterialTypes.tcdTransparentLayer); } else { return(TBD.MaterialTypes.tcdOpaqueLayer); } }