示例#1
0
        public static Output <BH.oM.Environment.SAP.XML.BuildingParts, BH.oM.Environment.SAP.XML.OpeningTypes> ToXML(this List <oM.Environment.SAP.BuildingPart> sapBuildingPart)
        {
            List <BH.oM.Environment.SAP.XML.BuildingPart> xmlBuildingParts = new List <BH.oM.Environment.SAP.XML.BuildingPart>();

            BH.oM.Environment.SAP.XML.OpeningTypes openingTypes = new oM.Environment.SAP.XML.OpeningTypes();
            for (int i = 0; i < sapBuildingPart.Count; i++)
            {
                BH.oM.Environment.SAP.XML.BuildingPart xmlBuildingPart = new BH.oM.Environment.SAP.XML.BuildingPart();
                xmlBuildingPart.BuildingPartNumber = (i + 1).ToString();
                xmlBuildingPart.Identifier         = sapBuildingPart[i].identifier;
                xmlBuildingPart.ConstructionYear   = DateTime.Today.Year.ToString();
                xmlBuildingPart.Overshading        = sapBuildingPart[i].Overshading.FromSAPToXML();
                List <oM.Environment.SAP.Opening> opening = new List <oM.Environment.SAP.Opening>();
                if (sapBuildingPart[i].Walls.SelectMany(x => x.Openings).ToList() == null && sapBuildingPart[i].Roofs.SelectMany(x => x.Openings).ToList() == null)
                {
                    xmlBuildingPart.Openings = null;
                }

                else
                {
                    opening.AddRange(sapBuildingPart[i].Walls.SelectMany(x => x.Openings).ToList());
                    opening.AddRange(sapBuildingPart[i].Roofs.SelectMany(x => x.Openings).ToList());
                    for (int u = 0; u < opening.Count; u++)
                    {
                        openingTypes.OpeningType.AddRange(opening[u].OpeningType.ToXML().OpeningType); //method to only keep unique ones
                        xmlBuildingPart.Openings = opening.ToXML();
                    }
                }
                List <oM.Environment.SAP.XML.FloorDimension> xmlFloorDimensions = new List <oM.Environment.SAP.XML.FloorDimension>();
                xmlFloorDimensions.Add(ToXML(sapBuildingPart[i].Floor, sapBuildingPart[i].Storeys));
                xmlBuildingPart.Floors         = xmlFloorDimensions;
                xmlBuildingPart.Roofs          = sapBuildingPart[i].Roofs.Select(x => x.ToXML()).ToList();
                xmlBuildingPart.Walls          = sapBuildingPart[i].Walls.Select(x => x.ToXML()).ToList();
                xmlBuildingPart.ThermalBridges = sapBuildingPart[i].ThermalBridges.Select(x => x.ToXML()).ToList();
                xmlBuildingParts.Add(xmlBuildingPart);
            }
            oM.Environment.SAP.XML.BuildingParts finalXML = new oM.Environment.SAP.XML.BuildingParts();
            finalXML.BuildingPart = xmlBuildingParts;
            return(new Output <BH.oM.Environment.SAP.XML.BuildingParts, BH.oM.Environment.SAP.XML.OpeningTypes>()
            {
                Item1 = finalXML, Item2 = openingTypes
            });
        }
示例#2
0
        public static BH.oM.Environment.SAP.XML.OpeningTypes ToXML(this BH.oM.Environment.SAP.OpeningType sapOpeningtype)
        {
            List <oM.Environment.SAP.XML.OpeningType> xmlOpeningTypes = new List <oM.Environment.SAP.XML.OpeningType>();


            BH.oM.Environment.SAP.XML.OpeningType xmlOpeningType = new BH.oM.Environment.SAP.XML.OpeningType();
            xmlOpeningType.Name        = sapOpeningtype.Name;
            xmlOpeningType.Description = "Type-" + sapOpeningtype.Type.ToString() + "_Uvalue-" + sapOpeningtype.uValue.ToString();;
            xmlOpeningType.DataSource  = sapOpeningtype.DataSource.FromSAPToXMLData();
            xmlOpeningType.Type        = sapOpeningtype.Type.FromSAPToXMLNumber();
            xmlOpeningType.GlazingType = sapOpeningtype.GlazingType.FromSAPToXMLGlazing();
            xmlOpeningType.gValue      = sapOpeningtype.gValue;
            xmlOpeningType.FrameFactor = sapOpeningtype.FrameFactor;
            xmlOpeningType.uValue      = sapOpeningtype.uValue;
            xmlOpeningTypes.Add(xmlOpeningType);

            oM.Environment.SAP.XML.OpeningTypes finalXML = new oM.Environment.SAP.XML.OpeningTypes();
            finalXML.OpeningType = xmlOpeningTypes;
            return(finalXML);
        }