示例#1
0
 public static global::OpenStudio.Building ToOSM(this BHE.Building building, global::OpenStudio.Building osmBuilding)
 {
     osmBuilding.setName(building.Name);
     osmBuilding.setNorthAxis(building.Location.Latitude);
     //osmBuilding.
     return(osmBuilding);
 }
示例#2
0
        public static BHX.Building ToGBXML(this BHE.Building building)
        {
            BHX.Building gbBuilding = new BHX.Building();

            gbBuilding.Name = building.Name;

            BHP.BuildingContextFragment context = building.FindFragment <BHP.BuildingContextFragment>(typeof(BHP.BuildingContextFragment));

            if (context != null)
            {
                gbBuilding.StreetAddress = context.PlaceName;
            }

            XMLBuildingType fragment = building.FindFragment <XMLBuildingType>(typeof(XMLBuildingType));

            if (fragment != null)
            {
                gbBuilding.BuildingType = fragment.Type;
            }

            if (gbBuilding.BuildingType == "")
            {
                gbBuilding.BuildingType = "Unknown";
            }

            return(gbBuilding);
        }
示例#3
0
        public static IEnergyPlusClass ToEnergyPlus(this BHE.Building building)
        {
            Building eplusBdg = new Building();

            eplusBdg.Name = building.Name == "" ? building.BHoM_Guid.ToString() : building.Name;

            return(eplusBdg);
        }
示例#4
0
        public static BHE.Building ToBHoM(this BHX.Building gbBuilding)
        {
            BHE.Building building = new BHE.Building();

            building.Name = gbBuilding.Name;
            BHP.BuildingContextFragment props = new BHP.BuildingContextFragment();
            props.PlaceName = gbBuilding.StreetAddress;
            building.Fragments.Add(props);
            building.CustomData.Add("Building Name", gbBuilding.BuildingType);

            return(building);
        }
示例#5
0
        public static BHE.Building FromTAS(this TBD.Building tbdBuilding)
        {
            BHE.Building building = new BHE.Building();
            building.Name = tbdBuilding.name;
            building.Location.Latitude  = tbdBuilding.latitude;
            building.Location.Longitude = tbdBuilding.longitude;
            building.Elevation          = tbdBuilding.maxBuildingAltitude;
            //building.Elevation = tbdBuilding.GetWeatherYear().altitude; //Consider switching to this if maxBuildingAltitude does not work

            //EnvironmentContextProperties
            BHP.OriginContextFragment environmentContextProperties = new BHP.OriginContextFragment();
            environmentContextProperties.ElementID   = tbdBuilding.GUID.RemoveBrackets();
            environmentContextProperties.Description = tbdBuilding.description;
            environmentContextProperties.TypeName    = tbdBuilding.name;
            building.Fragments.Add(environmentContextProperties);

            //BuildingAnalyticalProperties
            BHP.BuildingAnalyticalFragment buildingAnalyticalProperties = new BHP.BuildingAnalyticalFragment();
            buildingAnalyticalProperties.NorthAngle = tbdBuilding.northAngle; //North Angle (degrees) Measured clockwise with respect to the Y - axis of the building plan.
            buildingAnalyticalProperties.Year       = tbdBuilding.year;
            buildingAnalyticalProperties.GMTOffset  = tbdBuilding.timeZone;
            building.Fragments.Add(buildingAnalyticalProperties);

            //BuildingContextProperties
            TBD.WeatherYear weatherYear = tbdBuilding.GetWeatherYear();
            if (weatherYear != null)
            {
                BHP.BuildingContextFragment buildingContextProperties = new BHP.BuildingContextFragment();
                buildingContextProperties.PlaceName      = weatherYear.name;
                buildingContextProperties.WeatherStation = weatherYear.description;
                building.Fragments.Add(buildingContextProperties);
            }

            //BuildingResultsProperties
            BHP.BuildingResultFragment buildingResultsProperties = new BHP.BuildingResultFragment();
            buildingResultsProperties.PeakCooling = tbdBuilding.peakCooling;
            buildingResultsProperties.PeakHeating = tbdBuilding.peakHeating;
            building.Fragments.Add(buildingResultsProperties);

            //Extended Properties

            TASBuilding tasData = new TASBuilding();

            tasData.ID       = tbdBuilding.GUID.RemoveBrackets();
            tasData.TASID    = tbdBuilding.TBDGUID;
            tasData.PathFile = tbdBuilding.path3DFile;
            building.Fragments.Add(tasData);

            return(building);
        }
