Example #1
0
        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);
        }
Example #2
0
        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));
        }
Example #3
0
        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);
            }
        }