/// <summary>
        /// Initializes a new instance of the <see cref="Face" /> class.
        /// </summary>
        /// <param name="geometry">Planar Face3D for the geometry. (required).</param>
        /// <param name="faceType">faceType (required).</param>
        /// <param name="boundaryCondition">boundaryCondition (required).</param>
        /// <param name="properties">Extension properties for particular simulation engines (Radiance, EnergyPlus). (required).</param>
        /// <param name="apertures">Apertures assigned to this Face. Should be coplanar with this Face and completely within the boundary of the Face to be valid..</param>
        /// <param name="doors">Doors assigned to this Face. Should be coplanar with this Face and completely within the boundary of the Face to be valid..</param>
        /// <param name="indoorShades">Shades assigned to the interior side of this object..</param>
        /// <param name="outdoorShades">Shades assigned to the exterior side of this object (eg. balcony, overhang)..</param>
        /// <param name="identifier">Text string for a unique object ID. This identifier remains constant as the object is mutated, copied, and serialized to different formats (eg. dict, idf, rad). This identifier is also used to reference the object across a Model. It must be &lt; 100 characters and not contain any spaces or special characters. (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        /// <param name="userData">Optional dictionary of user data associated with the object.All keys and values of this dictionary should be of a standard data type to ensure correct serialization of the object (eg. str, float, int, list)..</param>
        public Face
        (
            string identifier, Face3D geometry, FaceType faceType, AnyOf <Ground, Outdoors, Adiabatic, Surface> boundaryCondition, FacePropertiesAbridged properties,                                            // Required parameters
            string displayName = default, Object userData = default, List <Aperture> apertures = default, List <Door> doors = default, List <Shade> indoorShades = default, List <Shade> outdoorShades = default // Optional parameters
        ) : base(identifier: identifier, displayName: displayName, userData: userData)                                                                                                                           // BaseClass
        {
            // to ensure "geometry" is required (not null)
            this.Geometry = geometry ?? throw new ArgumentNullException("geometry is a required property for Face and cannot be null");
            this.FaceType = faceType;
            // to ensure "boundaryCondition" is required (not null)
            this.BoundaryCondition = boundaryCondition ?? throw new ArgumentNullException("boundaryCondition is a required property for Face and cannot be null");
            // to ensure "properties" is required (not null)
            this.Properties    = properties ?? throw new ArgumentNullException("properties is a required property for Face and cannot be null");
            this.Apertures     = apertures;
            this.Doors         = doors;
            this.IndoorShades  = indoorShades;
            this.OutdoorShades = outdoorShades;

            // Set non-required readonly properties with defaultValue
            this.Type = "Face";

            // check if object is valid, only check for inherited class
            if (this.GetType() == typeof(Face))
            {
                this.IsValid(throwException: true);
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="Trans" /> class.
        /// </summary>
        /// <param name="modifier">Material modifier..</param>
        /// <param name="dependencies">List of modifiers that this modifier depends on. This argument is only useful for defining advanced modifiers where the modifier is defined based on other modifiers..</param>
        /// <param name="rReflectance">A value between 0 and 1 for the red channel reflectance. (default to 0.0D).</param>
        /// <param name="gReflectance">A value between 0 and 1 for the green channel reflectance. (default to 0.0D).</param>
        /// <param name="bReflectance">A value between 0 and 1 for the blue channel reflectance. (default to 0.0D).</param>
        /// <param name="specularity">A value between 0 and 1 for the fraction of specularity. Specularity fractions greater than 0.1 are not realistic for non-metallic materials. (default to 0D).</param>
        /// <param name="roughness">A value between 0 and 1 for the roughness, specified as the RMS slope of surface facets. Roughness greater than 0.2 are not realistic. (default to 0D).</param>
        /// <param name="transmittedDiff">The fraction of transmitted light that is transmitted diffusely in a scattering fashion. (default to 0D).</param>
        /// <param name="transmittedSpec">The fraction of transmitted light that is not diffusely scattered. (default to 0D).</param>
        /// <param name="identifier">Text string for a unique Radiance object. Must not contain spaces or special characters. This will be used to identify the object across a model and in the exported Radiance files. (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        public Trans
        (
            string identifier,                                                                                                                                                                                                                                                                                                                                                                                                         // Required parameters
            string displayName = default, AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> modifier = default, List <AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> > dependencies = default, double rReflectance = 0.0D, double gReflectance = 0.0D, double bReflectance = 0.0D, double specularity = 0D, double roughness = 0D, double transmittedDiff = 0D, double transmittedSpec = 0D // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                                                                                                                                                                                                                                                                                                                                     // BaseClass
        {
            this.Modifier        = modifier;
            this.Dependencies    = dependencies;
            this.RReflectance    = rReflectance;
            this.GReflectance    = gReflectance;
            this.BReflectance    = bReflectance;
            this.Specularity     = specularity;
            this.Roughness       = roughness;
            this.TransmittedDiff = transmittedDiff;
            this.TransmittedSpec = transmittedSpec;

            // Set non-required readonly properties with defaultValue
            this.Type = "Trans";

            // check if object is valid, only check for inherited class
            if (this.GetType() == typeof(Trans))
            {
                this.IsValid(throwException: true);
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="BSDF" /> class.
        /// </summary>
        /// <param name="bsdfData">A string with the contents of the BSDF XML file. (required).</param>
        /// <param name="modifier">Material modifier..</param>
        /// <param name="dependencies">List of modifiers that this modifier depends on. This argument is only useful for defining advanced modifiers where the modifier is defined based on other modifiers..</param>
        /// <param name="upOrientation">Vector as sequence that sets the hemisphere that the BSDF material faces..</param>
        /// <param name="thickness">Optional number to set the thickness of the BSDF material Sign of thickness indicates whether proxied geometry is behind the BSDF surface (when thickness is positive) or in front (when thickness is negative). (default to 0D).</param>
        /// <param name="functionFile">Optional input for function file. Using \&quot;.\&quot; will ensure that BSDF data is written to the root of wherever a given study is run. (default to &quot;.&quot;).</param>
        /// <param name="transform">Optional transform input to scale the thickness and reorient the up vector..</param>
        /// <param name="frontDiffuseReflectance">Optional additional front diffuse reflectance as sequence of three RGB numbers..</param>
        /// <param name="backDiffuseReflectance">Optional additional back diffuse reflectance as sequence of three RGB numbers..</param>
        /// <param name="diffuseTransmittance">Optional additional diffuse transmittance as sequence of three RGB numbers..</param>
        /// <param name="identifier">Text string for a unique Radiance object. Must not contain spaces or special characters. This will be used to identify the object across a model and in the exported Radiance files. (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        public BSDF
        (
            string identifier, string bsdfData,                                                                                                                                                                                                                                                                                                                                                                                                                                                              // Required parameters
            string displayName = default, AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> modifier = default, List <AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> > dependencies = default, List <double> upOrientation = default, double thickness = 0D, string functionFile = ".", string transform = default, List <double> frontDiffuseReflectance = default, List <double> backDiffuseReflectance = default, List <double> diffuseTransmittance = default // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                                                                                                                                                                                                                                                                                                                                                                                                           // BaseClass
        {
            // to ensure "bsdfData" is required (not null)
            this.BsdfData      = bsdfData ?? throw new ArgumentNullException("bsdfData is a required property for BSDF and cannot be null");
            this.Modifier      = modifier;
            this.Dependencies  = dependencies;
            this.UpOrientation = upOrientation;
            this.Thickness     = thickness;
            // use default value if no "functionFile" provided
            this.FunctionFile            = functionFile ?? ".";
            this.Transform               = transform;
            this.FrontDiffuseReflectance = frontDiffuseReflectance;
            this.BackDiffuseReflectance  = backDiffuseReflectance;
            this.DiffuseTransmittance    = diffuseTransmittance;

            // Set non-required readonly properties with defaultValue
            this.Type = "BSDF";

            // check if object is valid, only check for inherited class
            if (this.GetType() == typeof(BSDF))
            {
                this.IsValid(throwException: true);
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="RoofCeilingModifierSet" /> class.
        /// </summary>
        /// <param name="exteriorModifier">A radiance modifier object for faces with an Outdoors boundary condition..</param>
        /// <param name="interiorModifier">A radiance modifier object for faces with a boundary condition other than Outdoors..</param>
        public RoofCeilingModifierSet
        (
            // Required parameters
            AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> exteriorModifier = default, AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> interiorModifier = default // Optional parameters
        ) : base()                                                                                                                                                                                             // BaseClass
        {
            this.ExteriorModifier = exteriorModifier;
            this.InteriorModifier = interiorModifier;

            // Set non-required readonly properties with defaultValue
            this.Type = "RoofCeilingModifierSet";
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="AirBoundaryConstruction" /> class.
        /// </summary>
        /// <param name="airMixingSchedule">A fractional schedule as a ScheduleRuleset or ScheduleFixedInterval for the air mixing schedule across the construction. (required).</param>
        /// <param name="airMixingPerArea">A positive number for the amount of air mixing between Rooms across the air boundary surface [m3/s-m2]. Default: 0.1 corresponds to average indoor air speeds of 0.1 m/s (roughly 20 fpm), which is typical of what would be induced by a HVAC system. (default to 0.1D).</param>
        /// <param name="identifier">Text string for a unique object ID. This identifier remains constant as the object is mutated, copied, and serialized to different formats (eg. dict, idf, osm). This identifier is also used to reference the object across a Model. It must be &lt; 100 characters, use only ASCII characters and exclude (, ; ! \\n \\t). (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        public AirBoundaryConstruction
        (
            string identifier, AnyOf <ScheduleRuleset, ScheduleFixedInterval> airMixingSchedule, // Required parameters
            string displayName = default, double airMixingPerArea = 0.1D                         // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                               // BaseClass
        {
            // to ensure "airMixingSchedule" is required (not null)
            this.AirMixingSchedule = airMixingSchedule ?? throw new ArgumentNullException("airMixingSchedule is a required property for AirBoundaryConstruction and cannot be null");
            this.AirMixingPerArea  = airMixingPerArea;

            // Set non-required readonly properties with defaultValue
            this.Type = "AirBoundaryConstruction";
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="Outdoors" /> class.
        /// </summary>
        /// <param name="sunExposure">A boolean noting whether the boundary is exposed to sun. (default to true).</param>
        /// <param name="windExposure">A boolean noting whether the boundary is exposed to wind. (default to true).</param>
        /// <param name="viewFactor">A number for the view factor to the ground. This can also be an Autocalculate object to have the view factor automatically calculated..</param>
        public Outdoors
        (
            // Required parameters
            bool sunExposure = true, bool windExposure = true, AnyOf <Autocalculate, double> viewFactor = default // Optional parameters
        ) : base()                                                                                                // BaseClass
        {
            this.SunExposure  = sunExposure;
            this.WindExposure = windExposure;
            this.ViewFactor   = viewFactor;

            // Set non-required readonly properties with defaultValue
            this.Type = "Outdoors";
        }
Beispiel #7
0
        /// <summary>
        /// Initializes a new instance of the <see cref="DOASBase" /> class.
        /// </summary>
        /// <param name="vintage">Text for the vintage of the template system. This will be used to set efficiencies for various pieces of equipment within the system. Further information about these defaults can be found in the version of ASHRAE 90.1 corresponding to the selected vintage. Read-only versions of the standard can be found at: https://www.ashrae.org/technical-resources/standards-and-guidelines/read-only-versions-of-ashrae-standards.</param>
        /// <param name="sensibleHeatRecovery">A number between 0 and 1 for the effectiveness of sensible heat recovery within the system. If None or Autosize, it will be whatever is recommended for the given vintage..</param>
        /// <param name="latentHeatRecovery">A number between 0 and 1 for the effectiveness of latent heat recovery within the system. If None or Autosize, it will be whatever is recommended for the given vintage..</param>
        /// <param name="identifier">Text string for a unique object ID. This identifier remains constant as the object is mutated, copied, and serialized to different formats (eg. dict, idf, osm). This identifier is also used to reference the object across a Model. It must be &lt; 100 characters, use only ASCII characters and exclude (, ; ! \\n \\t). (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        public DOASBase
        (
            string identifier,                                                                                                                                                       // Required parameters
            string displayName = default, Vintages vintage = default, AnyOf <Autosize, double> sensibleHeatRecovery = default, AnyOf <Autosize, double> latentHeatRecovery = default // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                                                                                   // BaseClass
        {
            this.Vintage = vintage;
            this.SensibleHeatRecovery = sensibleHeatRecovery;
            this.LatentHeatRecovery   = latentHeatRecovery;

            // Set non-required readonly properties with defaultValue
            this.Type = "_DOASBase";
        }
Beispiel #8
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ApertureModifierSet" /> class.
        /// </summary>
        /// <param name="windowModifier">A modifier object for apertures with an Outdoors boundary condition, False is_operable property, and Wall parent Face..</param>
        /// <param name="interiorModifier">A modifier object for apertures with a Surface boundary condition..</param>
        /// <param name="skylightModifier">A modifier object for apertures with an Outdoors boundary condition, False is_operable property, and a RoofCeiling or Floor face type for their parent face..</param>
        /// <param name="operableModifier">A modifier object for apertures with an Outdoors boundary condition and a True is_operable property..</param>
        public ApertureModifierSet
        (
            // Required parameters
            AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> windowModifier = default, AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> interiorModifier = default, AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> skylightModifier = default, AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> operableModifier = default // Optional parameters
        ) : base()                                                                                                                                                                                                                                                                                                                                                                                               // BaseClass
        {
            this.WindowModifier   = windowModifier;
            this.InteriorModifier = interiorModifier;
            this.SkylightModifier = skylightModifier;
            this.OperableModifier = operableModifier;

            // Set non-required readonly properties with defaultValue
            this.Type = "ApertureModifierSet";
        }
Beispiel #9
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ScheduleTypeLimit" /> class.
        /// </summary>
        /// <param name="lowerLimit">Lower limit for the schedule type or NoLimit..</param>
        /// <param name="upperLimit">Upper limit for the schedule type or NoLimit..</param>
        /// <param name="numericType">numericType.</param>
        /// <param name="unitType">unitType.</param>
        /// <param name="identifier">Text string for a unique object ID. This identifier remains constant as the object is mutated, copied, and serialized to different formats (eg. dict, idf, osm). This identifier is also used to reference the object across a Model. It must be &lt; 100 characters, use only ASCII characters and exclude (, ; ! \\n \\t). (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        public ScheduleTypeLimit
        (
            string identifier,                                                                                                                                                                                                                                     // Required parameters
            string displayName = default, AnyOf <NoLimit, double> lowerLimit = default, AnyOf <NoLimit, double> upperLimit = default, ScheduleNumericType numericType = ScheduleNumericType.Continuous, ScheduleUnitType unitType = ScheduleUnitType.Dimensionless // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                                                                                                                                                                 // BaseClass
        {
            this.LowerLimit  = lowerLimit;
            this.UpperLimit  = upperLimit;
            this.NumericType = numericType;
            this.UnitType    = unitType;

            // Set non-required readonly properties with defaultValue
            this.Type = "ScheduleTypeLimit";
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="WSHPwithDOAS" /> class.
        /// </summary>
        /// <param name="vintage">Text for the vintage of the template system. This will be used to set efficiencies for various pieces of equipment within the system. Further information about these defaults can be found in the version of ASHRAE 90.1 corresponding to the selected vintage. Read-only versions of the standard can be found at: https://www.ashrae.org/technical-resources/standards-and-guidelines/read-only-versions-of-ashrae-standards.</param>
        /// <param name="sensibleHeatRecovery">A number between 0 and 1 for the effectiveness of sensible heat recovery within the system. If None or Autosize, it will be whatever is recommended for the given vintage..</param>
        /// <param name="latentHeatRecovery">A number between 0 and 1 for the effectiveness of latent heat recovery within the system. If None or Autosize, it will be whatever is recommended for the given vintage..</param>
        /// <param name="equipmentType">Text for the specific type of system equipment from the WSHPwithDOASEquipmentType enumeration..</param>
        /// <param name="identifier">Text string for a unique object ID. This identifier remains constant as the object is mutated, copied, and serialized to different formats (eg. dict, idf, osm). This identifier is also used to reference the object across a Model. It must be &lt; 100 characters, use only ASCII characters and exclude (, ; ! \\n \\t). (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        public WSHPwithDOAS
        (
            string identifier,                                                                                                                                                                                                                                                                      // Required parameters
            string displayName = default, Vintages vintage = Vintages.ASHRAE_2013, AnyOf <Autosize, double> sensibleHeatRecovery = default, AnyOf <Autosize, double> latentHeatRecovery = default, WSHPwithDOASEquipmentType equipmentType = WSHPwithDOASEquipmentType.DOAS_WSHP_FluidCooler_Boiler // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                                                                                                                                                                                                  // BaseClass
        {
            this.Vintage = vintage;
            this.SensibleHeatRecovery = sensibleHeatRecovery;
            this.LatentHeatRecovery   = latentHeatRecovery;
            this.EquipmentType        = equipmentType;

            // Set non-required readonly properties with defaultValue
            this.Type = "WSHPwithDOAS";
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="Light" /> class.
        /// </summary>
        /// <param name="modifier">Material modifier (default: Void)..</param>
        /// <param name="dependencies">List of modifiers that this modifier depends on. This argument is only useful for defining advanced modifiers where the modifier is defined based on other modifiers (default: None)..</param>
        /// <param name="rEmittance">A value between 0 and 1 for the red channel of the modifier (default: 0). (default to 0.0D).</param>
        /// <param name="gEmittance">A value between 0 and 1 for the green channel of the modifier (default: 0). (default to 0.0D).</param>
        /// <param name="bEmittance">A value between 0 and 1 for the blue channel of the modifier (default: 0). (default to 0.0D).</param>
        /// <param name="identifier">Text string for a unique Radiance object. Must not contain spaces or special characters. This will be used to identify the object across a model and in the exported Radiance files. (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        public Light
        (
            string identifier,                                                                                                                                                                                                                                                                                         // Required parameters
            string displayName = default, AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> modifier = default, List <AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> > dependencies = default, double rEmittance = 0.0D, double gEmittance = 0.0D, double bEmittance = 0.0D // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                                                                                                                                                                                                                     // BaseClass
        {
            this.Modifier     = modifier;
            this.Dependencies = dependencies;
            this.REmittance   = rEmittance;
            this.GEmittance   = gEmittance;
            this.BEmittance   = bEmittance;

            // Set non-required readonly properties with defaultValue
            this.Type = "light";
        }
Beispiel #12
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Glass" /> class.
        /// </summary>
        /// <param name="modifier">Material modifier (default: Void)..</param>
        /// <param name="dependencies">List of modifiers that this modifier depends on. This argument is only useful for defining advanced modifiers where the modifier is defined based on other modifiers (default: None)..</param>
        /// <param name="rTransmissivity">A value between 0 and 1 for the red channel transmissivity (default: 0). (default to 0.0D).</param>
        /// <param name="gTransmissivity">A value between 0 and 1 for the green channel transmissivity (default: 0). (default to 0.0D).</param>
        /// <param name="bTransmissivity">A value between 0 and 1 for the blue channel transmissivity (default: 0). (default to 0.0D).</param>
        /// <param name="refractionIndex">A value between 0 and 1 for the index of refraction (default: 1.52). (default to 1.52D).</param>
        /// <param name="identifier">Text string for a unique Radiance object. Must not contain spaces or special characters. This will be used to identify the object across a model and in the exported Radiance files. (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        public Glass
        (
            string identifier,                                                                                                                                                                                                                                                                                                                                        // Required parameters
            string displayName = default, AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> modifier = default, List <AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> > dependencies = default, double rTransmissivity = 0.0D, double gTransmissivity = 0.0D, double bTransmissivity = 0.0D, double refractionIndex = 1.52D // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                                                                                                                                                                                                                                                                    // BaseClass
        {
            this.Modifier        = modifier;
            this.Dependencies    = dependencies;
            this.RTransmissivity = rTransmissivity;
            this.GTransmissivity = gTransmissivity;
            this.BTransmissivity = bTransmissivity;
            this.RefractionIndex = refractionIndex;

            // Set non-required readonly properties with defaultValue
            this.Type = "glass";
        }
Beispiel #13
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Setpoint" /> class.
        /// </summary>
        /// <param name="coolingSchedule">Schedule for the cooling setpoint. The values in this schedule should be temperature in [C]. (required).</param>
        /// <param name="heatingSchedule">Schedule for the heating setpoint. The values in this schedule should be temperature in [C]. (required).</param>
        /// <param name="humidifyingSchedule">Schedule for the humidification setpoint. The values in this schedule should be in [%]..</param>
        /// <param name="dehumidifyingSchedule">Schedule for the dehumidification setpoint. The values in this schedule should be in [%]..</param>
        /// <param name="identifier">Text string for a unique object ID. This identifier remains constant as the object is mutated, copied, and serialized to different formats (eg. dict, idf, osm). This identifier is also used to reference the object across a Model. It must be &lt; 100 characters, use only ASCII characters and exclude (, ; ! \\n \\t). (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        public Setpoint
        (
            string identifier, AnyOf <ScheduleRuleset, ScheduleFixedInterval> coolingSchedule, AnyOf <ScheduleRuleset, ScheduleFixedInterval> heatingSchedule,                                         // Required parameters
            string displayName = default, AnyOf <ScheduleRuleset, ScheduleFixedInterval> humidifyingSchedule = default, AnyOf <ScheduleRuleset, ScheduleFixedInterval> dehumidifyingSchedule = default // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                                                                                                     // BaseClass
        {
            // to ensure "coolingSchedule" is required (not null)
            this.CoolingSchedule = coolingSchedule ?? throw new ArgumentNullException("coolingSchedule is a required property for Setpoint and cannot be null");
            // to ensure "heatingSchedule" is required (not null)
            this.HeatingSchedule       = heatingSchedule ?? throw new ArgumentNullException("heatingSchedule is a required property for Setpoint and cannot be null");
            this.HumidifyingSchedule   = humidifyingSchedule;
            this.DehumidifyingSchedule = dehumidifyingSchedule;

            // Set non-required readonly properties with defaultValue
            this.Type = "Setpoint";
        }
Beispiel #14
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ServiceHotWater" /> class.
        /// </summary>
        /// <param name="flowPerArea">Number for the total volume flow rate of water per unit area of floor [L/h-m2]. (required).</param>
        /// <param name="schedule">The schedule for the use of hot water over the course of the year. The type of this schedule should be Fractional and the fractional values will get multiplied by the flow_per_area to yield a complete water usage profile. (required).</param>
        /// <param name="targetTemperature">Number for the target temperature of water out of the tap (C). This the temperature after hot water has been mixed with cold water from the water mains. The default is 60C, which essentially assumes that the flow_per_area on this object is only for water straight out of the water heater. (default to 60D).</param>
        /// <param name="sensibleFraction">A number between 0 and 1 for the fraction of the total hot water load given off as sensible heat in the zone. (default to 0.2D).</param>
        /// <param name="latentFraction">A number between 0 and 1 for the fraction of the total hot water load that is latent. (default to 0.05D).</param>
        /// <param name="identifier">Text string for a unique object ID. This identifier remains constant as the object is mutated, copied, and serialized to different formats (eg. dict, idf, osm). This identifier is also used to reference the object across a Model. It must be &lt; 100 characters, use only ASCII characters and exclude (, ; ! \\n \\t). (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        public ServiceHotWater
        (
            string identifier, double flowPerArea, AnyOf <ScheduleRuleset, ScheduleFixedInterval> schedule,                             // Required parameters
            string displayName = default, double targetTemperature = 60D, double sensibleFraction = 0.2D, double latentFraction = 0.05D // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                                      // BaseClass
        {
            this.FlowPerArea = flowPerArea;
            // to ensure "schedule" is required (not null)
            this.Schedule          = schedule ?? throw new ArgumentNullException("schedule is a required property for ServiceHotWater and cannot be null");
            this.TargetTemperature = targetTemperature;
            this.SensibleFraction  = sensibleFraction;
            this.LatentFraction    = latentFraction;

            // Set non-required readonly properties with defaultValue
            this.Type = "ServiceHotWater";
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="Mirror" /> class.
        /// </summary>
        /// <param name="modifier">Material modifier (default: Void)..</param>
        /// <param name="dependencies">List of modifiers that this modifier depends on. This argument is only useful for defining advanced modifiers where the modifier is defined based on other modifiers (default: None)..</param>
        /// <param name="rReflectance">A value between 0 and 1 for the red channel reflectance (default: 1). (default to 1D).</param>
        /// <param name="gReflectance">A value between 0 and 1 for the green channel reflectance (default: 1). (default to 1D).</param>
        /// <param name="bReflectance">A value between 0 and 1 for the blue channel reflectance (default: 1). (default to 1D).</param>
        /// <param name="alternateMaterial">An optional material that may be used like the illum type to specify a different material to be used for shading non-source rays. If None, this will keep the alternat_material as mirror. If this alternate material is given as Void, then the mirror surface will be invisible. Using Void is only appropriate if the surface hides other (more detailed) geometry with the same overall reflectance (default: None)..</param>
        /// <param name="identifier">Text string for a unique Radiance object. Must not contain spaces or special characters. This will be used to identify the object across a model and in the exported Radiance files. (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        public Mirror
        (
            string identifier,                                                                                                                                                                                                                                                                                                                                                                                            // Required parameters
            string displayName = default, AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> modifier = default, List <AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> > dependencies = default, double rReflectance = 1D, double gReflectance = 1D, double bReflectance = 1D, AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> alternateMaterial = default // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                                                                                                                                                                                                                                                                                                                        // BaseClass
        {
            this.Modifier          = modifier;
            this.Dependencies      = dependencies;
            this.RReflectance      = rReflectance;
            this.GReflectance      = gReflectance;
            this.BReflectance      = bReflectance;
            this.AlternateMaterial = alternateMaterial;

            // Set non-required readonly properties with defaultValue
            this.Type = "mirror";
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="Infiltration" /> class.
        /// </summary>
        /// <param name="flowPerExteriorArea">Number for the infiltration per exterior surface area in m3/s-m2. (required).</param>
        /// <param name="schedule">The schedule for the infiltration over the course of the year. The type of this schedule should be Fractional and the fractional values will get multiplied by the flow_per_exterior_area to yield a complete infiltration profile. (required).</param>
        /// <param name="constantCoefficient">constantCoefficient (default to 1D).</param>
        /// <param name="temperatureCoefficient">temperatureCoefficient (default to 0D).</param>
        /// <param name="velocityCoefficient">velocityCoefficient (default to 0D).</param>
        /// <param name="identifier">Text string for a unique object ID. This identifier remains constant as the object is mutated, copied, and serialized to different formats (eg. dict, idf, osm). This identifier is also used to reference the object across a Model. It must be &lt; 100 characters, use only ASCII characters and exclude (, ; ! \\n \\t). (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        public Infiltration
        (
            string identifier, double flowPerExteriorArea, AnyOf <ScheduleRuleset, ScheduleFixedInterval> schedule,                            // Required parameters
            string displayName = default, double constantCoefficient = 1D, double temperatureCoefficient = 0D, double velocityCoefficient = 0D // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                                             // BaseClass
        {
            this.FlowPerExteriorArea = flowPerExteriorArea;
            // to ensure "schedule" is required (not null)
            this.Schedule               = schedule ?? throw new ArgumentNullException("schedule is a required property for Infiltration and cannot be null");
            this.ConstantCoefficient    = constantCoefficient;
            this.TemperatureCoefficient = temperatureCoefficient;
            this.VelocityCoefficient    = velocityCoefficient;

            // Set non-required readonly properties with defaultValue
            this.Type = "Infiltration";
        }
Beispiel #17
0
        /// <summary>
        /// Initializes a new instance of the <see cref="GasEquipment" /> class.
        /// </summary>
        /// <param name="wattsPerArea">Equipment level per floor area as [W/m2]. (required).</param>
        /// <param name="schedule">The schedule for the use of equipment over the course of the year. The type of this schedule should be Fractional and the fractional values will get multiplied by the watts_per_area to yield a complete equipment profile. (required).</param>
        /// <param name="radiantFraction">Number for the amount of long-wave radiation heat given off by electric equipment. Default value is 0. (default to 0D).</param>
        /// <param name="latentFraction">Number for the amount of latent heat given off by electricequipment. Default value is 0. (default to 0D).</param>
        /// <param name="lostFraction">Number for the amount of “lost” heat being given off by equipment. The default value is 0. (default to 0D).</param>
        /// <param name="identifier">Text string for a unique object ID. This identifier remains constant as the object is mutated, copied, and serialized to different formats (eg. dict, idf, osm). This identifier is also used to reference the object across a Model. It must be &lt; 100 characters, use only ASCII characters and exclude (, ; ! \\n \\t). (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        public GasEquipment
        (
            string identifier, double wattsPerArea, AnyOf <ScheduleRuleset, ScheduleFixedInterval> schedule,                // Required parameters
            string displayName = default, double radiantFraction = 0D, double latentFraction = 0D, double lostFraction = 0D // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                          // BaseClass
        {
            this.WattsPerArea = wattsPerArea;
            // to ensure "schedule" is required (not null)
            this.Schedule        = schedule ?? throw new ArgumentNullException("schedule is a required property for GasEquipment and cannot be null");
            this.RadiantFraction = radiantFraction;
            this.LatentFraction  = latentFraction;
            this.LostFraction    = lostFraction;

            // Set non-required readonly properties with defaultValue
            this.Type = "GasEquipment";
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="Plastic" /> class.
        /// </summary>
        /// <param name="modifier">Material modifier (default: Void)..</param>
        /// <param name="dependencies">List of modifiers that this modifier depends on. This argument is only useful for defining advanced modifiers where the modifier is defined based on other modifiers (default: None)..</param>
        /// <param name="rReflectance">A value between 0 and 1 for the red channel reflectance (default: 0). (default to 0.0D).</param>
        /// <param name="gReflectance">A value between 0 and 1 for the green channel reflectance (default: 0). (default to 0.0D).</param>
        /// <param name="bReflectance">A value between 0 and 1 for the blue channel reflectance (default: 0). (default to 0.0D).</param>
        /// <param name="specularity">A value between 0 and 1 for the fraction of specularity. Specularity fractions greater than 0.1 are not realistic for non-metallic materials. (default: 0). (default to 0D).</param>
        /// <param name="roughness">A value between 0 and 1 for the roughness, specified as the rms slope of surface facets. Roughness greater than 0.2 are not realistic (default: 0). (default to 0D).</param>
        /// <param name="identifier">Text string for a unique Radiance object. Must not contain spaces or special characters. This will be used to identify the object across a model and in the exported Radiance files. (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        public Plastic
        (
            string identifier,                                                                                                                                                                                                                                                                                                                                               // Required parameters
            string displayName = default, AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> modifier = default, List <AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> > dependencies = default, double rReflectance = 0.0D, double gReflectance = 0.0D, double bReflectance = 0.0D, double specularity = 0D, double roughness = 0D // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                                                                                                                                                                                                                                                                           // BaseClass
        {
            this.Modifier     = modifier;
            this.Dependencies = dependencies;
            this.RReflectance = rReflectance;
            this.GReflectance = gReflectance;
            this.BReflectance = bReflectance;
            this.Specularity  = specularity;
            this.Roughness    = roughness;

            // Set non-required readonly properties with defaultValue
            this.Type = "plastic";
        }
Beispiel #19
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Lighting" /> class.
        /// </summary>
        /// <param name="wattsPerArea">Lighting per floor area as [W/m2]. (required).</param>
        /// <param name="schedule">The schedule for the use of lights over the course of the year. The type of this schedule should be Fractional and the fractional values will get multiplied by the watts_per_area to yield a complete lighting profile. (required).</param>
        /// <param name="visibleFraction">The fraction of heat from lights that goes into the zone as visible (short-wave) radiation. (Default: 0.25). (default to 0.25D).</param>
        /// <param name="radiantFraction">The fraction of heat from lights that is long-wave radiation. (Default: 0.32). (default to 0.32D).</param>
        /// <param name="returnAirFraction">The fraction of the heat from lights that goes into the zone return air. (Default: 0). (default to 0.0D).</param>
        /// <param name="baselineWattsPerArea">The baseline lighting power density in [W/m2] of floor area. This baseline is useful to track how much better the installed lights are in comparison to a standard like ASHRAE 90.1. If set to None, it will default to 11.84029 W/m2, which is that ASHRAE 90.1-2004 baseline for an office. (default to 11.84029D).</param>
        /// <param name="identifier">Text string for a unique object ID. This identifier remains constant as the object is mutated, copied, and serialized to different formats (eg. dict, idf, osm). This identifier is also used to reference the object across a Model. It must be &lt; 100 characters, use only ASCII characters and exclude (, ; ! \\n \\t). (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        public Lighting
        (
            string identifier, double wattsPerArea, AnyOf <ScheduleRuleset, ScheduleFixedInterval> schedule,                                                                       // Required parameters
            string displayName = default, double visibleFraction = 0.25D, double radiantFraction = 0.32D, double returnAirFraction = 0.0D, double baselineWattsPerArea = 11.84029D // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                                                                                 // BaseClass
        {
            this.WattsPerArea = wattsPerArea;
            // to ensure "schedule" is required (not null)
            this.Schedule             = schedule ?? throw new ArgumentNullException("schedule is a required property for Lighting and cannot be null");
            this.VisibleFraction      = visibleFraction;
            this.RadiantFraction      = radiantFraction;
            this.ReturnAirFraction    = returnAirFraction;
            this.BaselineWattsPerArea = baselineWattsPerArea;

            // Set non-required readonly properties with defaultValue
            this.Type = "Lighting";
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="People" /> class.
        /// </summary>
        /// <param name="peoplePerArea">People per floor area expressed as [people/m2] (required).</param>
        /// <param name="occupancySchedule">A schedule for the occupancy over the course of the year. The type of this schedule should be Fractional and the fractional values will get multiplied by the people_per_area to yield a complete occupancy profile. (required).</param>
        /// <param name="activitySchedule">A schedule for the activity of the occupants over the course of the year. The type of this schedule should be Power and the values of the schedule equal to the number of Watts given off by an individual person in the room. (required).</param>
        /// <param name="radiantFraction">The radiant fraction of sensible heat released by people. (Default: 0.3). (default to 0.3D).</param>
        /// <param name="latentFraction">Number for the latent fraction of heat gain due to people or an Autocalculate object..</param>
        /// <param name="identifier">Text string for a unique object ID. This identifier remains constant as the object is mutated, copied, and serialized to different formats (eg. dict, idf, osm). This identifier is also used to reference the object across a Model. It must be &lt; 100 characters, use only ASCII characters and exclude (, ; ! \\n \\t). (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        public People
        (
            string identifier, double peoplePerArea, AnyOf <ScheduleRuleset, ScheduleFixedInterval> occupancySchedule, AnyOf <ScheduleRuleset, ScheduleFixedInterval> activitySchedule, // Required parameters
            string displayName = default, double radiantFraction = 0.3D, AnyOf <Autocalculate, double> latentFraction = default                                                         // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                                                                                      // BaseClass
        {
            this.PeoplePerArea = peoplePerArea;
            // to ensure "occupancySchedule" is required (not null)
            this.OccupancySchedule = occupancySchedule ?? throw new ArgumentNullException("occupancySchedule is a required property for People and cannot be null");
            // to ensure "activitySchedule" is required (not null)
            this.ActivitySchedule = activitySchedule ?? throw new ArgumentNullException("activitySchedule is a required property for People and cannot be null");
            this.RadiantFraction  = radiantFraction;
            this.LatentFraction   = latentFraction;

            // Set non-required readonly properties with defaultValue
            this.Type = "People";
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="WindowConstructionShade" /> class.
        /// </summary>
        /// <param name="windowConstruction">A WindowConstruction object that serves as the \&quot;switched off\&quot; version of the construction (aka. the \&quot;bare construction\&quot;). The shade_material and shade_location will be used to modify this starting construction. (required).</param>
        /// <param name="shadeMaterial">Identifier of a An EnergyWindowMaterialShade or an EnergyWindowMaterialBlind that serves as the shading layer for this construction. This can also be an EnergyWindowMaterialGlazing, which will indicate that the WindowConstruction has a dynamically-controlled glass pane like an electrochromic window assembly. (required).</param>
        /// <param name="shadeLocation">Text to indicate where in the window assembly the shade_material is located.  Note that the WindowConstruction must have at least one gas gap to use the \&quot;Between\&quot; option. Also note that, for a WindowConstruction with more than one gas gap, the \&quot;Between\&quot; option defalts to using the inner gap as this is the only option that EnergyPlus supports..</param>
        /// <param name="controlType">Text to indicate how the shading device is controlled, which determines when the shading is “on” or “off.”.</param>
        /// <param name="setpoint">A number that corresponds to the specified control_type. This can be a value in (W/m2), (C) or (W) depending upon the control type.Note that this value cannot be None for any control type except \&quot;AlwaysOn.\&quot;.</param>
        /// <param name="schedule">An optional ScheduleRuleset or ScheduleFixedInterval to be applied on top of the control_type. If None, the control_type will govern all behavior of the construction..</param>
        /// <param name="identifier">Text string for a unique object ID. This identifier remains constant as the object is mutated, copied, and serialized to different formats (eg. dict, idf, osm). This identifier is also used to reference the object across a Model. It must be &lt; 100 characters, use only ASCII characters and exclude (, ; ! \\n \\t). (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        public WindowConstructionShade
        (
            string identifier, WindowConstruction windowConstruction, AnyOf <EnergyWindowMaterialShade, EnergyWindowMaterialBlind, EnergyWindowMaterialGlazing> shadeMaterial,                                                               // Required parameters
            string displayName = default, ShadeLocation shadeLocation = ShadeLocation.Interior, ControlType controlType = ControlType.AlwaysOn, double setpoint = default, AnyOf <ScheduleRuleset, ScheduleFixedInterval> schedule = default // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                                                                                                                                           // BaseClass
        {
            // to ensure "windowConstruction" is required (not null)
            this.WindowConstruction = windowConstruction ?? throw new ArgumentNullException("windowConstruction is a required property for WindowConstructionShade and cannot be null");
            // to ensure "shadeMaterial" is required (not null)
            this.ShadeMaterial = shadeMaterial ?? throw new ArgumentNullException("shadeMaterial is a required property for WindowConstructionShade and cannot be null");
            this.ShadeLocation = shadeLocation;
            this.ControlType   = controlType;
            this.Setpoint      = setpoint;
            this.Schedule      = schedule;

            // Set non-required readonly properties with defaultValue
            this.Type = "WindowConstructionShade";
        }
Beispiel #22
0
        /// <summary>
        /// Initializes a new instance of the <see cref="FloorModifierSet" /> class.
        /// </summary>
        /// <param name="exteriorModifier">A radiance modifier object for faces with an Outdoors boundary condition..</param>
        /// <param name="interiorModifier">A radiance modifier object for faces with a boundary condition other than Outdoors..</param>
        public FloorModifierSet
        (
            // Required parameters
            AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> exteriorModifier = default, AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> interiorModifier = default // Optional parameters
        ) : base()                                                                                                                                                                                             // BaseClass
        {
            this.ExteriorModifier = exteriorModifier;
            this.InteriorModifier = interiorModifier;

            // Set non-required readonly properties with defaultValue
            this.Type = "FloorModifierSet";

            // check if object is valid, only check for inherited class
            if (this.GetType() == typeof(FloorModifierSet))
            {
                this.IsValid(throwException: true);
            }
        }
Beispiel #23
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Aperture" /> class.
        /// </summary>
        /// <param name="geometry">Planar Face3D for the geometry. (required).</param>
        /// <param name="boundaryCondition">boundaryCondition (required).</param>
        /// <param name="properties">Extension properties for particular simulation engines (Radiance, EnergyPlus). (required).</param>
        /// <param name="isOperable">Boolean to note whether the Aperture can be opened for ventilation. (default to false).</param>
        /// <param name="indoorShades">Shades assigned to the interior side of this object (eg. window sill, light shelf)..</param>
        /// <param name="outdoorShades">Shades assigned to the exterior side of this object (eg. mullions, louvers)..</param>
        /// <param name="identifier">Text string for a unique object ID. This identifier remains constant as the object is mutated, copied, and serialized to different formats (eg. dict, idf, rad). This identifier is also used to reference the object across a Model. It must be &lt; 100 characters and not contain any spaces or special characters. (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        /// <param name="userData">Optional dictionary of user data associated with the object.All keys and values of this dictionary should be of a standard data type to ensure correct serialization of the object (eg. str, float, int, list)..</param>
        public Aperture
        (
            string identifier, Face3D geometry, AnyOf <Outdoors, Surface> boundaryCondition, AperturePropertiesAbridged properties,                                     // Required parameters
            string displayName = default, Object userData = default, bool isOperable = false, List <Shade> indoorShades = default, List <Shade> outdoorShades = default // Optional parameters
        ) : base(identifier: identifier, displayName: displayName, userData: userData)                                                                                  // BaseClass
        {
            // to ensure "geometry" is required (not null)
            this.Geometry = geometry ?? throw new ArgumentNullException("geometry is a required property for Aperture and cannot be null");
            // to ensure "boundaryCondition" is required (not null)
            this.BoundaryCondition = boundaryCondition ?? throw new ArgumentNullException("boundaryCondition is a required property for Aperture and cannot be null");
            // to ensure "properties" is required (not null)
            this.Properties    = properties ?? throw new ArgumentNullException("properties is a required property for Aperture and cannot be null");
            this.IsOperable    = isOperable;
            this.IndoorShades  = indoorShades;
            this.OutdoorShades = outdoorShades;

            // Set non-required readonly properties with defaultValue
            this.Type = "Aperture";
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="Outdoors" /> class.
        /// </summary>
        /// <param name="sunExposure">A boolean noting whether the boundary is exposed to sun. (default to true).</param>
        /// <param name="windExposure">A boolean noting whether the boundary is exposed to wind. (default to true).</param>
        /// <param name="viewFactor">A number for the view factor to the ground. This can also be an Autocalculate object to have the view factor automatically calculated..</param>
        public Outdoors
        (
            // Required parameters
            bool sunExposure = true, bool windExposure = true, AnyOf <Autocalculate, double> viewFactor = default // Optional parameters
        ) : base()                                                                                                // BaseClass
        {
            this.SunExposure  = sunExposure;
            this.WindExposure = windExposure;
            this.ViewFactor   = viewFactor;

            // Set non-required readonly properties with defaultValue
            this.Type = "Outdoors";

            // check if object is valid, only check for inherited class
            if (this.GetType() == typeof(Outdoors))
            {
                this.IsValid(throwException: true);
            }
        }
Beispiel #25
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ScheduleTypeLimit" /> class.
        /// </summary>
        /// <param name="name">Name of the object. Must use only ASCII characters and exclude (, ; ! \\n \\t). It cannot be longer than 100 characters. (required).</param>
        /// <param name="type">type (default to &quot;ScheduleTypeLimit&quot;).</param>
        /// <param name="lowerLimit">Lower limit for the schedule type or NoLimit..</param>
        /// <param name="upperLimit">Upper limit for the schedule type or NoLimit..</param>
        /// <param name="numericType">numericType (default to NumericTypeEnum.Continuous).</param>
        /// <param name="unitType">unitType (default to UnitTypeEnum.Dimensionless).</param>
        public ScheduleTypeLimit(string name, string type = "ScheduleTypeLimit", AnyOf <NoLimit, double> lowerLimit = default, AnyOf <NoLimit, double> upperLimit = default, NumericTypeEnum?numericType = NumericTypeEnum.Continuous, UnitTypeEnum?unitType = UnitTypeEnum.Dimensionless)
        {
            // to ensure "name" is required (not null)
            if (name == null)
            {
                throw new InvalidDataException("name is a required property for ScheduleTypeLimit and cannot be null");
            }
            else
            {
                this.Name = name;
            }

            // use default value if no "type" provided
            if (type == null)
            {
                this.Type = "ScheduleTypeLimit";
            }
            else
            {
                this.Type = type;
            }
            this.LowerLimit = lowerLimit;
            this.UpperLimit = upperLimit;
            // use default value if no "numericType" provided
            if (numericType == null)
            {
                this.NumericType = NumericTypeEnum.Continuous;
            }
            else
            {
                this.NumericType = numericType;
            }
            // use default value if no "unitType" provided
            if (unitType == null)
            {
                this.UnitType = UnitTypeEnum.Dimensionless;
            }
            else
            {
                this.UnitType = unitType;
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ApertureConstructionSet" /> class.
        /// </summary>
        /// <param name="interiorConstruction">A WindowConstruction for all apertures with a Surface boundary condition..</param>
        /// <param name="windowConstruction">A WindowConstruction for apertures with an Outdoors boundary condition, False is_operable property, and a Wall face type for their parent face..</param>
        /// <param name="skylightConstruction">A WindowConstruction for apertures with a Outdoors boundary condition, False is_operable property, and a RoofCeiling or Floor face type for their parent face..</param>
        /// <param name="operableConstruction">A WindowConstruction for all apertures with an Outdoors boundary condition and True is_operable property..</param>
        public ApertureConstructionSet
        (
            // Required parameters
            AnyOf <WindowConstruction, WindowConstructionShade, WindowConstructionDynamic> interiorConstruction = default, AnyOf <WindowConstruction, WindowConstructionShade, WindowConstructionDynamic> windowConstruction = default, AnyOf <WindowConstruction, WindowConstructionShade, WindowConstructionDynamic> skylightConstruction = default, AnyOf <WindowConstruction, WindowConstructionShade, WindowConstructionDynamic> operableConstruction = default // Optional parameters
        ) : base()                                                                                                                                                                                                                                                                                                                                                                                                                                                   // BaseClass
        {
            this.InteriorConstruction = interiorConstruction;
            this.WindowConstruction   = windowConstruction;
            this.SkylightConstruction = skylightConstruction;
            this.OperableConstruction = operableConstruction;

            // Set non-required readonly properties with defaultValue
            this.Type = "ApertureConstructionSet";

            // check if object is valid, only check for inherited class
            if (this.GetType() == typeof(ApertureConstructionSet))
            {
                this.IsValid(throwException: true);
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ScheduleTypeLimit" /> class.
        /// </summary>
        /// <param name="lowerLimit">Lower limit for the schedule type or NoLimit..</param>
        /// <param name="upperLimit">Upper limit for the schedule type or NoLimit..</param>
        /// <param name="numericType">numericType.</param>
        /// <param name="unitType">unitType.</param>
        /// <param name="identifier">Text string for a unique object ID. This identifier remains constant as the object is mutated, copied, and serialized to different formats (eg. dict, idf, osm). This identifier is also used to reference the object across a Model. It must be &lt; 100 characters, use only ASCII characters and exclude (, ; ! \\n \\t). (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        public ScheduleTypeLimit
        (
            string identifier,                                                                                                                                                                                                                                     // Required parameters
            string displayName = default, AnyOf <NoLimit, double> lowerLimit = default, AnyOf <NoLimit, double> upperLimit = default, ScheduleNumericType numericType = ScheduleNumericType.Continuous, ScheduleUnitType unitType = ScheduleUnitType.Dimensionless // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                                                                                                                                                                 // BaseClass
        {
            this.LowerLimit  = lowerLimit;
            this.UpperLimit  = upperLimit;
            this.NumericType = numericType;
            this.UnitType    = unitType;

            // Set non-required readonly properties with defaultValue
            this.Type = "ScheduleTypeLimit";

            // check if object is valid, only check for inherited class
            if (this.GetType() == typeof(ScheduleTypeLimit))
            {
                this.IsValid(throwException: true);
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="WindowConstructionDynamic" /> class.
        /// </summary>
        /// <param name="constructions">A list of WindowConstruction objects that define the various states that the dynamic window can assume. (required).</param>
        /// <param name="schedule">A control schedule that dictates which constructions are active at given times throughout the simulation. The values of the schedule should be intergers and range from 0 to one less then the number of constructions. Zero indicates that the first construction is active, one indicates that the second on is active, etc. The schedule type limits of this schedule should be \&quot;Control Level.\&quot; If building custom schedule type limits that describe a particular range of states, the type limits should be \&quot;Discrete\&quot; and the unit type should be \&quot;Mode,\&quot; \&quot;Control,\&quot; or some other fractional unit. (required).</param>
        /// <param name="identifier">Text string for a unique object ID. This identifier remains constant as the object is mutated, copied, and serialized to different formats (eg. dict, idf, osm). This identifier is also used to reference the object across a Model. It must be &lt; 100 characters, use only ASCII characters and exclude (, ; ! \\n \\t). (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        /// <param name="userData">Optional dictionary of user data associated with the object.All keys and values of this dictionary should be of a standard data type to ensure correct serialization of the object (eg. str, float, int, list)..</param>
        public WindowConstructionDynamic
        (
            string identifier, List <WindowConstruction> constructions, AnyOf <ScheduleRuleset, ScheduleFixedInterval> schedule, // Required parameters
            string displayName = default, Object userData = default                                                              // Optional parameters
        ) : base(identifier: identifier, displayName: displayName, userData: userData)                                           // BaseClass
        {
            // to ensure "constructions" is required (not null)
            this.Constructions = constructions ?? throw new ArgumentNullException("constructions is a required property for WindowConstructionDynamic and cannot be null");
            // to ensure "schedule" is required (not null)
            this.Schedule = schedule ?? throw new ArgumentNullException("schedule is a required property for WindowConstructionDynamic and cannot be null");

            // Set non-required readonly properties with defaultValue
            this.Type = "WindowConstructionDynamic";

            // check if object is valid, only check for inherited class
            if (this.GetType() == typeof(WindowConstructionDynamic))
            {
                this.IsValid(throwException: true);
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="Light" /> class.
        /// </summary>
        /// <param name="modifier">Material modifier..</param>
        /// <param name="dependencies">List of modifiers that this modifier depends on. This argument is only useful for defining advanced modifiers where the modifier is defined based on other modifiers..</param>
        /// <param name="rEmittance">A value between 0 and 1 for the red channel of the modifier. (default to 0.0D).</param>
        /// <param name="gEmittance">A value between 0 and 1 for the green channel of the modifier. (default to 0.0D).</param>
        /// <param name="bEmittance">A value between 0 and 1 for the blue channel of the modifier. (default to 0.0D).</param>
        /// <param name="identifier">Text string for a unique Radiance object. Must not contain spaces or special characters. This will be used to identify the object across a model and in the exported Radiance files. (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        public Light
        (
            string identifier,                                                                                                                                                                                                                                                                                         // Required parameters
            string displayName = default, AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> modifier = default, List <AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> > dependencies = default, double rEmittance = 0.0D, double gEmittance = 0.0D, double bEmittance = 0.0D // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                                                                                                                                                                                                                     // BaseClass
        {
            this.Modifier     = modifier;
            this.Dependencies = dependencies;
            this.REmittance   = rEmittance;
            this.GEmittance   = gEmittance;
            this.BEmittance   = bEmittance;

            // Set non-required readonly properties with defaultValue
            this.Type = "Light";

            // check if object is valid, only check for inherited class
            if (this.GetType() == typeof(Light))
            {
                this.IsValid(throwException: true);
            }
        }
Beispiel #30
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Mirror" /> class.
        /// </summary>
        /// <param name="modifier">Material modifier..</param>
        /// <param name="dependencies">List of modifiers that this modifier depends on. This argument is only useful for defining advanced modifiers where the modifier is defined based on other modifiers..</param>
        /// <param name="rReflectance">A value between 0 and 1 for the red channel reflectance. (default to 1D).</param>
        /// <param name="gReflectance">A value between 0 and 1 for the green channel reflectance. (default to 1D).</param>
        /// <param name="bReflectance">A value between 0 and 1 for the blue channel reflectance. (default to 1D).</param>
        /// <param name="alternateMaterial">An optional material (like the illum type) that may be used to specify a different material to be used for shading non-source rays. If None, this will keep the alternat_material as mirror. If this alternate material is given as Void, then the mirror surface will be invisible. Using Void is only appropriate if the surface hides other (more detailed) geometry with the same overall reflectance..</param>
        /// <param name="identifier">Text string for a unique Radiance object. Must not contain spaces or special characters. This will be used to identify the object across a model and in the exported Radiance files. (required).</param>
        /// <param name="displayName">Display name of the object with no character restrictions..</param>
        public Mirror
        (
            string identifier,                                                                                                                                                                                                                                                                                                                                                                                            // Required parameters
            string displayName = default, AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> modifier = default, List <AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> > dependencies = default, double rReflectance = 1D, double gReflectance = 1D, double bReflectance = 1D, AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> alternateMaterial = default // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                                                                                                                                                                                                                                                                                                                        // BaseClass
        {
            this.Modifier          = modifier;
            this.Dependencies      = dependencies;
            this.RReflectance      = rReflectance;
            this.GReflectance      = gReflectance;
            this.BReflectance      = bReflectance;
            this.AlternateMaterial = alternateMaterial;

            // Set non-required readonly properties with defaultValue
            this.Type = "Mirror";

            // check if object is valid, only check for inherited class
            if (this.GetType() == typeof(Mirror))
            {
                this.IsValid(throwException: true);
            }
        }