示例#6
0
        public static BHE.Building FromGBXML(this BHX.Building gbBuilding)
        {
            BHE.Building building = new BHE.Building();

            building.Name = gbBuilding.Name;
            BHP.BuildingContextFragment props = new BHP.BuildingContextFragment();
            props.PlaceName = gbBuilding.StreetAddress;
            building.Fragments.Add(props);
            XMLBuildingType fragment = new XMLBuildingType();

            fragment.Type = gbBuilding.BuildingType;
            building.Fragments.Add(fragment);

            return(building);
        }
示例#7
0
        public static BHX.Location ToGBXMLLocation(this BHE.Building building, GBXMLSettings settings)
        {
            BHX.Location location = new BHX.Location();
            location.Longitude = Math.Round(building.Location.Longitude, settings.RoundingSettings.BuildingLocation);
            location.Latitude  = Math.Round(building.Location.Latitude, settings.RoundingSettings.BuildingLocation);
            location.Elevation = Math.Round(building.Elevation, settings.RoundingSettings.BuildingLocation);

            BHP.BuildingContextFragment context = building.FindFragment <BHP.BuildingContextFragment>(typeof(BHP.BuildingContextFragment));

            if (context != null)
            {
                location.Name         = context.PlaceName;
                location.StationID.ID = context.WeatherStation;
            }

            return(location);
        }
示例#8
0
        public static TBD.Building ToTAS(this BHE.Building building, TBD.Building tbdBuilding)
        {
            //TODO:Add BuildingHeightAdjustmentFactor, MeanHeightOfSurroundings, TerrainType, NumberOfPreconditioningDays, GroundSolarReflectance, ExternalPollutant
            //TODO:Check if Longitude, Latitude, NorthAngle, Timezone, Path3Dfile, BuildingYear is pushed

            if (building == null)
            {
                return(tbdBuilding);
            }

            tbdBuilding.name                = building.Name;
            tbdBuilding.latitude            = (float)building.Location.Latitude;
            tbdBuilding.longitude           = (float)building.Location.Longitude;
            tbdBuilding.maxBuildingAltitude = (float)building.Elevation;

            TASBuilding tasFragment = building.FindFragment <TASBuilding>(typeof(TASBuilding));

            if (tasFragment != null)
            {
                tbdBuilding.GUID       = tasFragment.ID;
                tbdBuilding.TBDGUID    = tasFragment.TASID;
                tbdBuilding.path3DFile = tasFragment.PathFile;
            }

            BHP.OriginContextFragment environmentContextFragment = new BHP.OriginContextFragment();
            if (environmentContextFragment != null)
            {
                tbdBuilding.description = environmentContextFragment.Description;
            }

            BHP.BuildingResultFragment buildingResultsFragment = building.FindFragment <BHP.BuildingResultFragment>(typeof(BHP.BuildingResultFragment));
            if (buildingResultsFragment != null)
            {
                tbdBuilding.peakCooling = (float)System.Convert.ToDouble(buildingResultsFragment.PeakCooling);
                tbdBuilding.peakHeating = (float)System.Convert.ToDouble(buildingResultsFragment.PeakHeating);
            }

            BHP.BuildingAnalyticalFragment analyticalFragment = building.FindFragment <BHP.BuildingAnalyticalFragment>(typeof(BHP.BuildingAnalyticalFragment));
            if (analyticalFragment != null)
            {
                tbdBuilding.northAngle = (float)System.Convert.ToDouble(analyticalFragment.NorthAngle);
                tbdBuilding.timeZone   = (float)System.Convert.ToDouble(analyticalFragment.GMTOffset);
            }

            return(tbdBuilding);
        }
示例#9
0
        public static BHX.Building ToGBXML(this BHE.Building building)
        {
            BHX.Building gbBuilding = new BHX.Building();

            gbBuilding.Name = building.Name;

            BHP.BuildingContextFragment context = building.FindFragment <BHP.BuildingContextFragment>(typeof(BHP.BuildingContextFragment));

            if (context != null)
            {
                gbBuilding.StreetAddress = context.PlaceName;
            }

            if (building.CustomData.ContainsKey("Building Name"))
            {
                gbBuilding.BuildingType = (building.CustomData["Building Name"]).ToString();
            }

            return(gbBuilding);
        }
示例#10
0
        /***************************************************/
        /**** Public Methods                            ****/
        /***************************************************/

        public static double BuildingArea(BHE.Building building)
        {
            throw new NotImplementedException("Calculating the area in the building has not been implemented");
        }