new Schedule( [config] [, typeName])
Creates a new annual schedule.
Parameters:
| Name | Type | Argument | Description | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
config |
object |
<optional> |
An optional configuration object. |
||||||||||||||||||||||||||||||||
Properties of
|
|||||||||||||||||||||||||||||||||||
| Name | Type | Argument | Description |
|---|---|---|---|
name |
string |
<optional> |
A human-readable name for this schedule. |
uuid |
string |
<optional> |
A universally unique identifier of this schedule. |
dayList |
Array |
<optional> |
A list of day schedules that make up this schedule. |
category |
string |
<optional> |
Optional keywords for the kind of activities or operations this day schedule controls. |
type |
string |
<optional> |
One or more optional day-types this day schedule applies to. |
color |
string |
<optional> |
An optional hexadecimal CSS color string. |
data |
string |
<optional> |
An array of fractional data values for each time step in the day (0 to 1). |
typeNameAn additional parameter typically used by subclasses to set the
component type name without modifying the config object.
Extends
Members
-
:PD.SCHEDULE.CATEGORY
category
-
Describes the kind of activities or operations this schedule controls.
Type
-
:string
className <readonly>
-
The name of the subclass for this object instance.
This name must match the name of this class within the
PD.Registry. Thus, the base implementation simply referencesthis.constructor.getClassName()to ensure that this is always the case even for subclasses. As a result, there is rarely any need to override this method.This property is used when copying, storing and exporting data for subclass instances to ensure that they are recreated as instances of the right class.
Type
- string
- Inherited From:
- Overrides:
-
:Array.<PD.DaySchedule>
dayList
-
The list of daily schedules that make up this annual schedule.
Type
- Array.<PD.DaySchedule>
-
:Array.<number>
days
-
An array of day schedule indices for each day of the year.
Type
- Array.<number>
-
:string
description
-
The human-readable description of this schedule.
Type
- string
-
:string
displayName <readonly>
-
The name to display for this class within the user interface.
Type
- string
- Inherited From:
- Overrides:
-
:number
endDOY
-
The day of the year the schedule ends, defaults to 366.
Type
- number
-
:string
iconName <readonly>
-
The name of the SVG icon to associate with this object instance.
This name should match the name of the icon associated with this class within the
PD.Registry. Thus, the default implementation simply referencesthis.constructor.getClassName()to ensure that this is always the case, even for subclasses. However, you can override this property if you want a different icon dependant on other properties of the class instance, as shown in the example below.Type
- string
- Inherited From:
- Overrides:
Example
// Overriding the icon name. MyElements.Table = class extends PD.Base { /// ... get iconName() { if (this.hasRoundTop) return 'MyElements.Table.Round'; return this.constructor.getClassName(); }; /// ... }; -
:boolean
isSchedule <readonly>
-
A flag identifying this object as a schedule.
Type
- boolean
-
:number
maxValue
-
The maximum range when hour value is 1.
Type
- number
-
:number
minValue
-
The minimum range when hour value is 0.
Type
- number
-
:string
name
-
A human-readable name for this item instance.
Type
- string
- Inherited From:
- Overrides:
-
:number
startDOY
-
The day of the year the schedule starts, defaults to 0.
Type
- number
-
:PD.SCHEDULE.TYPE
type
-
The type of data that this schedule can control.
Type
-
:string
uuid
-
A universally unique identifier for the item instance.
Type
- string
- Inherited From:
- Overrides:
-
:Array.<Array.<number>>
weeks
-
An array of EnergyPlus weekly day schedule arrays.
Each weekly day schedule is an array of 12 daily day schedule indices, one for each EnergyPlus day type. The extra 5 day schedules in each (12-7) allows EnergyPlus to automatically apply the right day schedule for holidays and other events.
Type
- Array.<Array.<number>>
-
:object
icon <static>
-
The icon associated with this class in the
PD.Registry.See
PD.Base.iconfor more information on this object format.Type
- object
Methods
-
checkDynamicParameter(param, group, host)
-
Checks the allowable range of element parameter values.
See the
PD.Base#checkDynamicParametermethod for more details.Parameters:
Name Type Description paramPD.Parameter The parameter that is being interactively changed.
groupPD.ParamGroup The group that the dynamic parameter belongs to.
hostPD.Element The host element this component is controlling.
- Inherited From:
- Overrides:
Example
checkDynamicParameter(param, group, host) { switch (param.name) { case 'height': if (param.value < 1.0) param.value = 1.0; break; case 'width': case 'length': if (param.value < 100.0) param.value = 100.0; if (this.standardBedSize > 0) { // If not custom. group.setParameterValue('standardBedSize', 0); this.standardBedSize = 0; // Make it custom. } break; case 'standardBedSize': { const std_bed = this.getStandardBedSize(Math.round(param.value)); if (std_bed != null) { const [ width, length ] = (PD.DIMENSION.useImperial) ? std_bed.sizeImperial : std_bed.sizeMetric; this.width = PD.Utils.toNumber(width, this.width); group.setParameterValue('width', this.width); this.length = PD.Utils.toNumber(length, this.length); group.setParameterValue('length', this.length); } } break; } }; -
clone()
-
Creates a copy of this instance with different name and uuid.
- Inherited From:
- Overrides:
Returns:
Returns a new instance with copied values.
- Type
- PD.Base | null
-
fromJSON(data)
-
Safely copy properties from a source object.
See the
PD.Base#fromJSONmethod for more details.Parameters:
Name Type Description dataobject The source object containing data to copy.
- Inherited From:
- Overrides:
Returns:
Returns this instance to support method chaining.
- Type
- PD.Component
Example
// Overriding this method. class MyElement extends PD.Element { /// ... fromJSON(data) { super.fromJSON(data); if ('myNewNumberProp' in data) { this.myNewNumberProp = PD.Utils.toNumber(data.myNewNumberProp, this.myNewNumberProp); } if ('myNewIntegerProp' in data) { this.myNewIntegerProp = PD.Utils.toInteger(data.myNewIntegerProp, this.myNewIntegerProp); } if ('myNewBooleanProp' in data) { this.myNewBooleanProp = PD.Utils.toBoolean(data.myNewBooleanProp, this.myNewBooleanProp); } if ('myNewVectorProp' in data) { PD.Utils.copyVector3(data.myNewVectorProp, this.myNewVectorProp); } if ('myNewColorProp' in data) { PD.Utils.copyColor(data.myNewColorProp, this.myNewColorProp); } return this; }; /// ... }; -
getDaySchedule(day)
-
Retrieves the fractional data values in the day schedule at the given index.
This method takes an array of fractional data values for each time step across the day. The time step is calculated automatically from the number of values in the array. For an hourly day schedule, ensure that there are exactly 24 values in the array. For a 15min time step, ensure there are 96 values in the array.
Parameters:
Name Type Description daynumber The numeric index of the day in the year (0 to 364/365).
Throws:
-
Throws an error if day index is invalid.
- Type
- Error
Returns:
Returns the day schedule assigned to the given day.
- Type
- PD.DaySchedule
-
-
getDynamicParameters( [no_title])
-
Provides a list of dynamic parameter groups for this supplier.
See the
PD.Base#getDynamicParametersmethod for more details.Parameters:
Name Type Argument Description no_titleboolean <optional>
If true, the group is displayed without a section title.
- Inherited From:
- Overrides:
Returns:
Returns an array of
PD.ParamGroupobjects.- Type
- Array
Example
getDynamicParameters(host) { return [ new PD.ParamGroup({ name: 'mainParams', title: 'Table Parameters', target: this, params: [ new PD.Parameter({ name: 'height', title: 'Table Height', value: this.height, paramType: PD.ParamType.SmallDistance, description: 'The height from floor level to the top of the table.' }), new PD.Parameter({ name: 'size', title: 'Table Top Size/Diameter', value: this.size, paramType: PD.ParamType.Distance, description: 'The size of the table top when not defined by a closed path.' }), new PD.Parameter({ name: 'thickness', title: 'Table Top Thickness', value: this.thickness, paramType: PD.ParamType.SmallDistance, description: 'The thickness of the table top surface.' }), new PD.Parameter({ name: 'offset', title: 'Offset From Path', value: this.offset, paramType: PD.ParamType.SmallDistance, description: 'The offset distance from the table path.' }), new PD.Parameter({ name: 'swapSides', title: 'Swap Sides', value: this.swapSides, paramType: PD.ParamType.Boolean, description: 'Reverse the direction of the table relative to its path.' }), new PD.Parameter({ name: 'isRound', title: 'Round Table', value: this.isRound, paramType: PD.ParamType.Boolean, description: 'Whether or not the table surface is round.' }), ] }), new PD.ParamGroup({ name: 'legParams', title: 'Leg Parameters', target: this, params: [ new PD.Parameter({ name: 'legCount', title: 'Number of Legs', value: this.legCount, paramType: PD.ParamType.Integer, description: 'The number of legs on the table.' }), new PD.Parameter({ name: 'legSize', title: 'Leg Size', value: this.legSize, paramType: PD.ParamType.SmallDistance, description: 'The thickness of each leg of the table.' }), new PD.Parameter({ name: 'legInset', title: 'Leg Edge Inset', value: this.legInset, paramType: PD.ParamType.SmallDistance, description: 'The inset distance of each leg from the table edge.' }), new PD.Parameter({ name: 'legOffset', title: 'Leg Edge Offset', value: this.legOffset, paramType: PD.ParamType.Fraction, description: 'The relative distance of the leg along each edge span.' }), new PD.Parameter({ name: 'legSpan', title: 'Max. Distance Between Legs', value: this.legSpan, paramType: PD.ParamType.Distance, description: 'The maximum distance between legs along each edge span.' }) ] }) ]; }; -
setDaySchedule(day, profile)
-
Set the fractional data values in the profile and calculates the time step.
This method takes an array of fractional data values for each time step across the day. The time step is calculated automatically from the number of values in the array. For an hourly profile, ensure that there are exactly 24 values in the array. For a 15min time step, ensure there are 96 values in the array.
Parameters:
Name Type Description daynumber The numeric index of the day in the year (0 to 364/365).
profilePD.DaySchedule The new daily profile to assign to the given day of the year.
Throws:
-
Throws an error if day index or profile is invalid.
- Type
- Error
Returns:
Returns this schedule instance to support method chaining.
- Type
- PD.Schedule
-
-
toJSON( [data])
-
Converts the object instance to a simple POJO for JSON storage.
This method is used to copy, store and save the data for ths object, so the returned object must have all the properties required be able to rebuild this instance in its entirety when passed to the class constructor.
See the
PD.Base#toJSONmethod for more details.Parameters:
Name Type Argument Description dataobject <optional>
An optional parent object to append this data to.
- Inherited From:
- Overrides:
Returns:
Returns a JSON object.
- Type
- object
Example
// Overriding this method. class MyElement extends PD.Element { /// ... toJSON(data) { data = super.toJSON(data); data.myNewNumberProp = this.myNewNumberProp; data.myNewIntegerProp = this.myNewIntegerProp; data.myNewBooleanProp = this.myNewBooleanProp; data.myNewVectorProp = this.myNewVectorProp.toArray(); data.myNewColorProp = this.myNewColorProp.toArray(); return data; }; /// ... }; -
updateDynamicParameters(param, group)
-
Sets the dynamic parameter value of the given schedule if changed.
See the
PD.Base#updateDynamicParametersmethod for more details.Parameters:
Name Type Description paramPD.Parameter The dynamic parameter that changed.
groupPD.ParamGroup The group that the dynamic parameter belongs to.
- Inherited From:
- Overrides:
Returns:
Returns true if the element was rebuilt and a model update is required.
- Type
- boolean
Examples
updateDynamicParameters(param, group) { /// When you want parent class to use its logic. if (super.updateDynamicParameters(param, group)) { if (param.name == 'i_am_special') this.doSomethingSpecial(); return true; } return false; };updateDynamicParameters(param, group) { /// When you don't want parent to handle parameter updates. if (PD.Base.updateDynamicParametersOnHost(param, group, this)) { /// Invalidate geometry. if (this.typeComponent) { ++this.typeComponent.updateIndex; } /// Rebuild element. this.hasChanged = true; this.update(); /// Only update site mesh. if (this.onlyUsesSiteMesh) { const level = this.level; if (level) { // Don't trigger whole level update. level.rebuildSiteMesh(); PD.GlobalActions.redrawAndUpdateSelection(); return false; } } return true; } return false; };updateDynamicParameters(param, group) { /// The following three lines of code replicate /// `PD.Base.updateDynamicParametersOnHost()`, which you can /// use if you need to access `target` without having to call /// `group.getTarget() || this` twice. const target = group.getTarget() || this; target.checkDynamicParameter(param, group, this); if (param.setValueOnHostIfDifferent(target, group, this)) { /// You can now use `target`. if (target.myOwnMeshThatIsUpdatedDuringRebuild) { /// Rebuild element. this.hasChanged = true; this.update(); /// If no level meshes or other elements are affected, /// simply update the target locally and return false. this.myOwnMeshThatIsUpdatedDuringRebuild.update(); /// Update selection meshes if the /// element's highlight geometry changed. PD.GlobalActions.updateSelectionMeshes(); return false; } return true; } return false; }; -
updateRangeByType()
-
Sets the local value range based on type.
-
getClassDescription() <static>
-
A brief description of this class to accompany its icon.
Returns:
Returns a brief description.
- Type
- string
-
getClassName() <static>
-
The name of this class within the
PD.Registry.See
PD.Base.getClassNamefor more details as this is required for use with thePD.Registry.Returns:
Returns the registered name of this class.
- Type
- string