/// <summary>
        /// Initializes a new instance of the <see cref="ModifierSet" /> class.
        /// </summary>
        /// <param name="wallSet">An optional WallModifierSet object for this ModifierSet. (default: None)..</param>
        /// <param name="floorSet">An optional FloorModifierSet object for this ModifierSet. (default: None)..</param>
        /// <param name="roofCeilingSet">An optional RoofCeilingModifierSet object for this ModifierSet. (default: None)..</param>
        /// <param name="apertureSet">An optional ApertureModifierSet object for this ModifierSet. (default: None)..</param>
        /// <param name="doorSet">An optional DoorModifierSet object for this ModifierSet. (default: None)..</param>
        /// <param name="shadeSet">An optional ShadeModifierSet object for this ModifierSet. (default: None)..</param>
        /// <param name="airBoundaryModifier">An optional Modifier to be used for all Faces with an AirBoundary face type. If None, it will be the honeybee generic air wall modifier..</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 ModifierSet
        (
            string identifier,                                                                                                                                                                                                                                                                                                                                                            // Required parameters
            string displayName = default, WallModifierSet wallSet = default, FloorModifierSet floorSet = default, RoofCeilingModifierSet roofCeilingSet = default, ApertureModifierSet apertureSet = default, DoorModifierSet doorSet = default, ShadeModifierSet shadeSet = default, AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> airBoundaryModifier = default // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                                                                                                                                                                                                                                                                                        // BaseClass
        {
            this.WallSet             = wallSet;
            this.FloorSet            = floorSet;
            this.RoofCeilingSet      = roofCeilingSet;
            this.ApertureSet         = apertureSet;
            this.DoorSet             = doorSet;
            this.ShadeSet            = shadeSet;
            this.AirBoundaryModifier = airBoundaryModifier;

            // Set non-required readonly properties with defaultValue
            this.Type = "ModifierSet";
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="ModifierSet" /> class.
        /// </summary>
        /// <param name="wallSet">An optional WallModifierSet object for this ModifierSet. (default: None)..</param>
        /// <param name="floorSet">An optional FloorModifierSet object for this ModifierSet. (default: None)..</param>
        /// <param name="roofCeilingSet">An optional RoofCeilingModifierSet object for this ModifierSet. (default: None)..</param>
        /// <param name="apertureSet">An optional ApertureModifierSet object for this ModifierSet. (default: None)..</param>
        /// <param name="doorSet">An optional DoorModifierSet object for this ModifierSet. (default: None)..</param>
        /// <param name="shadeSet">An optional ShadeModifierSet object for this ModifierSet. (default: None)..</param>
        /// <param name="airBoundaryModifier">An optional Modifier to be used for all Faces with an AirBoundary face type. If None, it will be the honeybee generic air wall modifier..</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 ModifierSet
        (
            string identifier,                                                                                                                                                                                                                                                                                                                                                            // Required parameters
            string displayName = default, WallModifierSet wallSet = default, FloorModifierSet floorSet = default, RoofCeilingModifierSet roofCeilingSet = default, ApertureModifierSet apertureSet = default, DoorModifierSet doorSet = default, ShadeModifierSet shadeSet = default, AnyOf <Plastic, Glass, BSDF, Glow, Light, Trans, Metal, Void, Mirror> airBoundaryModifier = default // Optional parameters
        ) : base(identifier: identifier, displayName: displayName)                                                                                                                                                                                                                                                                                                                        // BaseClass
        {
            this.WallSet             = wallSet;
            this.FloorSet            = floorSet;
            this.RoofCeilingSet      = roofCeilingSet;
            this.ApertureSet         = apertureSet;
            this.DoorSet             = doorSet;
            this.ShadeSet            = shadeSet;
            this.AirBoundaryModifier = airBoundaryModifier;

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

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