eplusr provides parsing EnergyPlus Input Data File (IDF) files and strings in a hierarchical structure, which was extremely inspired by OpenStudio utilities library, but with total different data structure under the hook.

Details

eplusr uses Idf class to present the whole IDF file and use IdfObject to present a single object in IDF. Both Idf and IdfObject contain member functions for helping modify the data in IDF so it complies with the underlying IDD (EnergyPlus Input Data Dictionary).

Under the hook, eplusr uses a SQL-like structure to store both IDF and IDD data in different data.table::data.tables. So to modify an EnergyPlus model in eplusr is equal to change the data in those IDF tables accordingly, in the context of specific IDD data. This means that a corresponding Idd object is needed whenever creating an Idf object. eplusr provides several helpers to easily download IDD files and create Idd objects.

All IDF reading process starts with function read_idf() which returns an Idf object. Idf class provides lots of methods to programmatically query and modify EnergyPlus models.

Internally, the powerful data.table package is used to speed up the whole IDF parsing process and store the results. Under the hook, eplusr uses a SQL-like structure to store both IDF and IDD data in data.table::data.table format. Every IDF will be parsed and stored in three tables:

  • object: contains object IDs, names and comments.

  • value: contains field values

  • reference: contains cross-reference data of field values.

Note

When rendering by surface types, the exterior and interior face detection may be not 100% right.

See also

IdfObject class for a single object in an IDF.

Methods

Public methods


Method new()

Create an Idf object

Usage

Idf$new(path, idd = NULL)

Arguments

path

Either a path, a connection, or literal data (either a single string or a raw vector) to an EnergyPlus Input Data File (IDF). If a file path, that file usually has a extension .idf.

idd

Any acceptable input of use_idd(). If NULL, which is the default, the version of IDF will be passed to use_idd(). If the input is an .ddy file which does not have a version field, the latest version of Idf cached will be used.

Details

It takes an EnergyPlus Input Data File (IDF) as input and returns an Idf object.

Currently, Imf file is not fully supported. All EpMacro lines will be treated as normal comments of the nearest downwards object. If input is an Imf file, a warning will be given during parsing. It is recommended to convert the Imf file to an Idf file and use ParametricJob class to conduct parametric analysis.

Returns

An Idf object.

Examples

\dontrun{
# example model shipped with eplusr from EnergyPlus v8.8
path_idf <- system.file("extdata/1ZoneUncontrolled.idf", package = "eplusr") # v8.8

# If neither EnergyPlus v8.8 nor Idd v8.8 was found, error will
# occur. If Idd v8.8 is found, it will be used automatically.
idf <- Idf$new(path_idf)

# argument `idd` can be specified explicitly using `use_idd()`
idf <- Idf$new(path_idf, idd = use_idd(8.8))

# you can set `download` arugment to "auto" in `use_idd()` if you
# want to automatically download corresponding IDD file when
# necessary
idf <- Idf$new(path_idf, use_idd(8.8, download = "auto"))

# Besides use a path to an IDF file, you can also provide IDF in literal
# string format
string_idf <-
    "
    Version, 8.8;
    Building,
        Building;                !- Name
    "

Idf$new(string_idf, use_idd(8.8, download = "auto"))
}


Method version()

Get the version of current Idf

Usage

Idf$version()

Details

$version() returns the version of current Idf in a base::numeric_version() format. This makes it easy to direction compare versions of different Idfs, e.g. idf$version() > 8.6 or idf1$version() > idf2$version().

Returns

A base::numeric_version() object.

Examples

\dontrun{
# get version
idf$version()
}


Method path()

Get the file path of current Idf

Usage

Idf$path()

Details

$path() returns the full path of current Idf or NULL if the Idf object is created using a character vector and not saved locally.

Returns

NULL or a single string.

Examples

\dontrun{
# get path
idf$path()

# return `NULL` if Idf is not created from a file
Idf$new("Version, 8.8;\n")$path()
}


Method group_name()

Get names of groups

Usage

Idf$group_name(all = FALSE, sorted = TRUE)

Arguments

all

If FALSE, only names of groups in current Idf object will be returned. If TRUE, all group names in the underlying Idd will be returned. Default: FALSE.

sorted

Only applicable when all is FALSE. If TRUE, duplications in returned group or class names are removed, and unique names are further sorted according to their occurrences in the underlying Idd. Default: TRUE.

Details

$group_name() returns names of groups current Idf contains or the underlying Idd object contains.

Returns

A character vector.

Examples

\dontrun{
# get names of all groups Idf contains
idf$group_name()

# get group name of each object in Idf
idf$group_name(sorted = FALSE)

# get names of all available groups in underlying Idd
idf$group_name(all = TRUE)
}


Method class_name()

Get names of classes

Usage

Idf$class_name(all = FALSE, sorted = TRUE, by_group = FALSE)

Arguments

all

If FALSE, only names of classes in current Idf object will be returned. If TRUE, all class names in the underlying Idd will be returned. Default: FALSE.

sorted

Only applicable when all is FALSE. If TRUE, duplications in returned group or class names are removed, and unique names are further sorted according to their occurrences in the underlying Idd. Default: TRUE.

by_group

Only applicable when all or sorted is TRUE. If TRUE, a list is returned which separates class names by the group they belong to.

Details

$class_name() returns names of classes current Idf contains or the underlying Idd object contains.

Returns

A character vector if by_group is FALSE and a list of character vectors when by_group is TRUE.

Examples

\dontrun{
# get names of all classes in Idf
idf$class_name()

# get names of all classes grouped by group names in Idf
idf$class_name(by_group = TRUE)

# get class name of each object in Idf
idf$class_name(sorted = FALSE)

# get names of all available classes in underlying Idd
idf$class_name(all = TRUE)

# get names of all available classes grouped by group names in
# underlying Idd
idf$class_name(all = TRUE, by_group = TRUE)
}


Method is_valid_group()

Check if elements in input character vector are valid group names.

Usage

Idf$is_valid_group(group, all = FALSE)

Arguments

group

A character vector to check.

all

If FALSE, check if input characters are valid group names for current Idf. If TRUE, check if input characters are valid group names for underlying Idd. Default: FALSE

Details

$is_valid_group() returns TRUEs if given character vector contains valid group names in the context of current Idf (when all is FALSE) or current underlying Idd (when all is TRUE).

Note that case-sensitive matching is performed, which means that "Location and Climate" is a valid group name but "location and climate" is not.

Returns

A logical vector with the same length as input character vector.

Examples

\dontrun{
# check if input is a valid group name in current Idf
idf$is_valid_group(c("Schedules", "Compliance Objects"))

# check if input is a valid group name in underlying Idd
idf$is_valid_group(c("Schedules", "Compliance Objects"), all = TRUE)
}


Method is_valid_class()

Check if elements in input character vector are valid class names.

Usage

Idf$is_valid_class(class, all = FALSE)

Arguments

class

A character vector to check.

all

If FALSE, check if input characters are valid class names for current Idf. If TRUE, check if input characters are valid class names for underlying Idd. Default: FALSE

Details

$is_valid_class() returns TRUEs if given character vector contains valid class names in the context of current Idf (when all is FALSE) or current underlying Idd (when all is TRUE), and FALSEs otherwise.

Note that case-sensitive matching is performed, which means that "Version" is a valid class name but "version" is not.

Returns

A logical vector with the same length as input character vector.

Examples

\dontrun{
# check if input is a valid class name in current Idf
idf$is_valid_class(c("Building", "ShadowCalculation"))

# check if input is a valid class name in underlying Idd
idf$is_valid_class(c("Building", "ShadowCalculation"), all = TRUE)
}


Method definition()

Get the IddObject object for specified class.

Usage

Idf$definition(class = NULL)

Arguments

class

A single string of valid class name in current Idd. If NULL, the underlying Idd object is returned. Default: NULL.

Details

$definition() returns an IddObject of given class. IddObject contains all data used for parsing and creating an IdfObject. For details, please see IddObject class.

Returns

An IddObject object if class is not NULL or an Idd object if class is NULL.

Examples

\dontrun{
# get the IddObject object for specified class
idf$definition("Version")
}


Method object_id()

Get the unique ID for each object in specified classes in the Idf.

Usage

Idf$object_id(class = NULL, simplify = FALSE)

Arguments

class

A character vector that contains valid class names for current Idf object. If NULL, all classes in current Idf object are used. Default: NULL.

simplify

If TRUE, an integer vector contains object IDs of all specified classes is returned. If FALSE, a named list that contains object IDs for each specified class is returned. Default: FALSE.

Details

In Idf, each object is assigned with an integer as an universally unique identifier (UUID) in the context of current Idf. UUID is not reused even if the object associated is deleted.

$object_id() returns an integer vector (when simplify is TRUE) or a named list (when simplify is FALSE) of integer vectors that contain object IDs in each specified class. The returned list is named using specified class names.

Returns

An integer vector (when simplify is TRUE) or a named list of integer vectors (when simplify is FALSE).

Examples

\dontrun{
# get IDs of all objects in current Idf object
idf$object_id()

# get IDs of all objects in current Idf object, and merge them into a
# single integer vector
idf$object_id(simplify = TRUE)

# get IDs of objects in class Version and Zone
idf$object_id(c("Version", "Zone"))

# get IDs of objects in class Version and Zone, and merge them into a
# single integer vector
idf$object_id(c("Version", "Zone"), simplify = TRUE)
}


Method object_name()

Get names for objects in specified classes in the Idf.

Usage

Idf$object_name(class = NULL, simplify = FALSE)

Arguments

class

A character vector that contains valid class names for current Idf. If NULL, all classes in current Idf are used. Default: NULL.

simplify

If TRUE, a character vector contains object names of all specified classes is returned. If FALSE, a named list that contains a character vector for each specified class is returned. Default: FALSE.

Details

In Idf, each object is assigned with a single string as the name for it, if the class it belongs to has name attribute, e.g. class RunPeriod, Material and etc. That name should be unique among all objects in that class. EnergyPlus will fail with an error if duplications are found among object names in a class.

$object_name() returns a character vector (when simplify is TRUE) or a named list (when simplify is FALSE) of character vectors that contain object IDs in each specified class. The returned list is named using specified class names. If specified class does not have name attribute, NAs are returned.

Returns

A character vector (when simplify is TRUE) or a named list of character vectors (when simplify is FALSE).

Examples

\dontrun{
# get names of all objects in current Idf object
idf$object_name()

# get names of all objects in current Idf object, and merge them into
# a single character vector
idf$object_name(simplify = TRUE)

# get names of objects in class Version and Zone
idf$object_name(c("Version", "Zone"))

# get names of objects in class Version and Zone, and merge them into
# a single character vector
idf$object_name(c("Version", "Zone"), simplify = TRUE)
}


Method object_num()

Get number of objects in specified classes in the Idf object.

Usage

Idf$object_num(class = NULL)

Arguments

class

A character vector that contains valid class names for underlying Idd. If NULL, all classes in current Idf are used, and the total object number is returned. Default: NULL.

Details

$object_num() returns an integer vector of object number in specified classes. 0 is returned if there is no object in that class.

Returns

An integer vector.

Examples

\dontrun{
# get total number of objects
idf$object_num()

# get number of objects in class Zone and Schedule:Compact
idf$object_num(c("Zone", "Schedule:Compact"))
}


Method is_valid_id()

Check if elements in input integer vector are valid object IDs.

Usage

Idf$is_valid_id(id)

Arguments

id

An integer vector to check.

Details

$is_valid_id() returns TRUEs if given integer vector contains valid object IDs in current Idf object.

Returns

A logical vector with the same length as input integer vector.

Examples

\dontrun{
idf$is_valid_id(c(51, 1000))
}


Method is_valid_name()

Check if elements in input character vector are valid object names.

Usage

Idf$is_valid_name(name)

Arguments

name

A character vector to check.

Details

$is_valid_name() returns TRUEs if given character vector contains valid object names in current Idf object.

Note that case-insensitive matching is performed, which means that "rOoF" is equivalent to "roof". This behavior is consistent in all methods that take object name(s) as input.

Returns

A logical vector with the same length as input character vector.

Examples

\dontrun{
idf$is_valid_name(c("Simple One Zone (Wireframe DXF)", "ZONE ONE", "a"))

# name matching is case-insensitive
idf$is_valid_name(c("simple one zone (wireframe dxf)", "zone one", "a"))
}


Method object()

Extract an IdfObject object using object ID or name.

Usage

Idf$object(which)

Arguments

which

A single integer specifying the object ID or a single string specifying the object name.

Details

$object() returns an IdfObject object specified by an object ID or name.

Note that unlike object ID, which is always unique across the whole Idf object, different objects can have the same name. If the name given matches multiple objects, an error is issued showing what objects are matched by the same name. This behavior is consistent in all methods that take object name(s) as input. In this case, it is suggested to directly use object ID instead of name.

Note that case-insensitive matching is performed for object names, which means that "rOoF" is equivalent to "roof". This behavior is consistent in all methods that take object name(s) as input.

Returns

An IdfObject object.

Examples

\dontrun{
# get an object whose ID is 3
idf$object(3)

# get an object whose name is "simple one zone (wireframe dxf)"
# NOTE: object name matching is case-insensitive
idf$object("simple one zone (wireframe dxf)")
}


Method objects()

Extract multiple IdfObject objects using object IDs or names.

Usage

Idf$objects(which)

Arguments

which

An integer vector specifying object IDs or a character vector specifying object names.

Details

$objects() returns a named list of IdfObject objects using object IDS or names. The returned list is named using object names.

Note that unlike object ID, which is always unique across the whole Idf object, different objects can have the same name. If the name given matches multiple objects, an error is issued showing what objects are matched by the same name. This behavior is consistent in all methods that take object name(s) as input. In this case, it is suggested to directly use object ID instead of name.

Note that case-insensitive matching is performed for object names, which means that "rOoF" is equivalent to "roof". This behavior is consistent in all methods that take object name(s) as input.

Returns

A named list of IdfObject objects.

Examples

\dontrun{
# get objects whose IDs are 3 and 10
idf$objects(c(3,10))

# get objects whose names are "Simple One Zone (Wireframe DXF)" and "ZONE ONE"
# NOTE: object name matching is case-insensitive
idf$objects(c("Simple One Zone (Wireframe DXF)", "zone one"))
}


Method object_unique()

Extract the IdfObject in class with unique-object attribute.

Usage

Idf$object_unique(class)

Arguments

class

A single string of valid class name for current Idf object.

Details

For each version of an Idf object, the corresponding underlying Idd describe how many objects can be defined in each class. Classes that have unique-object attribute can only hold a single object, e.g. Version, SimulationControl and etc. $object_unique() can be used to directly return the IdfObject in one unique-object class. An error will be issued if there are multiple objects in that class or input class is not an unique-object class. This makes sure that $object_unique() always returns a single IdfObject.

Idf class also provides custom S3 method of $ and [[ to make it more convenient to get the IdfObject in unique-object class. Basically, idf$ClassName and idf[["ClassName"]], where ClassName is a single valid class name, is equivalent to idf$object_unique(ClassName) if ClassName is an unique-object class. For convenience, underscore-style names are allowed when using $, e.g. Site_Location is equivalent to Site:Location. For instance, idf$Site_Location and also idf[["Site_Location"]] will both return the IdfObjects in Site:Location class. Note that unlike $object_unique(), idf$ClassName and idf[["ClassName"]] will directly return NULL instead of giving an error when ClassName is not a valid class name in current Idf object. This makes it possible to use is.null(idf$ClassName) to check if ClassName is a valid class or not.

Returns

An IdfObject object.

Examples

\dontrun{
# get the SimulationColtrol object
idf$object_unique("SimulationControl")

# S3 "[[" and "$" can also be used
idf$SimulationControl
idf[["SimulationControl"]]
}


Method objects_in_class()

Extract all IdfObject objects in one class.

Usage

Idf$objects_in_class(class)

Arguments

class

A single string of valid class name for current Idf object.

Details

$objects_in_class() returns a named list of all IdfObject objects in specified class. The returned list is named using object names.

Idf class also provides custom S3 method of $ and [[ to make it more convenient to get all IdfObject objects in one class. Basically, idf$ClassName and idf[["ClassName"]], where ClassName is a single valid class name, is equivalent to idf$objects_in_class(ClassName) if ClassName is not an unique-object class. For convenience, underscore-style names are allowed, e.g. BuildingSurface_Detailed is equivalent to BuildingSurface:Detailed when using $. For instance, idf$BuildingSurface_Detailed and also idf[["BuildingSurface:Detailed"]] will both return all IdfObject objects in BuildingSurface:Detailed class. Note that unlike $objects_in_class(), idf$ClassName and idf[["ClassName"]] will directly return NULL instead of giving an error when ClassName is not a valid class name in current Idf object. This makes it possible to use is.null(idf$ClassName) to check if ClassName is a valid class or not.

Returns

A named list of IdfObject objects.

Examples

\dontrun{
# get all objects in Zone class
idf$objects_in_class("Zone")

# S3 "[[" and "$" can also be used
idf$Zone
idf[["Zone"]]
}


Method objects_in_group()

Extract all IdfObject objects in one group.

Usage

Idf$objects_in_group(group)

Arguments

group

A single string of valid group name for current Idf object.

Details

$objects_in_group() returns a named list of all IdfObject objects in specified group. The returned list is named using object names.

Returns

A named list of IdfObject objects.

Examples

\dontrun{
# get all objects in Schedules group
idf$objects_in_group("Schedules")
}


Method object_relation()

Extract the relationship between object field values.

Usage

Idf$object_relation(
  which,
  direction = c("all", "ref_to", "ref_by", "node"),
  object = NULL,
  class = NULL,
  group = NULL,
  depth = 0L,
  keep = FALSE,
  class_ref = c("both", "none", "all")
)

Arguments

which

A single integer specifying object ID or a single string specifying object name.

direction

The relation direction to extract. Should be either "all", "ref_to", "ref_by" and "node".

object

A character vector of object names or an integer vector of object IDs used for searching relations. Default: NULL.

class

A character vector of class names used for searching relations. Default: NULL.

group

A character vector of group names used for searching relations. Default: NULL.

depth

If > 0, the relation is searched recursively. A simple example of recursive reference: one material named mat is referred by a construction named const, and const is also referred by a surface named surf. If NULL, all possible recursive relations are returned. Default: 0.

keep

If TRUE, all fields of specified object are returned regardless they have any relations with other objects or not. If FALSE, only fields in specified object that have relations with other objects are returned. Default: FALSE.

class_ref

Specify how to handle class-name-references. Class name references refer to references in like field Component 1 Object Type in Branch objects. Their value refers to other many class names of objects, instaed of refering to specific field values. There are 3 options in total, i.e. "none", "both" and "all", with "both" being the default. * "none": just ignore class-name-references. It is a reasonable option, as for most cases, class-name-references always come along with field value references. Ignoring class-name-references will not impact the most part of the relation structure. * "both": only include class-name-references if this object also reference field values of the same one. For example, if the value of field Component 1 Object Type is Coil:Heating:Water, only the object that is referenced in the next field Component 1 Name is treated as referenced by Component 1 Object Type. This is the default option. * "all": include all class-name-references. For example, if the value of field Component 1 Object Type is Coil:Heating:Water, all objects in Coil:Heating:Water will be treated as referenced by that field. This is the most aggressive option.

Details

Many fields in Idd can be referred by others. For example, the Outside Layer and other fields in Construction class refer to the Name field in Material class and other material related classes. Here it means that the Outside Layer field refers to the Name field and the Name field is referred by the Outside Layer. In EnergyPlus, there is also a special type of field called Node, which together with Branch, BranchList and other classes define the topography of the HVAC connections. A outlet node of a component can be referred by another component as its inlet node, but can also exists independently, such as zone air node.

$object_relation() provides a simple interface to get this kind of relation. It takes a single object ID or name and also a relation direction, and returns an IdfRelation object which contains data presenting such relation above. For instance, if model$object_relation("WALL-1", "ref_to") gives results below:

-- Refer to Others ------------------------
  Class: <Construction>
  \- Object [ID:2] <WALL-1>
     \- 2: "WD01";        !- Outside Layer
        v~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        \- Class: <Material>
           \- Object [ID:1] <WD01>
              \- 1: "WD01";        !- Name

This means that the value "WD01" of Outside Layer in a construction named WALL-1 refers to a material named WD01. All those objects can be further easily extracted using $objects_in_relation() method described below.

Returns

An IdfRelation object, which is a list of 3 data.table::data.table()s named ref_to, ref_by and node. Each data.table::data.table() contains 24 columns.

Examples

\dontrun{
# check each layer's reference of a construction named FLOOR
idf$object_relation("floor", "ref_to")

# check where is this construction being used
idf$object_relation("floor", "ref_by")
}


Method objects_in_relation()

Extract multiple IdfObject objects referencing each others.

Usage

Idf$objects_in_relation(
  which,
  direction = c("ref_to", "ref_by", "node"),
  object = NULL,
  class = NULL,
  group = NULL,
  depth = 0L,
  class_ref = c("both", "none", "all")
)

Arguments

which

A single integer specifying object ID or a single string specifying object name.

direction

The relation direction to extract. Should be one of "ref_to", "ref_by" or "node".

object

A character vector of object names or an integer vector of object IDs used for searching relations. Default: NULL.

class

A character vector of valid class names in the underlying Idd. It is used to restrict the classes to be returned. If NULL, all possible classes are considered and corresponding IdfObject objects are returned if relationships are found. Default: NULL.

group

A character vector of valid group names in the underlying Idd. It is used to restrict the groups to be returned. If NULL, all possible groups are considered and corresponding IdfObject objects are returned if relationships are found. Default: NULL.

depth

If > 0, the relation is searched recursively. A simple example of recursive reference: one material named mat is referred by a construction named const, and const is also referred by a surface named surf. If NULL, all possible recursive relations are returned. Default: 0.

class_ref

Specify how to handle class-name-references. Class name references refer to references in like field Component 1 Object Type in Branch objects. Their value refers to other many class names of objects, instaed of refering to specific field values. There are 3 options in total, i.e. "none", "both" and "all", with "both" being the default. * "none": just ignore class-name-references. It is a reasonable option, as for most cases, class-name-references always come along with field value references. Ignoring class-name-references will not impact the most part of the relation structure. * "both": only include class-name-references if this object also reference field values of the same one. For example, if the value of field Component 1 Object Type is Coil:Heating:Water, only the object that is referenced in the next field Component 1 Name is treated as referenced by Component 1 Object Type. This is the default option. * "all": include all class-name-references. For example, if the value of field Component 1 Object Type is Coil:Heating:Water, all objects in Coil:Heating:Water will be treated as referenced by that field. This is the most aggressive option.

Details

$objects_in_relation() returns a named list of IdfObject objects that have specified relationship with given object. The first element of returned list is always the specified object itself. If that object does not have specified relationship with other objects in specified class, a list that only contains specified object itself is returned.

For instance, assuming that const is a valid object name in Construction class, idf$objects_in_relation("const", "ref_by", "BuildingSurface:Detailed") will return a named list of an IdfObject object named const and also all other IdfObject objects in BuildingSurface:Detailed class that refer to field values in const. Similarly, idf$objects_in_relation("const", "ref_to", "Material") will return a named list of an IdfObject object named const and also all other IdfObject objects in Material class that const refers to. This makes it easy to directly extract groups of related objects and then use $insert() method or other methods described below to insert them or extract data.

There are lots of recursive references in a model. For instance, a material can be referred by a construction, that construction can be referred by a building surface, and that building surface can be referred by a window on that surface. These objects related recursively can be extracted by setting recursive to TRUE.

Returns

An named list of IdfObject objects.

Examples

\dontrun{
# get a construction named FLOOR and all materials it uses
idf$objects_in_relation("floor", "ref_to")

# get a construction named FLOOR and all surfaces that uses it
idf$objects_in_relation("floor", "ref_by", "BuildingSurface:Detailed")
}


Method search_object()

Extract multiple IdfObject objects using regular expression on names.

Usage

Idf$search_object(
  pattern,
  class = NULL,
  ignore.case = FALSE,
  perl = FALSE,
  fixed = FALSE,
  useBytes = FALSE
)

Arguments

pattern, ignore.case, perl, fixed, useBytes

All are directly passed to base::grepl.

class

A character vector of valid class names in the underlying Idd. It is used to restrict the classes to be returned. If NULL, all possible classes are considered and corresponding IdfObject objects are returned if pattern is met Default: NULL.

Details

$search_object() returns a named list of IdfObject objects whose names meet the given regular expression in specified classes.

Returns

A named list of IdfObject objects.

Examples

\dontrun{
# get all objects whose names contains "floor"
idf$search_object("floor", ignore.case = TRUE)
}


Method dup()

Duplicate existing objects.

Usage

Idf$dup(...)

Arguments

...

Integer vectors of object IDs and character vectors of object names. If input is named, its name will be used as the name of newly created objects.

Details

$dup() takes integer vectors of object IDs and character vectors of object names, duplicates objects specified, and returns a list of newly created IdfObject objects. The names of input are used as new names for created IdfObjects. If input is not named, new names are the names of duplicated objects with a suffix "_1", "_2" and etc, depending on how many times that object has been duplicated. Note an error will be issued if trying to assign a new name to an object which belongs to a class that does not have name attribute.

Assigning newly added objects with an existing name in current Idf object is prohibited if current validation level includes object name conflicting checking. For details, please see level_checks().

Returns

A named list of IdfObject objects.

Examples

\dontrun{
# duplicate an object named "FLOOR"
idf$dup("floor") # New object name 'FLOOR_1' is auto-generated

# duplicate that object again by specifing object ID
idf$dup(16) # New object name 'FLOOR_2' is auto-generated

# duplicate that object two times and giving new names
idf$dup(new_floor = "floor", new_floor2 = 16)

# duplicate that object multiple times using variable inputs
floors_1 <- c(new_floor3 = "floor", new_floor4 = "floor")
floors_2 <- setNames(rep(16, 5), paste0("flr", 1:5))
idf$dup(floors_1, floors_2)
}


Method add()

Add new objects.

Usage

Idf$add(..., .default = TRUE, .all = FALSE)

Arguments

...

Lists of object definitions. Each list should be named with a valid class name. There is a special element .comment in each list, which will be used as the comments of newly added object.

.default

If TRUE, default values are used for those blank fields if possible. If FALSE, empty fields are kept blank. Default: TRUE.

.all

If TRUE, all fields are added. If FALSE, only minimum required fields are added. Default: FALSE.

Details

$add() takes new object definitions in list format, adds corresponding objects in specified classes, returns a list of newly added IdfObject objects. The returned list will be named using newly added object names. Every list should be named using a valid class name. Underscore-style class name is allowed for class name. Names in each list element are treated as field names. Values without names will be inserted according to their position. There is a special element named .comment in each list, which will be used as the comments of newly added object.

Empty objects can be added using an empty list, e.g. idf$add(Building = list()). All empty fields will be filled with corresponding default value if .default is TRUE, leaving other fields as blanks. However, adding blank objects may not be allowed if there are required fields in that class and current validate level includes missing-required-field checking. For what kind of validation components will be performed during adding new objects, please see level_checks().

Field name matching is case-insensitive. For convenience, underscore-style field names are also allowed, e.g. eNd_MoNtH is equivalent to End Month. This behavior is consistent among all methods that take field names as input.

There is no need to give all field values if only specific fields are interested, as long as other fields are not required. For example, to define a new object in RunPeriod class, the following is enough (at least for EnergyPlus v8.8):

idf$add(
    RunPeriod = list(
        "my run period",
        begin_month = 1, begin_day_of_month = 1,
        end_month = 1, end_day_of_month = 31
    ),
    .default = TRUE
)

If not all field names are given, positions of those values without field names are determined after those values with names. E.g. in idf$add(Construction = list("out_layer", name = "name")), "out_layer" will be treated as the value for field Outside Layer in Construction class, since the value for field Name has been specified using explicit field name.

Returns

A named list of IdfObject objects.

Examples

\dontrun{
# add a new Building object with all default values
empty <- empty_idf(8.8) # create an empty Idf
empty$add(Building = list())

# add a new Building object with all default values and comments
empty <- empty_idf(8.8) # create an empty Idf
empty$add(Building = list(.comment = c("this is", "a new building")))

# add a new RunPeriod object with all possible fields
empty <- empty_idf(8.8) # create an empty Idf
empty$add(Building = list(), RunPeriod = list("rp", 1, 1, 1, 31), .all = TRUE)

# add objects using variable inputs
empty <- empty_idf(8.8) # create an empty Idf
objs1 <- list(Schedule_Constant = list("const"), Building = list())
rp <- list(RunPeriod = list("rp", 2, 1, 2, 28))
empty$add(objs1, rp)
}


Method set()

Set values of existing objects.

Usage

Idf$set(..., .default = TRUE, .empty = FALSE)

Arguments

...

Lists of object definitions. Each list should be named with a valid object name or ID denoted in style ..ID. There is a special element .comment in each list, which will be used as new comments of modified object, overwriting existing comments if any.

.default

If TRUE, default values are used for those blank fields if possible. If FALSE, empty fields are kept blank. Default: TRUE.

.empty

If TRUE, trailing empty fields are kept. Default: FALSE.

Details

$set() takes new field value definitions in list format, sets new values for fields in objects specified, and returns a list of modified IdfObjects. The returned list will be named using names of modified objects. Every list in $set() should be named with a valid object name. Object ID can also be used but have to be combined with prevailing two periods .., e.g. ..10 indicates the object with ID 10. Similar to $add(), a special element .comment in each list will be used as the new comments for modified object, overwriting the old ones. Names in list element are treated as field names.

There is two special syntax in $set(), which is inspired by the data.table package:

  • class := list(field = value): Note the use of := instead of =. The main difference is that, unlike =, the left hand side of := should be a valid class name in current Idf object. It will set the field of all objects in specified class to specified value.

  • .(object, object) := list(field = value): Simimar like above, but note the use of .() in the left hand side. You can put multiple object ID or names in .(). It will set the field of all specified objects to specified value.

You can delete a field by assigning NULL to it, e.g. list(fld = NULL) means to delete the value of field fld, in the condition that .default is FALSE, fld is not a required field and the index of fld is larger than the number minimum fields required for that class. If those conditions are not required, fld will be left as blank if .default is FALSE or filled with default value if .default is TRUE.

By default, trailing empty fields that are not required will be removed and only minimum required fields are kept. For example, if rp is an object in RunPeriod class in an Idf of version 8.8, by default empty field with index larger than 11 will be removed since they are all non-required fields. You can keep the trailing empty fields by setting .empty to TRUE.

New fields that currently do not exist in that object can also be set. They will be automatically added on the fly.

Field name matching is case-insensitive. For convenience, underscore-style field names are also allowed, e.g. eNd_MoNtH is equivalent to End Month.

If not all field names are given, positions of those values without field names are determined after those values with names. E.g. in idf$set(floor = list("out_layer", name = "name")), "out_layer" will be treated as the value for field Outside Layer in an object named floor, since the value for field Name has been specified using explicit field name.

Returns

A named list of IdfObject objects.

Examples

\dontrun{
# modify an object by name (case-insensitive)
idf$set(r13layer = list(roughness = "smooth"))

# modify an object by ID
idf$set(..12 = list(roughness = "rough"))

# overwrite existing object comments
idf$set(r13layer = list(.comment = c("New comment")))

# assign default values to fields
idf$set(r13layer = list(solar_absorptance = NULL), .default = TRUE)

# set field values to blanks
idf$set(r13layer = list(solar_absorptance = NULL), .default = FALSE)

# set field values to blank and delete trailing fields
idf$set(r13layer = list(visible_absorptance = NULL), .default = FALSE)

# set field values to blank and keep blank fields
idf$set(r13layer = list(visible_absorptance = NULL), .default = FALSE, .empty = TRUE)

# set all fields in one class
idf$set(Material_NoMass := list(visible_absorptance = 0.9))

# set multiple objects in one class
idf$set(.("r13layer", "r31layer") := list(solar_absorptance = 0.8))
# above is equivalent to
idf$set(r13layer = list(solar_absorptance = 0.8),
        r31layer = list(solar_absorptance = 0.8)
)

# use variable input
sets <- list(r13layer = list(roughness = "smooth"))
idf$set(sets)
}


Method del()

Delete existing objects

Usage

Idf$del(
  ...,
  .ref_by = FALSE,
  .ref_to = FALSE,
  .recursive = FALSE,
  .force = FALSE
)

Arguments

...

integer vectors of object IDs and character vectors of object names in current Idf object.

.ref_by

If TRUE, objects whose fields refer to input objects will also be deleted. Default: FALSE.

.ref_to

If TRUE, objects whose fields are referred by input objects will also be deleted. Default: FALSE.

.recursive

If TRUE, relation searching is performed recursively, in case that objects whose fields refer to target object are also referred by another object, and also objects whose fields are referred by target object are also referred by another object. Default: FALSE.

.force

If TRUE, objects are deleted even if they are referred by other objects.

Details

$del() takes integer vectors of object IDs and character vectors of object names, and deletes objects specified.

If current validate level includes reference checking, objects will not be allowed to be deleted if they are referred by other objects. For example, an error will be issued if you want to delete one material that is referred by other constructions, because doing so will result in invalid field value references. You may bypass this if you really want to by setting .force to TRUE.

When .ref_by or .ref_to is TRUE, objects will be deleted only when they have and only have relation with input objects but not any other objects. For example, a construction const consist of 4 different materials. If .ref_to is TRUE, that 4 materials will only be deleted when they are only used in const, but not used in any other objects.

There are recursively reference relations in Idf object. For example, one material's name is referenced by one construction, and that construction's name can be referred by another surface. You can delete all of them by setting .recursive to TRUE.

If .ref_by is TRUE, objects whose fields refer to input objects will also be deleted.

IF .ref_to is TRUE, objects whose fields are referred by input objects will also be deleted.

Returns

The modified Idf object itself, invisibly.

Examples

\dontrun{
# delete objects using names
idf$object("Fraction") # ScheduleTypeLimits
idf$del("Fraction")

# delete objects using IDs
idf$objects(c(39, 40)) # Output:Variable
idf$del(39, 40)

# cannot delete objects that are referred by others
level_checks()$reference # reference-checking is enable by default
idf$del("r13layer") # error

# force to delete objects even thay are referred by others
idf$del("r13layer", .force = TRUE)

# delete objects and also objects that refer to them
idf$del("r31layer", .ref_by = TRUE) # Construction 'ROOF31' will be kept

# delete objects and also objects that they refer to
idf$del("extlights", .ref_to = TRUE) # Schedule 'AlwaysOn' will be kept

# delete objects and also other objects that refer to them recursively
idf$del("roof31", .ref_by = TRUE, .recursive = TRUE)

# delete objects using variable inputs
ids <- idf$object_id("Output:Variable", simplify = TRUE)
idf$del(ids)
}


Method purge()

Purge resource objects that are not used

Usage

Idf$purge(object = NULL, class = NULL, group = NULL)

Arguments

object

an integer vector of object IDs or a character vector of object names in current Idf object. Default: NULL.

class

A character vector of valid class names in current Idf object. Default: NULL.

group

A character vector of valid group names in current Idf object. Default: NULL.

Details

$purge() takes an integer vector of object IDs or a character vectors of object names, and deletes resource objects specified that are not used by any objects.

Here resource objects indicate all objects that can be referenced by other objects, e.g. all schedules. $purge() will ignore any inputs that are not resources. If inputs contain objects from multiple classes, references among them are also taken into account, which means purging is performed hierarchically. If both materials and constructions are specified, the latter will be purged first, because it is possible that input constructions reference input materials.

Returns

The modified Idf object itself, invisibly.

Examples

\dontrun{
# purge unused "Fraction" schedule type
idf$purge("Fraction") # ScheduleTypeLimits

# purge all unused schedule types
idf$purge(class = "ScheduleTypeLimits")

# purge all unused schedule related objects
idf$purge(group = "Schedules")
}


Method duplicated()

Determine duplicated objects

Usage

Idf$duplicated(object = NULL, class = NULL, group = NULL)

Arguments

object

an integer vector of object IDs or a character vector of object names in current Idf object. Default: NULL.

class

A character vector of valid class names in current Idf object. Default: NULL.

group

A character vector of valid group names in current Idf object. Default: NULL.If all object, class and group are NULL, duplication checking is performed on the whole Idf.

Details

$duplicated() takes an integer vector of object IDs or a character vectors of object names, and returns a data.table::data.table() to show whether input objects contain duplications or not.

Here duplicated objects refer to objects whose field values are the same except the names. Object comments are just ignored during comparison.

Returns

A data.table::data.table() of 4 columns:

  • class: Character. Names of classes that input objects belong to

  • id: Integer. Input object IDs

  • name: Character. Input object names

  • duplicated: Logical. Whether this object is a duplication or not

Examples

\dontrun{
# check if there are any duplications in the Idf
idf$duplicated(class = "ScheduleTypeLimits")

# check if there are any duplications in the schedule types
idf$duplicated(class = "ScheduleTypeLimits")

# check if there are any duplications in the schedule groups and
# material class
idf$duplicated(class = "Material", group = "Schedules")
}


Method unique()

Remove duplicated objects

Usage

Idf$unique(object = NULL, class = NULL, group = NULL)

Arguments

object

an integer vector of object IDs or a character vector of object names in current Idf object. Default: NULL.

class

A character vector of valid class names in current Idf object. Default: NULL.

group

A character vector of valid group names in current Idf object. Default: NULL.If all object, class and group are NULL, duplication checking is performed on the whole Idf.

Details

$unique() takes an integer vector of object IDs or a character vectors of object names, and remove duplicated objects.

Here duplicated objects refer to objects whose field values are the same except the names. Object comments are just ignored during comparison.

$unique() will only keep the first unique object and remove all redundant objects. Value referencing the redundant objects will be redirected into the unique object.

Returns

The modified Idf object itself, invisibly.

Examples

\dontrun{
# remove duplications in the Idf
idf$unique(class = "ScheduleTypeLimits")

# remove duplications in the schedule types
idf$unique(class = "ScheduleTypeLimits")

# remove duplications in the schedule groups and material class
idf$unique(class = "Material", group = "Schedules")
}


Method rename()

Rename existing objects

Usage

Idf$rename(...)

Arguments

...

Integer vectors of valid object IDs and character vectors of valid object names in current Idf object. Each element should be named. Names of input vectors are used as the new object names

Details

$rename() takes named character vectors of object names and named integer vectors of object IDs, renames specified objects to names of input vectors and returns a list of renamed IdfObjects. The returned list will be named using names of modified objects. An error will be issued if trying to "rename" an object which does not have name attribute. When renaming an object that is referred by other objects, corresponding fields that refer to that object's name will also be changed accordingly.

Returns

A named list of renamed IdfObject objects.

Examples

\dontrun{
idf$objects(c("on/off", "test 352a"))
idf$rename(on_off = "on/off", test_352a = 51)
}


Method insert()

Insert new objects from IdfObjects

Usage

Idf$insert(..., .unique = TRUE, .empty = FALSE)

Arguments

...

IdfObjects or lists of IdfObjects from same version as current Idf object.

.unique

If there are duplications in input IdfObjects or there is same object in current Idf object, duplications in input are removed. Default: TRUE.

.empty

If TRUE, trailing empty fields are kept. Default: FALSE.

Details

$insert() takes IdfObjects or lists of IdfObjects as input, inserts them into current Idf objects, and returns a list of inserted IdfObjects. The returned list will be named using names of inserted objects.

$insert() is quite useful to insert objects from other Idf objects. However, you cannot insert an IdfObject which comes from a different version than current Idf object.

$insert() will skip IdfObjects that have exactly same fields in current Idf object. If input IdfObject has the same name as one IdfObject in current Idf object but field values are not equal, an error will be issued if current validate level includes conflicted-name checking.

By default, trailing empty fields that are not required will be removed and only minimum required fields are kept. You can keep the trailing empty fields by setting .empty to TRUE.

Returns

A named list of inserted IdfObject objects.

Examples

\dontrun{
# insert all material from another IDF
path_idf2 <- file.path(eplus_config(8.8)$dir, "ExampleFiles/5ZoneTDV.idf")
idf2 <- Idf$new(path_idf2)
idf$insert(idf2$Material)

# insert objects from same Idf is equivalent to using Idf$dup()
idf$insert(idf$SizingPeriod_DesignDay)
}


Method load()

Load new objects from characters or data.frames

Usage

Idf$load(..., .unique = TRUE, .default = TRUE, .empty = FALSE)

Arguments

...

Character vectors or data.frames of object definitions.

.unique

If TRUE, and there are duplications in input IdfObjects or there is same object in current Idf object, duplications in input are removed. Default: TRUE.

.default

If TRUE, default values are filled for those blank fields if possible. Default: TRUE.

.empty

If TRUE, trailing empty fields are kept. Default: FALSE.

Details

$load() is similar to $insert(), except it takes directly character vectors or data.frames as IdfObject definitions, insert corresponding objects into current Idf object and returns a named list of newly added IdfObjects. The returned list will be named using names of added objects. This makes it easy to create objects using the output from$to_string() and $to_table() method from Idd, IddObject, also from Idf, and IdfObject, class.

For object definitions in character vector format, they follow the same rules as a normal IDF file:

  • Each object starts with a class name and a comma (,);

  • Separates each values with a comma (,);

  • Ends an object with a semicolon (;) for the last value.

Each character vector can contain:

You can also provide an option header to indicate if input objects are presented in IP units, using !-Option ViewInIPunits. If this header does not exist, then all values are treated as in SI units.

For object definitions in data.frame format, it is highly recommended to use $to_table() method in Idd, Idd, IddObject, IddObject, Idf, and IdfObject, class to create an acceptable data.frame template. A valid definition requires at least three columns described below. Note that column order does not matter.

  • class:Character type. Valid class names in the underlying Idd object.

  • index:Integer type. Valid field indices for each class.

  • value:Character type or list type. Value for each field to be added.

    • If character type, usually when string_value is TRUE in method $to_table() in Idf and IdfObject class. Note that each value should be given as a string even if the corresponding field is a numeric type.

    • If list type, usually when string_value is set to FALSE in method$to_table() in Idf and IdfObject class. Each value should have the right type as the corresponding field definition. Otherwise, errors will be issued if current validation level includes invalid-type checking.

  • id: Optional. Integer type. If input data.frame includes multiple object definitions in a same class, values in id column will be used to distinguish each definition. If id column does not exists, it assumes that each definition is separated by class column and will issue an error if there is any duplication in the index column.

Note that $load() assumes all definitions are from the same version as current Idf object. If input definition is from different version, parsing error may occur.

By default, trailing empty fields that are not required will be removed and only minimum required fields are kept. You can keep the trailing empty fields by setting .empty to TRUE.

Returns

A named list of loaded IdfObject objects.

Examples

\dontrun{
# load objects from character vectors
idf$load(
    c("Material,",
      "    mat,                     !- Name",
      "    MediumSmooth,            !- Roughness",
      "    0.667,                   !- Thickness {m}",
      "    0.115,                   !- Conductivity {W/m-K}",
      "    513,                     !- Density {kg/m3}",
      "    1381;                    !- Specific Heat {J/kg-K}"),

    "Construction, const, mat;"
)

# load objects from data.frame definitions
dt <- idf$to_table(class = "Material")
dt[field == "Name", value := paste(value, 1)]
dt[field == "Thickness", value := "0.5"]
idf$load(dt)

# by default, duplications are removed
idf$load(idf$to_table(class = "Material"))

# keep empty fields as they are
idf$load("Material, mat1, smooth, 0.5, 0.2, 500, 1000,,, 0.5;", .default = FALSE)

# keep trailing empty fields
idf$load("Material, mat2, smooth, 0.5, 0.2, 500, 1000,,,;",
    .default = FALSE, .empty = TRUE
)
}


Method update()

Update existing object values from characters or data.frames

Usage

Idf$update(..., .default = TRUE, .empty = FALSE)

Arguments

...

Character vectors or data.frames of object definitions.

.default

If TRUE, default values are filled for those blank fields if possible. Default: TRUE.

.empty

If TRUE, trailing empty fields are kept. Default: FALSE.

Details

$update() is similar to $set(), except it takes directly character vectors or data.frames as IdfObject definitions, updates new values for fields in objects specified, and returns a named list of modified IdfObjects. The returned list will be named using names of modified objects. This makes it easy to update object values using the output from $to_string() and $to_table method from Idf, and IdfObject, class.

The format of object definitions is similar to $load().

For object definitions in character vector format, object names are used to locate which objects to update. Objects that have name attribute should have valid names. This means that there is no way to update object names using character vector format, but this can be achieved using data.frame format as it uses object IDs instead of object names to locate objects. The format of acceptable characters follows the same rules as a normal IDF file:

  • Each object starts with a class name and a comma (,);

  • Separates each values with a comma (,);

  • Ends an object with a semicolon (;) for the last value.

Each character vector can contain:

You can also provide an option header to indicate if input objects are presented in IP units, using !-Option ViewInIPunits. If this header does not exist, then all values are treated as in SI units.

For object definitions in data.frame format, it is highly recommended to use $to_table() method in Idf, and IdfObject, class to create an acceptable data.frame template. A valid definition requires three columns described below. Note that column order does not matter.

  • id: Integer type. Valid IDs of objects to update.

  • index:Integer type. Valid field indices for each object.

  • value:Character type or list type. Value for each field to be added.

    • If character type, usually when string_value is TRUE in method $to_table() in Idf and IdfObject class. Note that each value should be given as a string even if the corresponding field is a numeric type.

    • If list type, usually when string_value is set to FALSE in method $to_table() in Idf and IdfObject class. Each value should have the right type as the corresponding field definition. Otherwise, errors will be issued if current validation level includes invalid-type checking.

Note that $update() assumes all definitions are from the same version as current Idf object. If input definition is from different version, parsing error may occur.

By default, trailing empty fields that are not required will be removed and only minimum required fields are kept. You can keep the trailing empty fields by setting .empty to TRUE.

Returns

A named list of updated IdfObject objects.

Examples

\dontrun{
# update objects from string definitions:
str <- idf$to_string("zone one", header = FALSE, format = "new_top")
str[8] <- "2," # Multiplier
idf$update(str)

# update objects from data.frame definitions:
dt <- idf$to_table("zone one")
dt[field == "Multiplier", value := "1"]
idf$update(dt)
}


Method paste()

Paste new objects from IDF Editor

Usage

Idf$paste(in_ip = FALSE, ver = NULL, unique = TRUE, empty = FALSE)

Arguments

in_ip

Set to TRUE if the IDF file is open with Inch-Pound view option toggled. Numeric values will automatically converted to SI units if necessary. Default: FALSE.

ver

The version of IDF file open by IDF Editor, e.g. 8.6, "8.8.0". If NULL, assume that the file has the same version as current Idf object. Default: NULL.

unique

If TRUE, and there are duplications in copied objects from IDF Editor or there is same object in current Idf, duplications in input are removed. Default: TRUE.

empty

If TRUE, trailing empty fields are kept. Default: FALSE.

Details

$paste() reads the contents (from clipboard) of copied objects from IDF Editor (after hitting Copy Obj button), inserts corresponding objects into current Idf object and returns a named list of newly added IdfObjects. The returned list will be named using names of added objects. As IDF Editor is only available on Windows platform, $paste() only works on Windows too.

There is no version data copied to the clipboard when copying objects in IDF Editor. $paste() assumes the file open in IDF Editor has the same version as current Idf object. This may not be always true. Please check the version before running $paste(), or explicitly specify the version of file opened by IDF Editor using ver parameter. Parsing error may occur if there is a version mismatch.

By default, trailing empty fields that are not required will be removed and only minimum required fields are kept. You can keep the trailing empty fields by setting .empty to TRUE.

Returns

A named list of loaded IdfObject objects.


Method search_value()

Search objects by field values using regular expression

Usage

Idf$search_value(
  pattern,
  class = NULL,
  ignore.case = FALSE,
  perl = FALSE,
  fixed = FALSE,
  useBytes = FALSE
)

Arguments

pattern, ignore.case, perl, fixed, useBytes

All of them are directly passed to base::grepl and base::gsub.

class

A character vector of invalid class names in current Idf object to search for values. If NULL, all classes are used. Default: NULL.

Details

$search_value() returns a list of IdfObjects that contain values which match the given pattern. If no matched found, NULL is returned invisibly. The returned list will be named using names of matched objects.

Note that during matching, all values are treated as characters, including numeric values.

Returns

A named list of IdfObject objects.

Examples

\dontrun{
# search values that contains "floor"
idf$search_value("floor", ignore.case = TRUE)

# search values that contains "floor" in class Construction
idf$search_value("floor", "Construction", ignore.case = TRUE)
}


Method replace_value()

Replace object field values using regular expression

Usage

Idf$replace_value(
  pattern,
  replacement,
  class = NULL,
  ignore.case = FALSE,
  perl = FALSE,
  fixed = FALSE,
  useBytes = FALSE
)

Arguments

pattern, replacement, ignore.case, perl, fixed, useBytes

All of them are directly passed to base::grepl and base::gsub.

class

A character vector of invalid class names in current Idf object to search for values. If NULL, all classes are used. Default: NULL.

Details

$replace_value() returns a list of IdfObjects whose values have been replaced using given pattern. If no matched found, NULL is returned invisibly. The returned list will be named using names of matched objects.

Note that during matching, all values are treated as characters, including numeric values.

Modifying object values using regular expression is not recommended. Consider to use $set() and $update() if possible. Validation rules also apply during replacing.

Returns

A named list of IdfObject objects.

Examples

\dontrun{
# search values that contains "win" and replace them with "windows"
idf$replace_value("win", "windows")
}


Method validate()

Check possible object field value errors

Usage

Idf$validate(level = eplusr_option("validate_level"))

Arguments

level

One of "none", "draft", "final" or a list of 10 elements with same format as custom_validate() output.

Details

$validate() checks if there are errors in current Idf object under specified validation level and returns an IdfValidity object. $validate() is useful to help avoid some common errors before running the model. By default, validation is performed when calling all methods that modify objects, e.g. $dup() $add(), $set(), $del(), and etc.

In total, there are 10 different validate checking components:

  • required_object: Check if required objects are missing in current Idf.

  • unique_object: Check if there are multiple objects in one unique-object class. An unique-object class means that there should be at most only one object existing in that class.

  • unique_name: Check if all objects in each class have unique names.

  • extensible: Check if all fields in an extensible group have values. An extensible group is a set of fields that should be treated as a whole, such like the X, Y and Z vertices of a building surfaces. An extensible group should be added or deleted together. extensible component checks if there are some, but not all, fields in an extensible group are empty.

  • required_field: Check if all required fields have values.

  • auto_field: Check if all fields filled with value "Autosize" and "Autocalculate" are actual autosizable and autocalculatable fields or not.

  • type: Check if all fields have value types complied with their definitions, i.e. character, numeric and integer fields should be filled with corresponding type of values.

  • choice: Check if all choice fields are filled with valid choice values.

  • range: Check if all numeric fields have values within prescibed ranges.

  • reference: Check if all fields whose values refer to other fields are valid.

The level argument controls what checkings should be performed. level here is just a list of 10 element which specify the toggle status of each component. You can use helper custom_validate() to get that list and pass it directly to level.

There are 3 predefined validate level that indicates different combinations of checking components, i.e. none, draft and final. Basically, none level just does not perform any checkings; draft includes 5 components, i.e. auto_field, type, unique_name, choice and range; and final level includes all 10 components. You can always get what components each level contains using level_checks(). By default, the result from eplusr_option("validate_level") is passed to level. If not set, final level is used.

Underneath, an IdfValidity object which $validate() returns is a list of 13 element as shown below. Each element or several elements represents the results from a single validation checking component.

  • missing_object: Result of required_object checking.

  • duplicate_object: Result of unique_object checking.

  • conflict_name: Result of unique_name checking.

  • incomplete_extensible: Result of extensible checking.

  • missing_value: Result of required_field checking.

  • invalid_autosize: Result of auto_field checking for invalid Autosize field values.

  • invalid_autocalculate: Result of auto_field checking for invalid Autocalculate field values.

  • invalid_character: Result of type checking for invalid character field values.

  • invalid_numeric: Result of type checking for invalid numeric field values.

  • invalid_integer: Result of type checking for invalid integer field values.

  • invalid_choice: Result of choice checking.

  • invalid_range: Result of range checking.

  • invalid_reference: Result of reference checking.

Except missing_object, which is a character vector of class names that are missing, all other elements are data.table with 9 columns containing data of invalid field values:

  • object_id: IDs of objects that contain invalid values

  • object_name: names of objects that contain invalid values

  • class_id: indexes of classes that invalid objects belong to

  • class_name: names of classes that invalid objects belong to

  • field_id: indexes (at Idd level) of object fields that are invalid

  • field_index: indexes of object fields in corresponding that are invalid

  • field_name: names (without units) of object fields that are invalid

  • units: SI units of object fields that are invalid

  • ip_units: IP units of object fields that are invalid

  • type_enum: An integer vector indicates types of invalid fields

  • value_id: indexes (at Idf level) of object field values that are invalid

  • value_chr: values (converted to characters) of object fields that are invalid

  • value_num: values (converted to numbers in SI units) of object fields that are invalid

Knowing the internal structure of IdfValidity, it is easy to extract invalid IdfObjects you interested in. For example, you can get all IDs of objects that contain invalid value references using model$validate()$invalid_reference$object_id. Then using $set() method to correct them.

Different validate result examples are shown below:

  • No error is found:

    v No error found.
    

    Above result shows that there is no error found after conducting all validate checks in specified validate level.

  • Errors are found:

     x [2] Errors found during validation.
    =========================================================================
    
    -- [2] Invalid Autocalculate Field --------------------------------------
       Fields below cannot be `autocalculate`:
    
        Class: <AirTerminal:SingleDuct:VAV:Reheat>
        \- Object [ID:176] <SPACE5-1 VAV Reheat>
           +- 17: AUTOCALCULATE, !- Maximum Flow per Zone Floor Area During Reheat {m3/s-m2}
           \- 18: AUTOCALCULATE; !- Maximum Flow Fraction During Reheat
    

    Above result shows that after all validate components performed under current validate level, 2 invalid field values are found. All of them are in a object named SPACE5-1 VAV Reheat with ID 176. They are invalid because those two fields do not have an autocalculatable attribute but are given AUTOCALCULATE value. Knowing this info, one simple way to fix the error is to correct those two fields by doing:

    idf$set(..176 =
        list(`Maximum Flow per Zone Floor Area During Reheat` = "autosize",
             `Maximum Flow Fraction During Reheat` = "autosize"
        )
    )

Returns

An IdfValidity object.

Examples

\dontrun{
idf$validate()

# check at predefined validate level
idf$validate("none")
idf$validate("draft")
idf$validate("final")

# custom validate checking components
idf$validate(custom_validate(auto_field = TRUE, choice = TRUE))
}


Method is_valid()

Check if there is any error in current Idf

Usage

Idf$is_valid(level = eplusr_option("validate_level"))

Arguments

level

One of "none", "draft", "final" or a list of 10 elements with same format as custom_validate() output.

Details

$is_valid() checks if there are errors in current Idf object under specified validation level and returns TRUE or FALSE accordingly. For detailed description on validate checking, see $validate() documentation above.

Returns

A single logical value of TRUE or FALSE.

Examples

\dontrun{
idf$is_valid()

# check at predefined validate level
idf$is_valid("none")
idf$is_valid("draft")
idf$is_valid("final")

# custom validate checking components
idf$is_valid(custom_validate(auto_field = TRUE, choice = TRUE))
}


Method to_string()

Format Idf as a character vector

Usage

Idf$to_string(
  which = NULL,
  class = NULL,
  comment = TRUE,
  header = TRUE,
  format = eplusr_option("save_format"),
  leading = 4L,
  sep_at = 29L
)

Arguments

which

Either an integer vector of valid object IDs or a character vector of valid object names. If NULL, the whole Idf object is converted. Default: NULL.

class

A character vector of class names. If NULL, all classed in current Idf object is converted. Default: NULL.

comment

If FALSE, all comments will not be included. Default: TRUE.

header

If FALSE, the header will not be included. Default: TRUE.

format

Specific format used when formatting. Should be one of "asis", "sorted", "new_top", and "new_bot".

  • If "asis", Idf object will be formatted in the same way as it was when first read. If Idf object does not contain any format saving option, which is typically the case when the model was not saved using eplusr or IDFEditor, "sorted" will be used.

  • "sorted", "new_top" and "new_bot" are the same as the save options "Sorted", "Original with New at Top", and "Original with New at Bottom" in IDFEditor. Default: eplusr_option("save_format").

leading

Leading spaces added to each field. Default: 4L.

sep_at

The character width to separate value string and field string. Default: 29L which is the same as IDF Editor.

Details

$to_string() returns the text format of parts or whole Idf object.

Returns

A character vector.

Examples

\dontrun{
# get text format of the whole Idf
head(idf$to_string())

# get text format of the whole Idf, excluding the header and all comments
head(idf$to_string(comment = FALSE, header = FALSE))

# get text format of all objects in class Material
head(idf$to_string(class = "Material", comment = FALSE, header = FALSE))

# get text format of some objects
head(idf$to_string(c("floor", "zone one")))

# tweak output formatting
head(idf$to_string("floor", leading = 0, sep_at = 0))
}


Method to_table()

Format Idf as a data.frame

Usage

Idf$to_table(
  which = NULL,
  class = NULL,
  string_value = TRUE,
  unit = FALSE,
  wide = FALSE,
  align = FALSE,
  all = FALSE,
  group_ext = c("none", "group", "index"),
  force = FALSE
)

Arguments

which

Either an integer vector of valid object IDs or a character vector of valid object names. If NULL, the whole Idf object is converted. Default: NULL.

class

A character vector of class names. If NULL, all classed in current Idf object is converted. Default: NULL.

string_value

If TRUE, all field values are returned as character. If FALSE, value column in returned data.table is a list column with each value stored as corresponding type. Note that if the value of numeric field is set to "Autosize" or "Autocalculate", it is left as it is, leaving the returned type being a string instead of a number. Default: TRUE.

unit

Only applicable when string_value is FALSE. If TRUE, values of numeric fields are assigned with units using units::set_units() if applicable. Default: FALSE.

wide

Only applicable if target objects belong to a same class. If TRUE, a wide table will be returned, i.e. first three columns are always id, name and class, and then every field in a separate column. Note that this requires all objects specified must from the same class. Default: FALSE.

align

If TRUE, all objects in the same class will have the same field number. The number of fields is the same as the object that have the most fields among objects specified. Default: FALSE.

all

If TRUE, all available fields defined in IDD for the class that objects belong to will be returned. Default: FALSE.

group_ext

Should be one of "none", "group" or "index". If not "none", value column in returned data.table::data.table() will be converted into a list. If "group", values from extensible fields will be grouped by the extensible group they belong to. For example, coordinate values of each vertex in class BuildingSurface:Detailed will be put into a list. If "index", values from extensible fields will be grouped by the extensible field indice they belong to. For example, coordinate values of all x coordinates will be put into a list. If "none", nothing special will be done. Default: "none".

force

If TRUE, wide can be TRUE even though there are multiple classes in input. This can result in a data.table with lots of columns. But may be useful when you know that target classes have the exact same fields, e.g. Ceiling:Adiabatic and Floor:Adiabatic. Default: FALSE.

Details

$to_table() returns a data.table that contains core data of specified objects. The returned data.table has 6 columns:

  • id: Integer type. Object IDs.

  • name: Character type. Object names.

  • class: Character type. Current class name.

  • index: Integer type. Field indexes.

  • field: Character type. Field names.

  • value: Character type if string_value is TRUE or list type if string_value is FALSE or group_ext is not "none". Field values.

Note that when group_ext is not "none", index and field values will not match the original field indices and names. In this case, index will only indicate the indices of sequences. For field column, specifically:

  • When group_ext is "group", each field name in a extensible group will be abbreviated using abbreviate() with minlength being 10L and all abbreviated names will be separated by | and combined together. For example, field names in the extensible group (Vertex 1 X-coordinate, Vertex 1 Y-coordinate, Vertex 1 Z-coordinate) in class BuildiBuildingSurface:Detailed will be merged into one name Vrtx1X-crd|Vrtx1Y-crd|Vrtx1Z-crd.

  • When group_ext is "index", the extensible group indicator in field names will be removed. Take the same example as above, the resulting field names will be Vertex X-coordinate, Vertex Y-coordinate, and Vertex Z-coordinate.

Returns

A data.table with 6 columns (if wide is FALSE) or at least 6 columns (if wide is TRUE).

Examples

\dontrun{
# extract whole Idf data
idf$to_table()

# extract all data from class Material
idf$to_table(class = "Material")

# extract multiple object data
idf$to_table(c("FLOOR", "ZONE ONE"))

# keep value types and put actual values into a list column
idf$to_table(c("FLOOR", "ZONE ONE"), string_value = FALSE)$value

# add the unit to each value
idf$to_table(c("FLOOR", "ZONE ONE"), string_value = FALSE, unit = TRUE)

# get all possible fields
idf$to_table("ZONE ONE", all = TRUE)

# make sure all objects in same class have the same number of fields
idf$to_table(class = "Construction", align = TRUE)

# get a wide table with string values
idf$to_table(class = "Construction", wide = TRUE)

# get a wide table with actual values
idf$to_table(class = "OtherEquipment", wide = TRUE, string_value = FALSE)

# group extensible by extensible group number
idf$to_table(class = "BuildingSurface:Detailed", group_ext = "group")

# group extensible by extensible group number and convert into a wide table
idf$to_table(class = "BuildingSurface:Detailed", group_ext = "group", wide = TRUE)

# group extensible by extensible field index
idf$to_table(class = "BuildingSurface:Detailed", group_ext = "index")

# group extensible by extensible field index and convert into a wide table
idf$to_table(class = "BuildingSurface:Detailed", group_ext = "index", wide = TRUE)

# when grouping extensible, 'string_value' and 'unit' still take effect
idf$to_table(class = "BuildingSurface:Detailed", group_ext = "index",
    wide = TRUE, string_value = FALSE, unit = TRUE
)
}


Method is_unsaved()

Check if there are unsaved changes in current Idf

Usage

Idf$is_unsaved()

Details

$is_unsaved() returns TRUE if there are modifications on the model since it was read or since last time it was saved, and returns FALSE otherwise.

Returns

A single logical value of TRUE or FALSE.

Examples

\dontrun{
idf$is_unsaved()
}


Method save()

Save Idf object as an IDF file

Usage

Idf$save(
  path = NULL,
  format = eplusr_option("save_format"),
  overwrite = FALSE,
  copy_external = TRUE
)

Arguments

path

A path where to save the IDF file. If NULL, the path of the Idf itself, i.e. $path(), will be used.

format

Specific format used when formatting. Should be one of "asis", "sorted", "new_top", and "new_bot".

  • If "asis", Idf object will be formatted in the same way as it was when first read. If Idf object does not contain any format saving option, which is typically the case when the model was not saved using eplusr or IDFEditor, "sorted" will be used.

  • "sorted", "new_top" and "new_bot" are the same as the save options "Sorted", "Original with New at Top", and "Original with New at Bottom" in IDFEditor. Default: eplusr_option("save_format").

overwrite

Whether to overwrite the file if it already exists. Default: FALSE.

copy_external

If TRUE, the external files that current Idf object depends on will also be copied into the same directory. The values of file paths in the Idf will be changed into relative path automatically. This makes it possible to create fully reproducible simulation conditions. Currently, only Schedule:File class is supported. Default: FALSE.

Details

$save() formats current Idf object, saves it as an IDF file and returns the path of saved file invisibly. After saving, $path() will also be updated to return the path of saved file.

Returns

A length-one character vector, invisibly.

Examples

\dontrun{
# save Idf as a new file
idf$save(tempfile(fileext = ".idf"))

# save and overwrite current file
idf$save(overwrite = TRUE)

# save the model with newly created and modified objects at the top
idf$save(overwrite = TRUE, format = "new_top")

# save the model to a new file and copy all external csv files used in
# "Schedule:File" class into the same folder
idf$save(path = file.path(tempdir(), "test1.idf"), copy_external = TRUE)
}


Method run()

Run simulation using EnergyPlus

Usage

Idf$run(
  weather,
  dir = NULL,
  wait = TRUE,
  force = FALSE,
  copy_external = FALSE,
  echo = wait
)

Arguments

weather

A path to an .epw file or an Epw object. weather can also be NULL which will force design-day-only simulation. Note that this needs at least one Sizing:DesignDay object exists in the Idf.

dir

The directory to save the simulation results. If NULL, the folder of Idf path will be used. Default: NULL.

wait

Whether to wait until the simulation completes and print the standard output and error of EnergyPlus. If FALSE, the simulation will run in the background. Default is TRUE.

force

Only applicable when the last simulation runs with wait equals to FALSE and is still running. If TRUE, current running job is forced to stop and a new one will start. Default: FALSE.

copy_external

If TRUE, the external files that current Idf object depends on will also be copied into the simulation output directory. The values of file paths in the Idf will be changed automatically. Currently, only Schedule:File class is supported. This ensures that the output directory will have all files needed for the model to run. Default is FALSE.

echo

Only applicable when wait is TRUE. Whether to show standard output and error from EnergyPlus. Default: same as wait.

Details

$run() calls corresponding version of EnergyPlus to run the current Idf object together with specified weather. The model and the weather used will be copied into the output directory. An EplusJob object is returned which provides detailed info of the simulation and methods to collect simulation results. Please see EplusJob for details.

eplusr uses the EnergyPlus command line interface which was introduced since EnergyPlus 8.3.0. So $run() only supports models with version no lower than 8.3.0.

When calling $run(), eplusr will do steps below to make sure the output collecting methods work as expected. Please note that this may result in an IDF file that may not be exactly same as your current Idf object.

  • eplusr uses EnergyPlus SQL output for extracting simulation results. In order to do so, an object in Output:SQLite class with Option Type value being SimpleAndTabular will be automatically created if it does not exists.

  • In order to make sure .rdd (Report Data Dictionary) and .mdd (Meter Data Dictionary) files are created during simulation, an object in Output:VariableDictionary class with Key Field value being IDF will be automatically created if it does not exists.

Returns

An EplusJob object of current simulation.

Examples

\dontrun{
idf <- Idf$new(path_idf)
# save the model to tempdir()
idf$save(file.path(tempdir(), "test_run.idf"))

# use the first epw file in "WeatherData" folder in EnergyPlus v8.8
# installation path
epw <- list.files(file.path(eplus_config(8.8)$dir, "WeatherData"),
    pattern = "\\.epw$", full.names = TRUE)[1]

# if `dir` is NULL, the directory of IDF file will be used as simulation
# output directory
job <- idf$run(epw, dir = NULL)

# run simulation in the background
idf$run(epw, dir = tempdir(), wait = FALSE)

# copy all external files into the directory run simulation
idf$run(epw, dir = tempdir(), copy_external = TRUE)

# check for simulation errors
job$errors()

# get simulation status
job$status()

# get output directory
job$output_dir()

# re-run the simulation
job$run()

# get simulation results
job$report_data()
}


Method last_job()

Get the last simulation job

Usage

Idf$last_job()

Details

$last_job() returns the last EplusJob object that was created using $run(). If the Idf hasn't been run yet, NULL is returned.

Returns

NULL or an EplusJob object.

Examples

\dontrun{
idf$last_job()
}


Method view()

View 3D Idf geometry

Usage

Idf$view(
  new = FALSE,
  clear = TRUE,
  render_by = "surface_type",
  axis = TRUE,
  wireframe = TRUE,
  surface = TRUE,
  x_ray = FALSE,
  line_width = 1.5,
  line_color = "black",
  theta = 0,
  phi = -60,
  fov = 60,
  zoom = 1,
  background = "white",
  size = c(0, 30, 800)
)

Arguments

new

If TRUE, a new rgl window will be open using rgl::rgl.open(). If FALSE, existing rgl window will be reused if possible. Default: FALSE.

clear

If TRUE, the current rgl device will be cleared before plotting new contents. Default: TRUE.

render_by

A single string specifying the way of rendering the geometry. Possible values are:

* `"surface_type"`: Default. Render the model by surface type
  model. Walls, roofs, windows, doors, floors, and shading
  surfaces will have unqiue colors.
* `"boundary"`: Render the model by outside boundary condition.
  Only surfaces that have boundary conditions will be rendered
  with a color. All other surfaces will be white.
* `"construction"`: Render the model by surface constructions.
* `"zone"`: Render the model by zones assigned.
* `"surface_normal"`: (NOT IMPLEMENTED) Render the model by
  surface normal. The outside face of a heat transfer face will
  be rendered as white and the inside face will be rendered as
  red. Shading surfaces are an exception where both sides are
  rendered as red.

axis

If TRUE, the X, Y and Z axes will be drawn at the global origin. Default: TRUE.

wireframe

If TRUE, the wireframe of each surface will be shown. Default: TRUE.

surface

If TRUE, the surfaces themselves will be shown. Default: TRUE.

x_ray

If TRUE, all surfaces wll be rendered translucently. Default: FALSE.

line_width

The line width of wireframes. Default: 1.5.

line_color

The color of wireframes. Default: black.

theta

The rotation around z-axis in degrees. Default: 0.

phi

The azimuth angle in degrees. Default: -60.

fov

The field-of-view angle in degrees. 0 means isometric. Default: 60.

zoom

The zoom factor. Default: 1.

background

The color of the backports. Default: "white".

size

A numeric vector specifying the x-y coordiates, width and height of the rgl device. The x-y coordinates are based on the original located in the upper left corner of current screen. By default, x-y coordinates are set to zeros.

* If 1 number, the width and height of rgl windows will be
  the same as input number.
* If 2 numbers, the width and height of rgl windows will be
  set based on input number
* If 3 numbers, the first 2 numbers will be used as x-y
  coordinates and the 3rd number will be used for both window
  width and height.
* If 4 numbers, the first 2 numbers will be used as x-y
  coordinates. The next 2 specify the window size.

Details

$view() uses the rgl package to visualize the IDF geometry in 3D in a similar way as OpenStudio.

Current only detailed geometry classes are supported, including:

  • Surfaces:

    • BuildingSurface:Detailed

    • Wall:Detailed

    • RoofCeiling:Detailed

    • Floor:Detailed

  • Sub-surfaces:

    • FenestrationSurface:Detailed

  • Shadings:

    • Shading:Site:Detailed

    • Shading:Building:Detailed

    • Shading:Zone:Detailed

In the rgl window, you can control the view using your mouse:

  • Left button: Trackball

  • Right button: Pan

  • Middle button: Field-of-view (FOV)

  • Wheel: Zoom

Returns

The Idf object itself, invisibly.

Examples

\dontrun{
idf$view()
idf$view(render_by = "zone")
idf$view(new, render_by = "construction")
}


Method save_view()

Capture and save current rgl view as an image

Usage

Idf$save_view(
  filename,
  autoview = FALSE,
  autoclose = FALSE,
  bring_to_front = FALSE,
  axis = FALSE
)

Arguments

filename

A single string specifying the file name. Current supported formats are png, pdf, svg, ps, eps, tex and pgf.

autoview

If TRUE, a new view will be created if there is no existing one using $view() Default: FALSE.

autoclose

If TRUE, current rgl window will be closed after saving. Default: FALSE.

bring_to_front

If TRUE, The rgl window will be brought to the front when saving. Default: FALSE.

axis

If TRUE, the X, Y and Z axes will be saved in the image. Default: FALSE.

Details

$save_view() captures the current rgl view and saves it as an image file to disk.

Returns

The Idf object itself, invisibly.

Examples

\dontrun{
idf$view()
idf$save_view(tempfile(fileext = ".png"))
}


Method print()

Print Idf object

Usage

Idf$print(zoom = "class", order = TRUE)

Arguments

zoom

Control how detailed of the Idf object should be printed. Should be one of "group", "class", "object" and "field". Default: "group".

  • "group": all group names current existing are shown with prevailing square bracket showing how many Classes existing in that group.

  • "class": all class names are shown with prevailing square bracket showing how many Objects existing in that class, together with parent group name of each class.

  • "object": all object IDs and names are shown, together with parent class name of each object.

  • "field": all object IDs and names, field names and values are shown, together with parent class name of each object.

order

Only applicable when zoom is "object" or "field". If TRUE, objects are shown as the same order in the IDF. If FALSE, objects are grouped and ordered by classes. Default: TRUE.

Details

$print() prints the Idf object according to different detail level specified using the zoom argument.

With the default zoom level object, contents of the Idf object is printed in a similar style as you see in IDF Editor, with additional heading lines showing Path, Version of the Idf object. Class names of objects are ordered by group and the number of objects in classes are shown in square bracket.

Returns

The Idf object itself, invisibly.

Examples

\dontrun{
idf$print("group")
idf$print("class")
idf$print("object")
idf$print("field")

# order objects by there classes
idf$print("object", order = FALSE)
idf$print("field", order = FALSE)
}


Method clone()

The objects of this class are cloneable with this method.

Usage

Idf$clone(deep = TRUE)

Arguments

deep

Whether to make a deep clone.

Examples

## ------------------------------------------------ ## Method `Idf$new` ## ------------------------------------------------ # \dontrun{ # example model shipped with eplusr from EnergyPlus v8.8 path_idf <- system.file("extdata/1ZoneUncontrolled.idf", package = "eplusr") # v8.8 # If neither EnergyPlus v8.8 nor Idd v8.8 was found, error will # occur. If Idd v8.8 is found, it will be used automatically. idf <- Idf$new(path_idf) # argument `idd` can be specified explicitly using `use_idd()` idf <- Idf$new(path_idf, idd = use_idd(8.8)) # you can set `download` arugment to "auto" in `use_idd()` if you # want to automatically download corresponding IDD file when # necessary idf <- Idf$new(path_idf, use_idd(8.8, download = "auto")) # Besides use a path to an IDF file, you can also provide IDF in literal # string format string_idf <- " Version, 8.8; Building, Building; !- Name " Idf$new(string_idf, use_idd(8.8, download = "auto"))
#> ── EnergPlus Input Data File ─────────────────────────────────────────────────── #> * Path: NOT LOCAL #> * Version: '8.8.0' #> #> Group: <Simulation Parameters> #> ├─ [1<O>] Class: <Version> #> └─ [1<O>] Class: <Building>
# } ## ------------------------------------------------ ## Method `Idf$version` ## ------------------------------------------------ # \dontrun{ # get version idf$version()
#> [1] ‘8.8.0’
# } ## ------------------------------------------------ ## Method `Idf$path` ## ------------------------------------------------ # \dontrun{ # get path idf$path()
#> [1] "/tmp/RtmpaSlPu9/temp_libpath61fd4b9ed3f/eplusr/extdata/1ZoneUncontrolled.idf"
# return `NULL` if Idf is not created from a file Idf$new("Version, 8.8;\n")$path()
#> NULL
# } ## ------------------------------------------------ ## Method `Idf$group_name` ## ------------------------------------------------ # \dontrun{ # get names of all groups Idf contains idf$group_name()
#> [1] "Simulation Parameters" "Location and Climate" #> [3] "Schedules" "Surface Construction Elements" #> [5] "Thermal Zones and Surfaces" "Internal Gains" #> [7] "Exterior Equipment" "Output Reporting"
# get group name of each object in Idf idf$group_name(sorted = FALSE)
#> [1] "Simulation Parameters" "Simulation Parameters" #> [3] "Simulation Parameters" "Simulation Parameters" #> [5] "Simulation Parameters" "Simulation Parameters" #> [7] "Simulation Parameters" "Location and Climate" #> [9] "Location and Climate" "Location and Climate" #> [11] "Location and Climate" "Surface Construction Elements" #> [13] "Surface Construction Elements" "Surface Construction Elements" #> [15] "Surface Construction Elements" "Surface Construction Elements" #> [17] "Surface Construction Elements" "Thermal Zones and Surfaces" #> [19] "Schedules" "Thermal Zones and Surfaces" #> [21] "Thermal Zones and Surfaces" "Thermal Zones and Surfaces" #> [23] "Thermal Zones and Surfaces" "Thermal Zones and Surfaces" #> [25] "Thermal Zones and Surfaces" "Thermal Zones and Surfaces" #> [27] "Output Reporting" "Output Reporting" #> [29] "Output Reporting" "Output Reporting" #> [31] "Output Reporting" "Output Reporting" #> [33] "Output Reporting" "Output Reporting" #> [35] "Output Reporting" "Output Reporting" #> [37] "Output Reporting" "Output Reporting" #> [39] "Output Reporting" "Output Reporting" #> [41] "Output Reporting" "Output Reporting" #> [43] "Output Reporting" "Output Reporting" #> [45] "Output Reporting" "Output Reporting" #> [47] "Output Reporting" "Output Reporting" #> [49] "Exterior Equipment" "Schedules" #> [51] "Internal Gains" "Internal Gains" #> [53] "Schedules"
# get names of all available groups in underlying Idd idf$group_name(all = TRUE)
#> [1] "Simulation Parameters" #> [2] "Compliance Objects" #> [3] "Location and Climate" #> [4] "Schedules" #> [5] "Surface Construction Elements" #> [6] "Thermal Zones and Surfaces" #> [7] "Advanced Construction, Surface, Zone Concepts" #> [8] "Detailed Ground Heat Transfer" #> [9] "Room Air Models" #> [10] "Internal Gains" #> [11] "Daylighting" #> [12] "Zone Airflow" #> [13] "Natural Ventilation and Duct Leakage" #> [14] "Exterior Equipment" #> [15] "HVAC Templates" #> [16] "HVAC Design Objects" #> [17] "Zone HVAC Controls and Thermostats" #> [18] "Zone HVAC Forced Air Units" #> [19] "Zone HVAC Radiative/Convective Units" #> [20] "Zone HVAC Air Loop Terminal Units" #> [21] "Zone HVAC Equipment Connections" #> [22] "Fans" #> [23] "Coils" #> [24] "Evaporative Coolers" #> [25] "Humidifiers and Dehumidifiers" #> [26] "Heat Recovery" #> [27] "Unitary Equipment" #> [28] "Variable Refrigerant Flow Equipment" #> [29] "Controllers" #> [30] "Air Distribution" #> [31] "Node-Branch Management" #> [32] "Pumps" #> [33] "Plant-Condenser Flow Control" #> [34] "Non-Zone Equipment" #> [35] "Solar Collectors" #> [36] "Plant Heating and Cooling Equipment" #> [37] "Condenser Equipment and Heat Exchangers" #> [38] "Water Heaters and Thermal Storage" #> [39] "Plant-Condenser Loops" #> [40] "Plant-Condenser Control" #> [41] "Energy Management System (EMS)" #> [42] "External Interface" #> [43] "User Defined HVAC and Plant Component Models" #> [44] "System Availability Managers" #> [45] "Setpoint Managers" #> [46] "Refrigeration" #> [47] "Demand Limiting Controls" #> [48] "Electric Load Center-Generator Specifications" #> [49] "Water Systems" #> [50] "Operational Faults" #> [51] "General Data Entry" #> [52] "Hybrid Model" #> [53] "Performance Curves" #> [54] "Performance Tables" #> [55] "Fluid Properties" #> [56] "Economics" #> [57] "Parametrics" #> [58] "Output Reporting"
# } ## ------------------------------------------------ ## Method `Idf$class_name` ## ------------------------------------------------ # \dontrun{ # get names of all classes in Idf idf$class_name()
#> [1] "Version" "SimulationControl" #> [3] "Building" "SurfaceConvectionAlgorithm:Inside" #> [5] "SurfaceConvectionAlgorithm:Outside" "HeatBalanceAlgorithm" #> [7] "Timestep" "Site:Location" #> [9] "SizingPeriod:DesignDay" "RunPeriod" #> [11] "ScheduleTypeLimits" "Schedule:Constant" #> [13] "Material" "Material:NoMass" #> [15] "Construction" "GlobalGeometryRules" #> [17] "Zone" "BuildingSurface:Detailed" #> [19] "OtherEquipment" "Exterior:Lights" #> [21] "Output:VariableDictionary" "Output:Surfaces:Drawing" #> [23] "Output:Constructions" "Output:Table:SummaryReports" #> [25] "OutputControl:Table:Style" "Output:Variable" #> [27] "Output:Meter:MeterFileOnly"
# get names of all classes grouped by group names in Idf idf$class_name(by_group = TRUE)
#> $`Simulation Parameters` #> [1] "Version" "SimulationControl" #> [3] "Building" "SurfaceConvectionAlgorithm:Inside" #> [5] "SurfaceConvectionAlgorithm:Outside" "HeatBalanceAlgorithm" #> [7] "Timestep" #> #> $`Location and Climate` #> [1] "Site:Location" "SizingPeriod:DesignDay" "RunPeriod" #> #> $Schedules #> [1] "ScheduleTypeLimits" "Schedule:Constant" #> #> $`Surface Construction Elements` #> [1] "Material" "Material:NoMass" "Construction" #> #> $`Thermal Zones and Surfaces` #> [1] "GlobalGeometryRules" "Zone" #> [3] "BuildingSurface:Detailed" #> #> $`Internal Gains` #> [1] "OtherEquipment" #> #> $`Exterior Equipment` #> [1] "Exterior:Lights" #> #> $`Output Reporting` #> [1] "Output:VariableDictionary" "Output:Surfaces:Drawing" #> [3] "Output:Constructions" "Output:Table:SummaryReports" #> [5] "OutputControl:Table:Style" "Output:Variable" #> [7] "Output:Meter:MeterFileOnly" #>
# get class name of each object in Idf idf$class_name(sorted = FALSE)
#> [1] "Version" "Timestep" #> [3] "Building" "HeatBalanceAlgorithm" #> [5] "SurfaceConvectionAlgorithm:Inside" "SurfaceConvectionAlgorithm:Outside" #> [7] "SimulationControl" "RunPeriod" #> [9] "Site:Location" "SizingPeriod:DesignDay" #> [11] "SizingPeriod:DesignDay" "Material:NoMass" #> [13] "Material:NoMass" "Material" #> [15] "Construction" "Construction" #> [17] "Construction" "Zone" #> [19] "ScheduleTypeLimits" "GlobalGeometryRules" #> [21] "BuildingSurface:Detailed" "BuildingSurface:Detailed" #> [23] "BuildingSurface:Detailed" "BuildingSurface:Detailed" #> [25] "BuildingSurface:Detailed" "BuildingSurface:Detailed" #> [27] "Output:Variable" "Output:Variable" #> [29] "Output:Variable" "Output:Variable" #> [31] "Output:Variable" "Output:Variable" #> [33] "Output:Variable" "Output:Variable" #> [35] "Output:Variable" "Output:Variable" #> [37] "Output:Variable" "Output:Variable" #> [39] "Output:Variable" "Output:Variable" #> [41] "Output:VariableDictionary" "Output:Surfaces:Drawing" #> [43] "Output:Constructions" "Output:Meter:MeterFileOnly" #> [45] "Output:Meter:MeterFileOnly" "Output:Meter:MeterFileOnly" #> [47] "OutputControl:Table:Style" "Output:Table:SummaryReports" #> [49] "Exterior:Lights" "ScheduleTypeLimits" #> [51] "OtherEquipment" "OtherEquipment" #> [53] "Schedule:Constant"
# get names of all available classes in underlying Idd idf$class_name(all = TRUE)
#> [1] "Version" #> [2] "SimulationControl" #> [3] "Building" #> [4] "ShadowCalculation" #> [5] "SurfaceConvectionAlgorithm:Inside" #> [6] "SurfaceConvectionAlgorithm:Outside" #> [7] "HeatBalanceAlgorithm" #> [8] "HeatBalanceSettings:ConductionFiniteDifference" #> [9] "ZoneAirHeatBalanceAlgorithm" #> [10] "ZoneAirContaminantBalance" #> [11] "ZoneAirMassFlowConservation" #> [12] "ZoneCapacitanceMultiplier:ResearchSpecial" #> [13] "Timestep" #> [14] "ConvergenceLimits" #> [15] "HVACSystemRootFindingAlgorithm" #> [16] "Compliance:Building" #> [17] "Site:Location" #> [18] "Site:VariableLocation" #> [19] "SizingPeriod:DesignDay" #> [20] "SizingPeriod:WeatherFileDays" #> [21] "SizingPeriod:WeatherFileConditionType" #> [22] "RunPeriod" #> [23] "RunPeriod:CustomRange" #> [24] "RunPeriodControl:SpecialDays" #> [25] "RunPeriodControl:DaylightSavingTime" #> [26] "WeatherProperty:SkyTemperature" #> [27] "Site:WeatherStation" #> [28] "Site:HeightVariation" #> [29] "Site:GroundTemperature:BuildingSurface" #> [30] "Site:GroundTemperature:FCfactorMethod" #> [31] "Site:GroundTemperature:Shallow" #> [32] "Site:GroundTemperature:Deep" #> [33] "Site:GroundTemperature:Undisturbed:FiniteDifference" #> [34] "Site:GroundTemperature:Undisturbed:KusudaAchenbach" #> [35] "Site:GroundTemperature:Undisturbed:Xing" #> [36] "Site:GroundDomain:Slab" #> [37] "Site:GroundDomain:Basement" #> [38] "Site:GroundReflectance" #> [39] "Site:GroundReflectance:SnowModifier" #> [40] "Site:WaterMainsTemperature" #> [41] "Site:Precipitation" #> [42] "RoofIrrigation" #> [43] "Site:SolarAndVisibleSpectrum" #> [44] "Site:SpectrumData" #> [45] "ScheduleTypeLimits" #> [46] "Schedule:Day:Hourly" #> [47] "Schedule:Day:Interval" #> [48] "Schedule:Day:List" #> [49] "Schedule:Week:Daily" #> [50] "Schedule:Week:Compact" #> [51] "Schedule:Year" #> [52] "Schedule:Compact" #> [53] "Schedule:Constant" #> [54] "Schedule:File" #> [55] "Material" #> [56] "Material:NoMass" #> [57] "Material:InfraredTransparent" #> [58] "Material:AirGap" #> [59] "Material:RoofVegetation" #> [60] "WindowMaterial:SimpleGlazingSystem" #> [61] "WindowMaterial:Glazing" #> [62] "WindowMaterial:GlazingGroup:Thermochromic" #> [63] "WindowMaterial:Glazing:RefractionExtinctionMethod" #> [64] "WindowMaterial:Gas" #> [65] "WindowGap:SupportPillar" #> [66] "WindowGap:DeflectionState" #> [67] "WindowMaterial:GasMixture" #> [68] "WindowMaterial:Gap" #> [69] "WindowMaterial:Shade" #> [70] "WindowMaterial:ComplexShade" #> [71] "WindowMaterial:Blind" #> [72] "WindowMaterial:Screen" #> [73] "WindowMaterial:Shade:EquivalentLayer" #> [74] "WindowMaterial:Drape:EquivalentLayer" #> [75] "WindowMaterial:Blind:EquivalentLayer" #> [76] "WindowMaterial:Screen:EquivalentLayer" #> [77] "WindowMaterial:Glazing:EquivalentLayer" #> [78] "WindowMaterial:Gap:EquivalentLayer" #> [79] "MaterialProperty:MoisturePenetrationDepth:Settings" #> [80] "MaterialProperty:PhaseChange" #> [81] "MaterialProperty:PhaseChangeHysteresis" #> [82] "MaterialProperty:VariableThermalConductivity" #> [83] "MaterialProperty:HeatAndMoistureTransfer:Settings" #> [84] "MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm" #> [85] "MaterialProperty:HeatAndMoistureTransfer:Suction" #> [86] "MaterialProperty:HeatAndMoistureTransfer:Redistribution" #> [87] "MaterialProperty:HeatAndMoistureTransfer:Diffusion" #> [88] "MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity" #> [89] "MaterialProperty:GlazingSpectralData" #> [90] "Construction" #> [91] "Construction:CfactorUndergroundWall" #> [92] "Construction:FfactorGroundFloor" #> [93] "Construction:InternalSource" #> [94] "WindowThermalModel:Params" #> [95] "Construction:ComplexFenestrationState" #> [96] "Construction:WindowEquivalentLayer" #> [97] "Construction:WindowDataFile" #> [98] "GlobalGeometryRules" #> [99] "GeometryTransform" #> [100] "Zone" #> [101] "ZoneList" #> [102] "ZoneGroup" #> [103] "BuildingSurface:Detailed" #> [104] "Wall:Detailed" #> [105] "RoofCeiling:Detailed" #> [106] "Floor:Detailed" #> [107] "Wall:Exterior" #> [108] "Wall:Adiabatic" #> [109] "Wall:Underground" #> [110] "Wall:Interzone" #> [111] "Roof" #> [112] "Ceiling:Adiabatic" #> [113] "Ceiling:Interzone" #> [114] "Floor:GroundContact" #> [115] "Floor:Adiabatic" #> [116] "Floor:Interzone" #> [117] "FenestrationSurface:Detailed" #> [118] "Window" #> [119] "Door" #> [120] "GlazedDoor" #> [121] "Window:Interzone" #> [122] "Door:Interzone" #> [123] "GlazedDoor:Interzone" #> [124] "WindowProperty:ShadingControl" #> [125] "WindowProperty:FrameAndDivider" #> [126] "WindowProperty:AirflowControl" #> [127] "WindowProperty:StormWindow" #> [128] "InternalMass" #> [129] "Shading:Site" #> [130] "Shading:Building" #> [131] "Shading:Site:Detailed" #> [132] "Shading:Building:Detailed" #> [133] "Shading:Overhang" #> [134] "Shading:Overhang:Projection" #> [135] "Shading:Fin" #> [136] "Shading:Fin:Projection" #> [137] "Shading:Zone:Detailed" #> [138] "ShadingProperty:Reflectance" #> [139] "SurfaceProperty:HeatTransferAlgorithm" #> [140] "SurfaceProperty:HeatTransferAlgorithm:MultipleSurface" #> [141] "SurfaceProperty:HeatTransferAlgorithm:SurfaceList" #> [142] "SurfaceProperty:HeatTransferAlgorithm:Construction" #> [143] "SurfaceControl:MovableInsulation" #> [144] "SurfaceProperty:OtherSideCoefficients" #> [145] "SurfaceProperty:OtherSideConditionsModel" #> [146] "SurfaceProperty:Underwater" #> [147] "Foundation:Kiva" #> [148] "Foundation:Kiva:Settings" #> [149] "SurfaceProperty:ExposedFoundationPerimeter" #> [150] "SurfaceConvectionAlgorithm:Inside:AdaptiveModelSelections" #> [151] "SurfaceConvectionAlgorithm:Outside:AdaptiveModelSelections" #> [152] "SurfaceConvectionAlgorithm:Inside:UserCurve" #> [153] "SurfaceConvectionAlgorithm:Outside:UserCurve" #> [154] "SurfaceProperty:ConvectionCoefficients" #> [155] "SurfaceProperty:ConvectionCoefficients:MultipleSurface" #> [156] "SurfaceProperties:VaporCoefficients" #> [157] "SurfaceProperty:ExteriorNaturalVentedCavity" #> [158] "SurfaceProperty:SolarIncidentInside" #> [159] "SurfaceProperty:LocalEnvironment" #> [160] "ZoneProperty:LocalEnvironment" #> [161] "SurfaceProperty:SurroundingSurfaces" #> [162] "ComplexFenestrationProperty:SolarAbsorbedLayers" #> [163] "ZoneProperty:UserViewFactors:bySurfaceName" #> [164] "GroundHeatTransfer:Control" #> [165] "GroundHeatTransfer:Slab:Materials" #> [166] "GroundHeatTransfer:Slab:MatlProps" #> [167] "GroundHeatTransfer:Slab:BoundConds" #> [168] "GroundHeatTransfer:Slab:BldgProps" #> [169] "GroundHeatTransfer:Slab:Insulation" #> [170] "GroundHeatTransfer:Slab:EquivalentSlab" #> [171] "GroundHeatTransfer:Slab:AutoGrid" #> [172] "GroundHeatTransfer:Slab:ManualGrid" #> [173] "GroundHeatTransfer:Slab:XFACE" #> [174] "GroundHeatTransfer:Slab:YFACE" #> [175] "GroundHeatTransfer:Slab:ZFACE" #> [176] "GroundHeatTransfer:Basement:SimParameters" #> [177] "GroundHeatTransfer:Basement:MatlProps" #> [178] "GroundHeatTransfer:Basement:Insulation" #> [179] "GroundHeatTransfer:Basement:SurfaceProps" #> [180] "GroundHeatTransfer:Basement:BldgData" #> [181] "GroundHeatTransfer:Basement:Interior" #> [182] "GroundHeatTransfer:Basement:ComBldg" #> [183] "GroundHeatTransfer:Basement:EquivSlab" #> [184] "GroundHeatTransfer:Basement:EquivAutoGrid" #> [185] "GroundHeatTransfer:Basement:AutoGrid" #> [186] "GroundHeatTransfer:Basement:ManualGrid" #> [187] "GroundHeatTransfer:Basement:XFACE" #> [188] "GroundHeatTransfer:Basement:YFACE" #> [189] "GroundHeatTransfer:Basement:ZFACE" #> [190] "RoomAirModelType" #> [191] "RoomAir:TemperaturePattern:UserDefined" #> [192] "RoomAir:TemperaturePattern:ConstantGradient" #> [193] "RoomAir:TemperaturePattern:TwoGradient" #> [194] "RoomAir:TemperaturePattern:NondimensionalHeight" #> [195] "RoomAir:TemperaturePattern:SurfaceMapping" #> [196] "RoomAir:Node" #> [197] "RoomAirSettings:OneNodeDisplacementVentilation" #> [198] "RoomAirSettings:ThreeNodeDisplacementVentilation" #> [199] "RoomAirSettings:CrossVentilation" #> [200] "RoomAirSettings:UnderFloorAirDistributionInterior" #> [201] "RoomAirSettings:UnderFloorAirDistributionExterior" #> [202] "RoomAir:Node:AirflowNetwork" #> [203] "RoomAir:Node:AirflowNetwork:AdjacentSurfaceList" #> [204] "RoomAir:Node:AirflowNetwork:InternalGains" #> [205] "RoomAir:Node:AirflowNetwork:HVACEquipment" #> [206] "RoomAirSettings:AirflowNetwork" #> [207] "People" #> [208] "ComfortViewFactorAngles" #> [209] "Lights" #> [210] "ElectricEquipment" #> [211] "GasEquipment" #> [212] "HotWaterEquipment" #> [213] "SteamEquipment" #> [214] "OtherEquipment" #> [215] "ElectricEquipment:ITE:AirCooled" #> [216] "ZoneBaseboard:OutdoorTemperatureControlled" #> [217] "SwimmingPool:Indoor" #> [218] "ZoneContaminantSourceAndSink:CarbonDioxide" #> [219] "ZoneContaminantSourceAndSink:Generic:Constant" #> [220] "SurfaceContaminantSourceAndSink:Generic:PressureDriven" #> [221] "ZoneContaminantSourceAndSink:Generic:CutoffModel" #> [222] "ZoneContaminantSourceAndSink:Generic:DecaySource" #> [223] "SurfaceContaminantSourceAndSink:Generic:BoundaryLayerDiffusion" #> [224] "SurfaceContaminantSourceAndSink:Generic:DepositionVelocitySink" #> [225] "ZoneContaminantSourceAndSink:Generic:DepositionRateSink" #> [226] "Daylighting:Controls" #> [227] "Daylighting:ReferencePoint" #> [228] "Daylighting:DELight:ComplexFenestration" #> [229] "DaylightingDevice:Tubular" #> [230] "DaylightingDevice:Shelf" #> [231] "DaylightingDevice:LightWell" #> [232] "Output:DaylightFactors" #> [233] "Output:IlluminanceMap" #> [234] "OutputControl:IlluminanceMap:Style" #> [235] "ZoneInfiltration:DesignFlowRate" #> [236] "ZoneInfiltration:EffectiveLeakageArea" #> [237] "ZoneInfiltration:FlowCoefficient" #> [238] "ZoneVentilation:DesignFlowRate" #> [239] "ZoneVentilation:WindandStackOpenArea" #> [240] "ZoneAirBalance:OutdoorAir" #> [241] "ZoneMixing" #> [242] "ZoneCrossMixing" #> [243] "ZoneRefrigerationDoorMixing" #> [244] "ZoneEarthtube" #> [245] "ZoneCoolTower:Shower" #> [246] "ZoneThermalChimney" #> [247] "AirflowNetwork:SimulationControl" #> [248] "AirflowNetwork:MultiZone:Zone" #> [249] "AirflowNetwork:MultiZone:Surface" #> [250] "AirflowNetwork:MultiZone:ReferenceCrackConditions" #> [251] "AirflowNetwork:MultiZone:Surface:Crack" #> [252] "AirflowNetwork:MultiZone:Surface:EffectiveLeakageArea" #> [253] "AirflowNetwork:MultiZone:Component:DetailedOpening" #> [254] "AirflowNetwork:MultiZone:Component:SimpleOpening" #> [255] "AirflowNetwork:MultiZone:Component:HorizontalOpening" #> [256] "AirflowNetwork:MultiZone:Component:ZoneExhaustFan" #> [257] "AirflowNetwork:MultiZone:ExternalNode" #> [258] "AirflowNetwork:MultiZone:WindPressureCoefficientArray" #> [259] "AirflowNetwork:MultiZone:WindPressureCoefficientValues" #> [260] "AirflowNetwork:ZoneControl:PressureController" #> [261] "AirflowNetwork:Distribution:Node" #> [262] "AirflowNetwork:Distribution:Component:Leak" #> [263] "AirflowNetwork:Distribution:Component:LeakageRatio" #> [264] "AirflowNetwork:Distribution:Component:Duct" #> [265] "AirflowNetwork:Distribution:Component:Fan" #> [266] "AirflowNetwork:Distribution:Component:Coil" #> [267] "AirflowNetwork:Distribution:Component:HeatExchanger" #> [268] "AirflowNetwork:Distribution:Component:TerminalUnit" #> [269] "AirflowNetwork:Distribution:Component:ConstantPressureDrop" #> [270] "AirflowNetwork:Distribution:Component:OutdoorAirFlow" #> [271] "AirflowNetwork:Distribution:Component:ReliefAirFlow" #> [272] "AirflowNetwork:Distribution:Linkage" #> [273] "AirflowNetwork:Distribution:DuctViewFactors" #> [274] "AirflowNetwork:OccupantVentilationControl" #> [275] "AirflowNetwork:IntraZone:Node" #> [276] "AirflowNetwork:IntraZone:Linkage" #> [277] "Exterior:Lights" #> [278] "Exterior:FuelEquipment" #> [279] "Exterior:WaterEquipment" #> [280] "HVACTemplate:Thermostat" #> [281] "HVACTemplate:Zone:IdealLoadsAirSystem" #> [282] "HVACTemplate:Zone:BaseboardHeat" #> [283] "HVACTemplate:Zone:FanCoil" #> [284] "HVACTemplate:Zone:PTAC" #> [285] "HVACTemplate:Zone:PTHP" #> [286] "HVACTemplate:Zone:WaterToAirHeatPump" #> [287] "HVACTemplate:Zone:VRF" #> [288] "HVACTemplate:Zone:Unitary" #> [289] "HVACTemplate:Zone:VAV" #> [290] "HVACTemplate:Zone:VAV:FanPowered" #> [291] "HVACTemplate:Zone:VAV:HeatAndCool" #> [292] "HVACTemplate:Zone:ConstantVolume" #> [293] "HVACTemplate:Zone:DualDuct" #> [294] "HVACTemplate:System:VRF" #> [295] "HVACTemplate:System:Unitary" #> [296] "HVACTemplate:System:UnitaryHeatPump:AirToAir" #> [297] "HVACTemplate:System:UnitarySystem" #> [298] "HVACTemplate:System:VAV" #> [299] "HVACTemplate:System:PackagedVAV" #> [300] "HVACTemplate:System:ConstantVolume" #> [301] "HVACTemplate:System:DualDuct" #> [302] "HVACTemplate:System:DedicatedOutdoorAir" #> [303] "HVACTemplate:Plant:ChilledWaterLoop" #> [304] "HVACTemplate:Plant:Chiller" #> [305] "HVACTemplate:Plant:Chiller:ObjectReference" #> [306] "HVACTemplate:Plant:Tower" #> [307] "HVACTemplate:Plant:Tower:ObjectReference" #> [308] "HVACTemplate:Plant:HotWaterLoop" #> [309] "HVACTemplate:Plant:Boiler" #> [310] "HVACTemplate:Plant:Boiler:ObjectReference" #> [311] "HVACTemplate:Plant:MixedWaterLoop" #> [312] "DesignSpecification:OutdoorAir" #> [313] "DesignSpecification:ZoneAirDistribution" #> [314] "Sizing:Parameters" #> [315] "Sizing:Zone" #> [316] "DesignSpecification:ZoneHVAC:Sizing" #> [317] "DesignSpecification:AirTerminal:Sizing" #> [318] "Sizing:System" #> [319] "Sizing:Plant" #> [320] "OutputControl:Sizing:Style" #> [321] "ZoneControl:Humidistat" #> [322] "ZoneControl:Thermostat" #> [323] "ZoneControl:Thermostat:OperativeTemperature" #> [324] "ZoneControl:Thermostat:ThermalComfort" #> [325] "ZoneControl:Thermostat:TemperatureAndHumidity" #> [326] "ThermostatSetpoint:SingleHeating" #> [327] "ThermostatSetpoint:SingleCooling" #> [328] "ThermostatSetpoint:SingleHeatingOrCooling" #> [329] "ThermostatSetpoint:DualSetpoint" #> [330] "ThermostatSetpoint:ThermalComfort:Fanger:SingleHeating" #> [331] "ThermostatSetpoint:ThermalComfort:Fanger:SingleCooling" #> [332] "ThermostatSetpoint:ThermalComfort:Fanger:SingleHeatingOrCooling" #> [333] "ThermostatSetpoint:ThermalComfort:Fanger:DualSetpoint" #> [334] "ZoneControl:Thermostat:StagedDualSetpoint" #> [335] "ZoneControl:ContaminantController" #> [336] "ZoneHVAC:IdealLoadsAirSystem" #> [337] "ZoneHVAC:FourPipeFanCoil" #> [338] "ZoneHVAC:WindowAirConditioner" #> [339] "ZoneHVAC:PackagedTerminalAirConditioner" #> [340] "ZoneHVAC:PackagedTerminalHeatPump" #> [341] "ZoneHVAC:WaterToAirHeatPump" #> [342] "ZoneHVAC:Dehumidifier:DX" #> [343] "ZoneHVAC:EnergyRecoveryVentilator" #> [344] "ZoneHVAC:EnergyRecoveryVentilator:Controller" #> [345] "ZoneHVAC:UnitVentilator" #> [346] "ZoneHVAC:UnitHeater" #> [347] "ZoneHVAC:EvaporativeCoolerUnit" #> [348] "ZoneHVAC:OutdoorAirUnit" #> [349] "ZoneHVAC:OutdoorAirUnit:EquipmentList" #> [350] "ZoneHVAC:TerminalUnit:VariableRefrigerantFlow" #> [351] "ZoneHVAC:Baseboard:RadiantConvective:Water" #> [352] "ZoneHVAC:Baseboard:RadiantConvective:Steam" #> [353] "ZoneHVAC:Baseboard:RadiantConvective:Electric" #> [354] "ZoneHVAC:CoolingPanel:RadiantConvective:Water" #> [355] "ZoneHVAC:Baseboard:Convective:Water" #> [356] "ZoneHVAC:Baseboard:Convective:Electric" #> [357] "ZoneHVAC:LowTemperatureRadiant:VariableFlow" #> [358] "ZoneHVAC:LowTemperatureRadiant:ConstantFlow" #> [359] "ZoneHVAC:LowTemperatureRadiant:Electric" #> [360] "ZoneHVAC:LowTemperatureRadiant:SurfaceGroup" #> [361] "ZoneHVAC:HighTemperatureRadiant" #> [362] "ZoneHVAC:VentilatedSlab" #> [363] "ZoneHVAC:VentilatedSlab:SlabGroup" #> [364] "AirTerminal:SingleDuct:Uncontrolled" #> [365] "AirTerminal:SingleDuct:ConstantVolume:Reheat" #> [366] "AirTerminal:SingleDuct:VAV:NoReheat" #> [367] "AirTerminal:SingleDuct:VAV:Reheat" #> [368] "AirTerminal:SingleDuct:VAV:Reheat:VariableSpeedFan" #> [369] "AirTerminal:SingleDuct:VAV:HeatAndCool:NoReheat" #> [370] "AirTerminal:SingleDuct:VAV:HeatAndCool:Reheat" #> [371] "AirTerminal:SingleDuct:SeriesPIU:Reheat" #> [372] "AirTerminal:SingleDuct:ParallelPIU:Reheat" #> [373] "AirTerminal:SingleDuct:ConstantVolume:FourPipeInduction" #> [374] "AirTerminal:SingleDuct:ConstantVolume:FourPipeBeam" #> [375] "AirTerminal:SingleDuct:ConstantVolume:CooledBeam" #> [376] "AirTerminal:SingleDuct:Mixer" #> [377] "AirTerminal:DualDuct:ConstantVolume" #> [378] "AirTerminal:DualDuct:VAV" #> [379] "AirTerminal:DualDuct:VAV:OutdoorAir" #> [380] "ZoneHVAC:AirDistributionUnit" #> [381] "ZoneHVAC:EquipmentList" #> [382] "ZoneHVAC:EquipmentConnections" #> [383] "Fan:SystemModel" #> [384] "Fan:ConstantVolume" #> [385] "Fan:VariableVolume" #> [386] "Fan:OnOff" #> [387] "Fan:ZoneExhaust" #> [388] "FanPerformance:NightVentilation" #> [389] "Fan:ComponentModel" #> [390] "Coil:Cooling:Water" #> [391] "Coil:Cooling:Water:DetailedGeometry" #> [392] "Coil:Cooling:DX:SingleSpeed" #> [393] "Coil:Cooling:DX:TwoSpeed" #> [394] "Coil:Cooling:DX:MultiSpeed" #> [395] "Coil:Cooling:DX:VariableSpeed" #> [396] "Coil:Cooling:DX:TwoStageWithHumidityControlMode" #> [397] "CoilPerformance:DX:Cooling" #> [398] "Coil:Cooling:DX:VariableRefrigerantFlow" #> [399] "Coil:Heating:DX:VariableRefrigerantFlow" #> [400] "Coil:Cooling:DX:VariableRefrigerantFlow:FluidTemperatureControl" #> [401] "Coil:Heating:DX:VariableRefrigerantFlow:FluidTemperatureControl" #> [402] "Coil:Heating:Water" #> [403] "Coil:Heating:Steam" #> [404] "Coil:Heating:Electric" #> [405] "Coil:Heating:Electric:MultiStage" #> [406] "Coil:Heating:Fuel" #> [407] "Coil:Heating:Gas:MultiStage" #> [408] "Coil:Heating:Desuperheater" #> [409] "Coil:Heating:DX:SingleSpeed" #> [410] "Coil:Heating:DX:MultiSpeed" #> [411] "Coil:Heating:DX:VariableSpeed" #> [412] "Coil:Cooling:WaterToAirHeatPump:ParameterEstimation" #> [413] "Coil:Heating:WaterToAirHeatPump:ParameterEstimation" #> [414] "Coil:Cooling:WaterToAirHeatPump:EquationFit" #> [415] "Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit" #> [416] "Coil:Heating:WaterToAirHeatPump:EquationFit" #> [417] "Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit" #> [418] "Coil:WaterHeating:AirToWaterHeatPump:Pumped" #> [419] "Coil:WaterHeating:AirToWaterHeatPump:Wrapped" #> [420] "Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed" #> [421] "Coil:WaterHeating:Desuperheater" #> [422] "CoilSystem:Cooling:DX" #> [423] "CoilSystem:Heating:DX" #> [424] "CoilSystem:Cooling:Water:HeatExchangerAssisted" #> [425] "CoilSystem:Cooling:DX:HeatExchangerAssisted" #> [426] "CoilSystem:IntegratedHeatPump:AirSource" #> [427] "Coil:Cooling:DX:SingleSpeed:ThermalStorage" #> [428] "EvaporativeCooler:Direct:CelDekPad" #> [429] "EvaporativeCooler:Indirect:CelDekPad" #> [430] "EvaporativeCooler:Indirect:WetCoil" #> [431] "EvaporativeCooler:Indirect:ResearchSpecial" #> [432] "EvaporativeCooler:Direct:ResearchSpecial" #> [433] "Humidifier:Steam:Electric" #> [434] "Humidifier:Steam:Gas" #> [435] "Dehumidifier:Desiccant:NoFans" #> [436] "Dehumidifier:Desiccant:System" #> [437] "HeatExchanger:AirToAir:FlatPlate" #> [438] "HeatExchanger:AirToAir:SensibleAndLatent" #> [439] "HeatExchanger:Desiccant:BalancedFlow" #> [440] "HeatExchanger:Desiccant:BalancedFlow:PerformanceDataType1" #> [441] "AirLoopHVAC:UnitarySystem" #> [442] "UnitarySystemPerformance:Multispeed" #> [443] "AirLoopHVAC:Unitary:Furnace:HeatOnly" #> [444] "AirLoopHVAC:Unitary:Furnace:HeatCool" #> [445] "AirLoopHVAC:UnitaryHeatOnly" #> [446] "AirLoopHVAC:UnitaryHeatCool" #> [447] "AirLoopHVAC:UnitaryHeatPump:AirToAir" #> [448] "AirLoopHVAC:UnitaryHeatPump:WaterToAir" #> [449] "AirLoopHVAC:UnitaryHeatCool:VAVChangeoverBypass" #> [450] "AirLoopHVAC:UnitaryHeatPump:AirToAir:MultiSpeed" #> [451] "AirConditioner:VariableRefrigerantFlow" #> [452] "AirConditioner:VariableRefrigerantFlow:FluidTemperatureControl" #> [453] "AirConditioner:VariableRefrigerantFlow:FluidTemperatureControl:HR" #> [454] "ZoneTerminalUnitList" #> [455] "Controller:WaterCoil" #> [456] "Controller:OutdoorAir" #> [457] "Controller:MechanicalVentilation" #> [458] "AirLoopHVAC:ControllerList" #> [459] "AirLoopHVAC" #> [460] "AirLoopHVAC:OutdoorAirSystem:EquipmentList" #> [461] "AirLoopHVAC:OutdoorAirSystem" #> [462] "OutdoorAir:Mixer" #> [463] "AirLoopHVAC:ZoneSplitter" #> [464] "AirLoopHVAC:SupplyPlenum" #> [465] "AirLoopHVAC:SupplyPath" #> [466] "AirLoopHVAC:ZoneMixer" #> [467] "AirLoopHVAC:ReturnPlenum" #> [468] "AirLoopHVAC:ReturnPath" #> [469] "Branch" #> [470] "BranchList" #> [471] "Connector:Splitter" #> [472] "Connector:Mixer" #> [473] "ConnectorList" #> [474] "NodeList" #> [475] "OutdoorAir:Node" #> [476] "OutdoorAir:NodeList" #> [477] "Pipe:Adiabatic" #> [478] "Pipe:Adiabatic:Steam" #> [479] "Pipe:Indoor" #> [480] "Pipe:Outdoor" #> [481] "Pipe:Underground" #> [482] "PipingSystem:Underground:Domain" #> [483] "PipingSystem:Underground:PipeCircuit" #> [484] "PipingSystem:Underground:PipeSegment" #> [485] "Duct" #> [486] "Pump:VariableSpeed" #> [487] "Pump:ConstantSpeed" #> [488] "Pump:VariableSpeed:Condensate" #> [489] "HeaderedPumps:ConstantSpeed" #> [490] "HeaderedPumps:VariableSpeed" #> [491] "TemperingValve" #> [492] "LoadProfile:Plant" #> [493] "SolarCollectorPerformance:FlatPlate" #> [494] "SolarCollector:FlatPlate:Water" #> [495] "SolarCollector:FlatPlate:PhotovoltaicThermal" #> [496] "SolarCollectorPerformance:PhotovoltaicThermal:Simple" #> [497] "SolarCollector:IntegralCollectorStorage" #> [498] "SolarCollectorPerformance:IntegralCollectorStorage" #> [499] "SolarCollector:UnglazedTranspired" #> [500] "SolarCollector:UnglazedTranspired:Multisystem" #> [501] "Boiler:HotWater" #> [502] "Boiler:Steam" #> [503] "Chiller:Electric:EIR" #> [504] "Chiller:Electric:ReformulatedEIR" #> [505] "Chiller:Electric" #> [506] "Chiller:Absorption:Indirect" #> [507] "Chiller:Absorption" #> [508] "Chiller:ConstantCOP" #> [509] "Chiller:EngineDriven" #> [510] "Chiller:CombustionTurbine" #> [511] "ChillerHeater:Absorption:DirectFired" #> [512] "ChillerHeater:Absorption:DoubleEffect" #> [513] "HeatPump:WaterToWater:EquationFit:Heating" #> [514] "HeatPump:WaterToWater:EquationFit:Cooling" #> [515] "HeatPump:WaterToWater:ParameterEstimation:Cooling" #> [516] "HeatPump:WaterToWater:ParameterEstimation:Heating" #> [517] "DistrictCooling" #> [518] "DistrictHeating" #> [519] "PlantComponent:TemperatureSource" #> [520] "CentralHeatPumpSystem" #> [521] "ChillerHeaterPerformance:Electric:EIR" #> [522] "CoolingTower:SingleSpeed" #> [523] "CoolingTower:TwoSpeed" #> [524] "CoolingTower:VariableSpeed:Merkel" #> [525] "CoolingTower:VariableSpeed" #> [526] "CoolingTowerPerformance:CoolTools" #> [527] "CoolingTowerPerformance:YorkCalc" #> [528] "EvaporativeFluidCooler:SingleSpeed" #> [529] "EvaporativeFluidCooler:TwoSpeed" #> [530] "FluidCooler:SingleSpeed" #> [531] "FluidCooler:TwoSpeed" #> [532] "GroundHeatExchanger:Vertical" #> [533] "GroundHeatExchanger:Pond" #> [534] "GroundHeatExchanger:Surface" #> [535] "GroundHeatExchanger:HorizontalTrench" #> [536] "GroundHeatExchanger:Slinky" #> [537] "HeatExchanger:FluidToFluid" #> [538] "WaterHeater:Mixed" #> [539] "WaterHeater:Stratified" #> [540] "WaterHeater:Sizing" #> [541] "WaterHeater:HeatPump:PumpedCondenser" #> [542] "WaterHeater:HeatPump:WrappedCondenser" #> [543] "ThermalStorage:Ice:Simple" #> [544] "ThermalStorage:Ice:Detailed" #> [545] "ThermalStorage:ChilledWater:Mixed" #> [546] "ThermalStorage:ChilledWater:Stratified" #> [547] "PlantLoop" #> [548] "CondenserLoop" #> [549] "PlantEquipmentList" #> [550] "CondenserEquipmentList" #> [551] "PlantEquipmentOperation:Uncontrolled" #> [552] "PlantEquipmentOperation:CoolingLoad" #> [553] "PlantEquipmentOperation:HeatingLoad" #> [554] "PlantEquipmentOperation:OutdoorDryBulb" #> [555] "PlantEquipmentOperation:OutdoorWetBulb" #> [556] "PlantEquipmentOperation:OutdoorRelativeHumidity" #> [557] "PlantEquipmentOperation:OutdoorDewpoint" #> [558] "PlantEquipmentOperation:ComponentSetpoint" #> [559] "PlantEquipmentOperation:ThermalEnergyStorage" #> [560] "PlantEquipmentOperation:OutdoorDryBulbDifference" #> [561] "PlantEquipmentOperation:OutdoorWetBulbDifference" #> [562] "PlantEquipmentOperation:OutdoorDewpointDifference" #> [563] "PlantEquipmentOperationSchemes" #> [564] "CondenserEquipmentOperationSchemes" #> [565] "EnergyManagementSystem:Sensor" #> [566] "EnergyManagementSystem:Actuator" #> [567] "EnergyManagementSystem:ProgramCallingManager" #> [568] "EnergyManagementSystem:Program" #> [569] "EnergyManagementSystem:Subroutine" #> [570] "EnergyManagementSystem:GlobalVariable" #> [571] "EnergyManagementSystem:OutputVariable" #> [572] "EnergyManagementSystem:MeteredOutputVariable" #> [573] "EnergyManagementSystem:TrendVariable" #> [574] "EnergyManagementSystem:InternalVariable" #> [575] "EnergyManagementSystem:CurveOrTableIndexVariable" #> [576] "EnergyManagementSystem:ConstructionIndexVariable" #> [577] "ExternalInterface" #> [578] "ExternalInterface:Schedule" #> [579] "ExternalInterface:Variable" #> [580] "ExternalInterface:Actuator" #> [581] "ExternalInterface:FunctionalMockupUnitImport" #> [582] "ExternalInterface:FunctionalMockupUnitImport:From:Variable" #> [583] "ExternalInterface:FunctionalMockupUnitImport:To:Schedule" #> [584] "ExternalInterface:FunctionalMockupUnitImport:To:Actuator" #> [585] "ExternalInterface:FunctionalMockupUnitImport:To:Variable" #> [586] "ExternalInterface:FunctionalMockupUnitExport:From:Variable" #> [587] "ExternalInterface:FunctionalMockupUnitExport:To:Schedule" #> [588] "ExternalInterface:FunctionalMockupUnitExport:To:Actuator" #> [589] "ExternalInterface:FunctionalMockupUnitExport:To:Variable" #> [590] "ZoneHVAC:ForcedAir:UserDefined" #> [591] "AirTerminal:SingleDuct:UserDefined" #> [592] "Coil:UserDefined" #> [593] "PlantComponent:UserDefined" #> [594] "PlantEquipmentOperation:UserDefined" #> [595] "AvailabilityManager:Scheduled" #> [596] "AvailabilityManager:ScheduledOn" #> [597] "AvailabilityManager:ScheduledOff" #> [598] "AvailabilityManager:OptimumStart" #> [599] "AvailabilityManager:NightCycle" #> [600] "AvailabilityManager:DifferentialThermostat" #> [601] "AvailabilityManager:HighTemperatureTurnOff" #> [602] "AvailabilityManager:HighTemperatureTurnOn" #> [603] "AvailabilityManager:LowTemperatureTurnOff" #> [604] "AvailabilityManager:LowTemperatureTurnOn" #> [605] "AvailabilityManager:NightVentilation" #> [606] "AvailabilityManager:HybridVentilation" #> [607] "AvailabilityManagerAssignmentList" #> [608] "SetpointManager:Scheduled" #> [609] "SetpointManager:Scheduled:DualSetpoint" #> [610] "SetpointManager:OutdoorAirReset" #> [611] "SetpointManager:SingleZone:Reheat" #> [612] "SetpointManager:SingleZone:Heating" #> [613] "SetpointManager:SingleZone:Cooling" #> [614] "SetpointManager:SingleZone:Humidity:Minimum" #> [615] "SetpointManager:SingleZone:Humidity:Maximum" #> [616] "SetpointManager:MixedAir" #> [617] "SetpointManager:OutdoorAirPretreat" #> [618] "SetpointManager:Warmest" #> [619] "SetpointManager:Coldest" #> [620] "SetpointManager:ReturnAirBypassFlow" #> [621] "SetpointManager:WarmestTemperatureFlow" #> [622] "SetpointManager:MultiZone:Heating:Average" #> [623] "SetpointManager:MultiZone:Cooling:Average" #> [624] "SetpointManager:MultiZone:MinimumHumidity:Average" #> [625] "SetpointManager:MultiZone:MaximumHumidity:Average" #> [626] "SetpointManager:MultiZone:Humidity:Minimum" #> [627] "SetpointManager:MultiZone:Humidity:Maximum" #> [628] "SetpointManager:FollowOutdoorAirTemperature" #> [629] "SetpointManager:FollowSystemNodeTemperature" #> [630] "SetpointManager:FollowGroundTemperature" #> [631] "SetpointManager:CondenserEnteringReset" #> [632] "SetpointManager:CondenserEnteringReset:Ideal" #> [633] "SetpointManager:SingleZone:OneStageCooling" #> [634] "SetpointManager:SingleZone:OneStageHeating" #> [635] "SetpointManager:ReturnTemperature:ChilledWater" #> [636] "SetpointManager:ReturnTemperature:HotWater" #> [637] "Refrigeration:Case" #> [638] "Refrigeration:CompressorRack" #> [639] "Refrigeration:CaseAndWalkInList" #> [640] "Refrigeration:Condenser:AirCooled" #> [641] "Refrigeration:Condenser:EvaporativeCooled" #> [642] "Refrigeration:Condenser:WaterCooled" #> [643] "Refrigeration:Condenser:Cascade" #> [644] "Refrigeration:GasCooler:AirCooled" #> [645] "Refrigeration:TransferLoadList" #> [646] "Refrigeration:Subcooler" #> [647] "Refrigeration:Compressor" #> [648] "Refrigeration:CompressorList" #> [649] "Refrigeration:System" #> [650] "Refrigeration:TranscriticalSystem" #> [651] "Refrigeration:SecondarySystem" #> [652] "Refrigeration:WalkIn" #> [653] "Refrigeration:AirChiller" #> [654] "ZoneHVAC:RefrigerationChillerSet" #> [655] "DemandManagerAssignmentList" #> [656] "DemandManager:ExteriorLights" #> [657] "DemandManager:Lights" #> [658] "DemandManager:ElectricEquipment" #> [659] "DemandManager:Thermostats" #> [660] "DemandManager:Ventilation" #> [661] "Generator:InternalCombustionEngine" #> [662] "Generator:CombustionTurbine" #> [663] "Generator:MicroTurbine" #> [664] "Generator:Photovoltaic" #> [665] "PhotovoltaicPerformance:Simple" #> [666] "PhotovoltaicPerformance:EquivalentOne-Diode" #> [667] "PhotovoltaicPerformance:Sandia" #> [668] "Generator:FuelCell" #> [669] "Generator:FuelCell:PowerModule" #> [670] "Generator:FuelCell:AirSupply" #> [671] "Generator:FuelCell:WaterSupply" #> [672] "Generator:FuelCell:AuxiliaryHeater" #> [673] "Generator:FuelCell:ExhaustGasToWaterHeatExchanger" #> [674] "Generator:FuelCell:ElectricalStorage" #> [675] "Generator:FuelCell:Inverter" #> [676] "Generator:FuelCell:StackCooler" #> [677] "Generator:MicroCHP" #> [678] "Generator:MicroCHP:NonNormalizedParameters" #> [679] "Generator:FuelSupply" #> [680] "Generator:WindTurbine" #> [681] "ElectricLoadCenter:Generators" #> [682] "ElectricLoadCenter:Inverter:Simple" #> [683] "ElectricLoadCenter:Inverter:FunctionOfPower" #> [684] "ElectricLoadCenter:Inverter:LookUpTable" #> [685] "ElectricLoadCenter:Storage:Simple" #> [686] "ElectricLoadCenter:Storage:Battery" #> [687] "ElectricLoadCenter:Transformer" #> [688] "ElectricLoadCenter:Distribution" #> [689] "ElectricLoadCenter:Storage:Converter" #> [690] "WaterUse:Equipment" #> [691] "WaterUse:Connections" #> [692] "WaterUse:Storage" #> [693] "WaterUse:Well" #> [694] "WaterUse:RainCollector" #> [695] "FaultModel:TemperatureSensorOffset:OutdoorAir" #> [696] "FaultModel:HumiditySensorOffset:OutdoorAir" #> [697] "FaultModel:EnthalpySensorOffset:OutdoorAir" #> [698] "FaultModel:PressureSensorOffset:OutdoorAir" #> [699] "FaultModel:TemperatureSensorOffset:ReturnAir" #> [700] "FaultModel:EnthalpySensorOffset:ReturnAir" #> [701] "FaultModel:TemperatureSensorOffset:ChillerSupplyWater" #> [702] "FaultModel:TemperatureSensorOffset:CoilSupplyAir" #> [703] "FaultModel:TemperatureSensorOffset:CondenserSupplyWater" #> [704] "FaultModel:ThermostatOffset" #> [705] "FaultModel:HumidistatOffset" #> [706] "FaultModel:Fouling:AirFilter" #> [707] "FaultModel:Fouling:Boiler" #> [708] "FaultModel:Fouling:EvaporativeCooler" #> [709] "FaultModel:Fouling:Chiller" #> [710] "FaultModel:Fouling:CoolingTower" #> [711] "FaultModel:Fouling:Coil" #> [712] "Matrix:TwoDimension" #> [713] "HybridModel:Zone" #> [714] "Curve:Linear" #> [715] "Curve:QuadLinear" #> [716] "Curve:Quadratic" #> [717] "Curve:Cubic" #> [718] "Curve:Quartic" #> [719] "Curve:Exponent" #> [720] "Curve:Bicubic" #> [721] "Curve:Biquadratic" #> [722] "Curve:QuadraticLinear" #> [723] "Curve:CubicLinear" #> [724] "Curve:Triquadratic" #> [725] "Curve:Functional:PressureDrop" #> [726] "Curve:FanPressureRise" #> [727] "Curve:ExponentialSkewNormal" #> [728] "Curve:Sigmoid" #> [729] "Curve:RectangularHyperbola1" #> [730] "Curve:RectangularHyperbola2" #> [731] "Curve:ExponentialDecay" #> [732] "Curve:DoubleExponentialDecay" #> [733] "Curve:ChillerPartLoadWithLift" #> [734] "Table:OneIndependentVariable" #> [735] "Table:TwoIndependentVariables" #> [736] "Table:MultiVariableLookup" #> [737] "FluidProperties:Name" #> [738] "FluidProperties:GlycolConcentration" #> [739] "FluidProperties:Temperatures" #> [740] "FluidProperties:Saturated" #> [741] "FluidProperties:Superheated" #> [742] "FluidProperties:Concentration" #> [743] "CurrencyType" #> [744] "ComponentCost:Adjustments" #> [745] "ComponentCost:Reference" #> [746] "ComponentCost:LineItem" #> [747] "UtilityCost:Tariff" #> [748] "UtilityCost:Qualify" #> [749] "UtilityCost:Charge:Simple" #> [750] "UtilityCost:Charge:Block" #> [751] "UtilityCost:Ratchet" #> [752] "UtilityCost:Variable" #> [753] "UtilityCost:Computation" #> [754] "LifeCycleCost:Parameters" #> [755] "LifeCycleCost:RecurringCosts" #> [756] "LifeCycleCost:NonrecurringCost" #> [757] "LifeCycleCost:UsePriceEscalation" #> [758] "LifeCycleCost:UseAdjustment" #> [759] "Parametric:SetValueForRun" #> [760] "Parametric:Logic" #> [761] "Parametric:RunControl" #> [762] "Parametric:FileNameSuffix" #> [763] "Output:VariableDictionary" #> [764] "Output:Surfaces:List" #> [765] "Output:Surfaces:Drawing" #> [766] "Output:Schedules" #> [767] "Output:Constructions" #> [768] "Output:EnergyManagementSystem" #> [769] "OutputControl:SurfaceColorScheme" #> [770] "Output:Table:SummaryReports" #> [771] "Output:Table:TimeBins" #> [772] "Output:Table:Monthly" #> [773] "Output:Table:Annual" #> [774] "OutputControl:Table:Style" #> [775] "OutputControl:ReportingTolerances" #> [776] "Output:Variable" #> [777] "Output:Meter" #> [778] "Output:Meter:MeterFileOnly" #> [779] "Output:Meter:Cumulative" #> [780] "Output:Meter:Cumulative:MeterFileOnly" #> [781] "Meter:Custom" #> [782] "Meter:CustomDecrement" #> [783] "Output:SQLite" #> [784] "Output:EnvironmentalImpactFactors" #> [785] "EnvironmentalImpactFactors" #> [786] "FuelFactors" #> [787] "Output:Diagnostics" #> [788] "Output:DebuggingData" #> [789] "Output:PreprocessorMessage"
# get names of all available classes grouped by group names in # underlying Idd idf$class_name(all = TRUE, by_group = TRUE)
#> $`Simulation Parameters` #> [1] "Version" #> [2] "SimulationControl" #> [3] "Building" #> [4] "ShadowCalculation" #> [5] "SurfaceConvectionAlgorithm:Inside" #> [6] "SurfaceConvectionAlgorithm:Outside" #> [7] "HeatBalanceAlgorithm" #> [8] "HeatBalanceSettings:ConductionFiniteDifference" #> [9] "ZoneAirHeatBalanceAlgorithm" #> [10] "ZoneAirContaminantBalance" #> [11] "ZoneAirMassFlowConservation" #> [12] "ZoneCapacitanceMultiplier:ResearchSpecial" #> [13] "Timestep" #> [14] "ConvergenceLimits" #> [15] "HVACSystemRootFindingAlgorithm" #> #> $`Compliance Objects` #> [1] "Compliance:Building" #> #> $`Location and Climate` #> [1] "Site:Location" #> [2] "Site:VariableLocation" #> [3] "SizingPeriod:DesignDay" #> [4] "SizingPeriod:WeatherFileDays" #> [5] "SizingPeriod:WeatherFileConditionType" #> [6] "RunPeriod" #> [7] "RunPeriod:CustomRange" #> [8] "RunPeriodControl:SpecialDays" #> [9] "RunPeriodControl:DaylightSavingTime" #> [10] "WeatherProperty:SkyTemperature" #> [11] "Site:WeatherStation" #> [12] "Site:HeightVariation" #> [13] "Site:GroundTemperature:BuildingSurface" #> [14] "Site:GroundTemperature:FCfactorMethod" #> [15] "Site:GroundTemperature:Shallow" #> [16] "Site:GroundTemperature:Deep" #> [17] "Site:GroundTemperature:Undisturbed:FiniteDifference" #> [18] "Site:GroundTemperature:Undisturbed:KusudaAchenbach" #> [19] "Site:GroundTemperature:Undisturbed:Xing" #> [20] "Site:GroundDomain:Slab" #> [21] "Site:GroundDomain:Basement" #> [22] "Site:GroundReflectance" #> [23] "Site:GroundReflectance:SnowModifier" #> [24] "Site:WaterMainsTemperature" #> [25] "Site:Precipitation" #> [26] "RoofIrrigation" #> [27] "Site:SolarAndVisibleSpectrum" #> [28] "Site:SpectrumData" #> #> $Schedules #> [1] "ScheduleTypeLimits" "Schedule:Day:Hourly" "Schedule:Day:Interval" #> [4] "Schedule:Day:List" "Schedule:Week:Daily" "Schedule:Week:Compact" #> [7] "Schedule:Year" "Schedule:Compact" "Schedule:Constant" #> [10] "Schedule:File" #> #> $`Surface Construction Elements` #> [1] "Material" #> [2] "Material:NoMass" #> [3] "Material:InfraredTransparent" #> [4] "Material:AirGap" #> [5] "Material:RoofVegetation" #> [6] "WindowMaterial:SimpleGlazingSystem" #> [7] "WindowMaterial:Glazing" #> [8] "WindowMaterial:GlazingGroup:Thermochromic" #> [9] "WindowMaterial:Glazing:RefractionExtinctionMethod" #> [10] "WindowMaterial:Gas" #> [11] "WindowGap:SupportPillar" #> [12] "WindowGap:DeflectionState" #> [13] "WindowMaterial:GasMixture" #> [14] "WindowMaterial:Gap" #> [15] "WindowMaterial:Shade" #> [16] "WindowMaterial:ComplexShade" #> [17] "WindowMaterial:Blind" #> [18] "WindowMaterial:Screen" #> [19] "WindowMaterial:Shade:EquivalentLayer" #> [20] "WindowMaterial:Drape:EquivalentLayer" #> [21] "WindowMaterial:Blind:EquivalentLayer" #> [22] "WindowMaterial:Screen:EquivalentLayer" #> [23] "WindowMaterial:Glazing:EquivalentLayer" #> [24] "WindowMaterial:Gap:EquivalentLayer" #> [25] "MaterialProperty:MoisturePenetrationDepth:Settings" #> [26] "MaterialProperty:PhaseChange" #> [27] "MaterialProperty:PhaseChangeHysteresis" #> [28] "MaterialProperty:VariableThermalConductivity" #> [29] "MaterialProperty:HeatAndMoistureTransfer:Settings" #> [30] "MaterialProperty:HeatAndMoistureTransfer:SorptionIsotherm" #> [31] "MaterialProperty:HeatAndMoistureTransfer:Suction" #> [32] "MaterialProperty:HeatAndMoistureTransfer:Redistribution" #> [33] "MaterialProperty:HeatAndMoistureTransfer:Diffusion" #> [34] "MaterialProperty:HeatAndMoistureTransfer:ThermalConductivity" #> [35] "MaterialProperty:GlazingSpectralData" #> [36] "Construction" #> [37] "Construction:CfactorUndergroundWall" #> [38] "Construction:FfactorGroundFloor" #> [39] "Construction:InternalSource" #> [40] "WindowThermalModel:Params" #> [41] "Construction:ComplexFenestrationState" #> [42] "Construction:WindowEquivalentLayer" #> [43] "Construction:WindowDataFile" #> #> $`Thermal Zones and Surfaces` #> [1] "GlobalGeometryRules" "GeometryTransform" #> [3] "Zone" "ZoneList" #> [5] "ZoneGroup" "BuildingSurface:Detailed" #> [7] "Wall:Detailed" "RoofCeiling:Detailed" #> [9] "Floor:Detailed" "Wall:Exterior" #> [11] "Wall:Adiabatic" "Wall:Underground" #> [13] "Wall:Interzone" "Roof" #> [15] "Ceiling:Adiabatic" "Ceiling:Interzone" #> [17] "Floor:GroundContact" "Floor:Adiabatic" #> [19] "Floor:Interzone" "FenestrationSurface:Detailed" #> [21] "Window" "Door" #> [23] "GlazedDoor" "Window:Interzone" #> [25] "Door:Interzone" "GlazedDoor:Interzone" #> [27] "WindowProperty:ShadingControl" "WindowProperty:FrameAndDivider" #> [29] "WindowProperty:AirflowControl" "WindowProperty:StormWindow" #> [31] "InternalMass" "Shading:Site" #> [33] "Shading:Building" "Shading:Site:Detailed" #> [35] "Shading:Building:Detailed" "Shading:Overhang" #> [37] "Shading:Overhang:Projection" "Shading:Fin" #> [39] "Shading:Fin:Projection" "Shading:Zone:Detailed" #> [41] "ShadingProperty:Reflectance" #> #> $`Advanced Construction, Surface, Zone Concepts` #> [1] "SurfaceProperty:HeatTransferAlgorithm" #> [2] "SurfaceProperty:HeatTransferAlgorithm:MultipleSurface" #> [3] "SurfaceProperty:HeatTransferAlgorithm:SurfaceList" #> [4] "SurfaceProperty:HeatTransferAlgorithm:Construction" #> [5] "SurfaceControl:MovableInsulation" #> [6] "SurfaceProperty:OtherSideCoefficients" #> [7] "SurfaceProperty:OtherSideConditionsModel" #> [8] "SurfaceProperty:Underwater" #> [9] "Foundation:Kiva" #> [10] "Foundation:Kiva:Settings" #> [11] "SurfaceProperty:ExposedFoundationPerimeter" #> [12] "SurfaceConvectionAlgorithm:Inside:AdaptiveModelSelections" #> [13] "SurfaceConvectionAlgorithm:Outside:AdaptiveModelSelections" #> [14] "SurfaceConvectionAlgorithm:Inside:UserCurve" #> [15] "SurfaceConvectionAlgorithm:Outside:UserCurve" #> [16] "SurfaceProperty:ConvectionCoefficients" #> [17] "SurfaceProperty:ConvectionCoefficients:MultipleSurface" #> [18] "SurfaceProperties:VaporCoefficients" #> [19] "SurfaceProperty:ExteriorNaturalVentedCavity" #> [20] "SurfaceProperty:SolarIncidentInside" #> [21] "SurfaceProperty:LocalEnvironment" #> [22] "ZoneProperty:LocalEnvironment" #> [23] "SurfaceProperty:SurroundingSurfaces" #> [24] "ComplexFenestrationProperty:SolarAbsorbedLayers" #> [25] "ZoneProperty:UserViewFactors:bySurfaceName" #> #> $`Detailed Ground Heat Transfer` #> [1] "GroundHeatTransfer:Control" #> [2] "GroundHeatTransfer:Slab:Materials" #> [3] "GroundHeatTransfer:Slab:MatlProps" #> [4] "GroundHeatTransfer:Slab:BoundConds" #> [5] "GroundHeatTransfer:Slab:BldgProps" #> [6] "GroundHeatTransfer:Slab:Insulation" #> [7] "GroundHeatTransfer:Slab:EquivalentSlab" #> [8] "GroundHeatTransfer:Slab:AutoGrid" #> [9] "GroundHeatTransfer:Slab:ManualGrid" #> [10] "GroundHeatTransfer:Slab:XFACE" #> [11] "GroundHeatTransfer:Slab:YFACE" #> [12] "GroundHeatTransfer:Slab:ZFACE" #> [13] "GroundHeatTransfer:Basement:SimParameters" #> [14] "GroundHeatTransfer:Basement:MatlProps" #> [15] "GroundHeatTransfer:Basement:Insulation" #> [16] "GroundHeatTransfer:Basement:SurfaceProps" #> [17] "GroundHeatTransfer:Basement:BldgData" #> [18] "GroundHeatTransfer:Basement:Interior" #> [19] "GroundHeatTransfer:Basement:ComBldg" #> [20] "GroundHeatTransfer:Basement:EquivSlab" #> [21] "GroundHeatTransfer:Basement:EquivAutoGrid" #> [22] "GroundHeatTransfer:Basement:AutoGrid" #> [23] "GroundHeatTransfer:Basement:ManualGrid" #> [24] "GroundHeatTransfer:Basement:XFACE" #> [25] "GroundHeatTransfer:Basement:YFACE" #> [26] "GroundHeatTransfer:Basement:ZFACE" #> #> $`Room Air Models` #> [1] "RoomAirModelType" #> [2] "RoomAir:TemperaturePattern:UserDefined" #> [3] "RoomAir:TemperaturePattern:ConstantGradient" #> [4] "RoomAir:TemperaturePattern:TwoGradient" #> [5] "RoomAir:TemperaturePattern:NondimensionalHeight" #> [6] "RoomAir:TemperaturePattern:SurfaceMapping" #> [7] "RoomAir:Node" #> [8] "RoomAirSettings:OneNodeDisplacementVentilation" #> [9] "RoomAirSettings:ThreeNodeDisplacementVentilation" #> [10] "RoomAirSettings:CrossVentilation" #> [11] "RoomAirSettings:UnderFloorAirDistributionInterior" #> [12] "RoomAirSettings:UnderFloorAirDistributionExterior" #> [13] "RoomAir:Node:AirflowNetwork" #> [14] "RoomAir:Node:AirflowNetwork:AdjacentSurfaceList" #> [15] "RoomAir:Node:AirflowNetwork:InternalGains" #> [16] "RoomAir:Node:AirflowNetwork:HVACEquipment" #> [17] "RoomAirSettings:AirflowNetwork" #> #> $`Internal Gains` #> [1] "People" #> [2] "ComfortViewFactorAngles" #> [3] "Lights" #> [4] "ElectricEquipment" #> [5] "GasEquipment" #> [6] "HotWaterEquipment" #> [7] "SteamEquipment" #> [8] "OtherEquipment" #> [9] "ElectricEquipment:ITE:AirCooled" #> [10] "ZoneBaseboard:OutdoorTemperatureControlled" #> [11] "SwimmingPool:Indoor" #> [12] "ZoneContaminantSourceAndSink:CarbonDioxide" #> [13] "ZoneContaminantSourceAndSink:Generic:Constant" #> [14] "SurfaceContaminantSourceAndSink:Generic:PressureDriven" #> [15] "ZoneContaminantSourceAndSink:Generic:CutoffModel" #> [16] "ZoneContaminantSourceAndSink:Generic:DecaySource" #> [17] "SurfaceContaminantSourceAndSink:Generic:BoundaryLayerDiffusion" #> [18] "SurfaceContaminantSourceAndSink:Generic:DepositionVelocitySink" #> [19] "ZoneContaminantSourceAndSink:Generic:DepositionRateSink" #> #> $Daylighting #> [1] "Daylighting:Controls" #> [2] "Daylighting:ReferencePoint" #> [3] "Daylighting:DELight:ComplexFenestration" #> [4] "DaylightingDevice:Tubular" #> [5] "DaylightingDevice:Shelf" #> [6] "DaylightingDevice:LightWell" #> [7] "Output:DaylightFactors" #> [8] "Output:IlluminanceMap" #> [9] "OutputControl:IlluminanceMap:Style" #> #> $`Zone Airflow` #> [1] "ZoneInfiltration:DesignFlowRate" #> [2] "ZoneInfiltration:EffectiveLeakageArea" #> [3] "ZoneInfiltration:FlowCoefficient" #> [4] "ZoneVentilation:DesignFlowRate" #> [5] "ZoneVentilation:WindandStackOpenArea" #> [6] "ZoneAirBalance:OutdoorAir" #> [7] "ZoneMixing" #> [8] "ZoneCrossMixing" #> [9] "ZoneRefrigerationDoorMixing" #> [10] "ZoneEarthtube" #> [11] "ZoneCoolTower:Shower" #> [12] "ZoneThermalChimney" #> #> $`Natural Ventilation and Duct Leakage` #> [1] "AirflowNetwork:SimulationControl" #> [2] "AirflowNetwork:MultiZone:Zone" #> [3] "AirflowNetwork:MultiZone:Surface" #> [4] "AirflowNetwork:MultiZone:ReferenceCrackConditions" #> [5] "AirflowNetwork:MultiZone:Surface:Crack" #> [6] "AirflowNetwork:MultiZone:Surface:EffectiveLeakageArea" #> [7] "AirflowNetwork:MultiZone:Component:DetailedOpening" #> [8] "AirflowNetwork:MultiZone:Component:SimpleOpening" #> [9] "AirflowNetwork:MultiZone:Component:HorizontalOpening" #> [10] "AirflowNetwork:MultiZone:Component:ZoneExhaustFan" #> [11] "AirflowNetwork:MultiZone:ExternalNode" #> [12] "AirflowNetwork:MultiZone:WindPressureCoefficientArray" #> [13] "AirflowNetwork:MultiZone:WindPressureCoefficientValues" #> [14] "AirflowNetwork:ZoneControl:PressureController" #> [15] "AirflowNetwork:Distribution:Node" #> [16] "AirflowNetwork:Distribution:Component:Leak" #> [17] "AirflowNetwork:Distribution:Component:LeakageRatio" #> [18] "AirflowNetwork:Distribution:Component:Duct" #> [19] "AirflowNetwork:Distribution:Component:Fan" #> [20] "AirflowNetwork:Distribution:Component:Coil" #> [21] "AirflowNetwork:Distribution:Component:HeatExchanger" #> [22] "AirflowNetwork:Distribution:Component:TerminalUnit" #> [23] "AirflowNetwork:Distribution:Component:ConstantPressureDrop" #> [24] "AirflowNetwork:Distribution:Component:OutdoorAirFlow" #> [25] "AirflowNetwork:Distribution:Component:ReliefAirFlow" #> [26] "AirflowNetwork:Distribution:Linkage" #> [27] "AirflowNetwork:Distribution:DuctViewFactors" #> [28] "AirflowNetwork:OccupantVentilationControl" #> [29] "AirflowNetwork:IntraZone:Node" #> [30] "AirflowNetwork:IntraZone:Linkage" #> #> $`Exterior Equipment` #> [1] "Exterior:Lights" "Exterior:FuelEquipment" #> [3] "Exterior:WaterEquipment" #> #> $`HVAC Templates` #> [1] "HVACTemplate:Thermostat" #> [2] "HVACTemplate:Zone:IdealLoadsAirSystem" #> [3] "HVACTemplate:Zone:BaseboardHeat" #> [4] "HVACTemplate:Zone:FanCoil" #> [5] "HVACTemplate:Zone:PTAC" #> [6] "HVACTemplate:Zone:PTHP" #> [7] "HVACTemplate:Zone:WaterToAirHeatPump" #> [8] "HVACTemplate:Zone:VRF" #> [9] "HVACTemplate:Zone:Unitary" #> [10] "HVACTemplate:Zone:VAV" #> [11] "HVACTemplate:Zone:VAV:FanPowered" #> [12] "HVACTemplate:Zone:VAV:HeatAndCool" #> [13] "HVACTemplate:Zone:ConstantVolume" #> [14] "HVACTemplate:Zone:DualDuct" #> [15] "HVACTemplate:System:VRF" #> [16] "HVACTemplate:System:Unitary" #> [17] "HVACTemplate:System:UnitaryHeatPump:AirToAir" #> [18] "HVACTemplate:System:UnitarySystem" #> [19] "HVACTemplate:System:VAV" #> [20] "HVACTemplate:System:PackagedVAV" #> [21] "HVACTemplate:System:ConstantVolume" #> [22] "HVACTemplate:System:DualDuct" #> [23] "HVACTemplate:System:DedicatedOutdoorAir" #> [24] "HVACTemplate:Plant:ChilledWaterLoop" #> [25] "HVACTemplate:Plant:Chiller" #> [26] "HVACTemplate:Plant:Chiller:ObjectReference" #> [27] "HVACTemplate:Plant:Tower" #> [28] "HVACTemplate:Plant:Tower:ObjectReference" #> [29] "HVACTemplate:Plant:HotWaterLoop" #> [30] "HVACTemplate:Plant:Boiler" #> [31] "HVACTemplate:Plant:Boiler:ObjectReference" #> [32] "HVACTemplate:Plant:MixedWaterLoop" #> #> $`HVAC Design Objects` #> [1] "DesignSpecification:OutdoorAir" #> [2] "DesignSpecification:ZoneAirDistribution" #> [3] "Sizing:Parameters" #> [4] "Sizing:Zone" #> [5] "DesignSpecification:ZoneHVAC:Sizing" #> [6] "DesignSpecification:AirTerminal:Sizing" #> [7] "Sizing:System" #> [8] "Sizing:Plant" #> [9] "OutputControl:Sizing:Style" #> #> $`Zone HVAC Controls and Thermostats` #> [1] "ZoneControl:Humidistat" #> [2] "ZoneControl:Thermostat" #> [3] "ZoneControl:Thermostat:OperativeTemperature" #> [4] "ZoneControl:Thermostat:ThermalComfort" #> [5] "ZoneControl:Thermostat:TemperatureAndHumidity" #> [6] "ThermostatSetpoint:SingleHeating" #> [7] "ThermostatSetpoint:SingleCooling" #> [8] "ThermostatSetpoint:SingleHeatingOrCooling" #> [9] "ThermostatSetpoint:DualSetpoint" #> [10] "ThermostatSetpoint:ThermalComfort:Fanger:SingleHeating" #> [11] "ThermostatSetpoint:ThermalComfort:Fanger:SingleCooling" #> [12] "ThermostatSetpoint:ThermalComfort:Fanger:SingleHeatingOrCooling" #> [13] "ThermostatSetpoint:ThermalComfort:Fanger:DualSetpoint" #> [14] "ZoneControl:Thermostat:StagedDualSetpoint" #> [15] "ZoneControl:ContaminantController" #> #> $`Zone HVAC Forced Air Units` #> [1] "ZoneHVAC:IdealLoadsAirSystem" #> [2] "ZoneHVAC:FourPipeFanCoil" #> [3] "ZoneHVAC:WindowAirConditioner" #> [4] "ZoneHVAC:PackagedTerminalAirConditioner" #> [5] "ZoneHVAC:PackagedTerminalHeatPump" #> [6] "ZoneHVAC:WaterToAirHeatPump" #> [7] "ZoneHVAC:Dehumidifier:DX" #> [8] "ZoneHVAC:EnergyRecoveryVentilator" #> [9] "ZoneHVAC:EnergyRecoveryVentilator:Controller" #> [10] "ZoneHVAC:UnitVentilator" #> [11] "ZoneHVAC:UnitHeater" #> [12] "ZoneHVAC:EvaporativeCoolerUnit" #> [13] "ZoneHVAC:OutdoorAirUnit" #> [14] "ZoneHVAC:OutdoorAirUnit:EquipmentList" #> [15] "ZoneHVAC:TerminalUnit:VariableRefrigerantFlow" #> #> $`Zone HVAC Radiative/Convective Units` #> [1] "ZoneHVAC:Baseboard:RadiantConvective:Water" #> [2] "ZoneHVAC:Baseboard:RadiantConvective:Steam" #> [3] "ZoneHVAC:Baseboard:RadiantConvective:Electric" #> [4] "ZoneHVAC:CoolingPanel:RadiantConvective:Water" #> [5] "ZoneHVAC:Baseboard:Convective:Water" #> [6] "ZoneHVAC:Baseboard:Convective:Electric" #> [7] "ZoneHVAC:LowTemperatureRadiant:VariableFlow" #> [8] "ZoneHVAC:LowTemperatureRadiant:ConstantFlow" #> [9] "ZoneHVAC:LowTemperatureRadiant:Electric" #> [10] "ZoneHVAC:LowTemperatureRadiant:SurfaceGroup" #> [11] "ZoneHVAC:HighTemperatureRadiant" #> [12] "ZoneHVAC:VentilatedSlab" #> [13] "ZoneHVAC:VentilatedSlab:SlabGroup" #> #> $`Zone HVAC Air Loop Terminal Units` #> [1] "AirTerminal:SingleDuct:Uncontrolled" #> [2] "AirTerminal:SingleDuct:ConstantVolume:Reheat" #> [3] "AirTerminal:SingleDuct:VAV:NoReheat" #> [4] "AirTerminal:SingleDuct:VAV:Reheat" #> [5] "AirTerminal:SingleDuct:VAV:Reheat:VariableSpeedFan" #> [6] "AirTerminal:SingleDuct:VAV:HeatAndCool:NoReheat" #> [7] "AirTerminal:SingleDuct:VAV:HeatAndCool:Reheat" #> [8] "AirTerminal:SingleDuct:SeriesPIU:Reheat" #> [9] "AirTerminal:SingleDuct:ParallelPIU:Reheat" #> [10] "AirTerminal:SingleDuct:ConstantVolume:FourPipeInduction" #> [11] "AirTerminal:SingleDuct:ConstantVolume:FourPipeBeam" #> [12] "AirTerminal:SingleDuct:ConstantVolume:CooledBeam" #> [13] "AirTerminal:SingleDuct:Mixer" #> [14] "AirTerminal:DualDuct:ConstantVolume" #> [15] "AirTerminal:DualDuct:VAV" #> [16] "AirTerminal:DualDuct:VAV:OutdoorAir" #> [17] "ZoneHVAC:AirDistributionUnit" #> #> $`Zone HVAC Equipment Connections` #> [1] "ZoneHVAC:EquipmentList" "ZoneHVAC:EquipmentConnections" #> #> $Fans #> [1] "Fan:SystemModel" "Fan:ConstantVolume" #> [3] "Fan:VariableVolume" "Fan:OnOff" #> [5] "Fan:ZoneExhaust" "FanPerformance:NightVentilation" #> [7] "Fan:ComponentModel" #> #> $Coils #> [1] "Coil:Cooling:Water" #> [2] "Coil:Cooling:Water:DetailedGeometry" #> [3] "Coil:Cooling:DX:SingleSpeed" #> [4] "Coil:Cooling:DX:TwoSpeed" #> [5] "Coil:Cooling:DX:MultiSpeed" #> [6] "Coil:Cooling:DX:VariableSpeed" #> [7] "Coil:Cooling:DX:TwoStageWithHumidityControlMode" #> [8] "CoilPerformance:DX:Cooling" #> [9] "Coil:Cooling:DX:VariableRefrigerantFlow" #> [10] "Coil:Heating:DX:VariableRefrigerantFlow" #> [11] "Coil:Cooling:DX:VariableRefrigerantFlow:FluidTemperatureControl" #> [12] "Coil:Heating:DX:VariableRefrigerantFlow:FluidTemperatureControl" #> [13] "Coil:Heating:Water" #> [14] "Coil:Heating:Steam" #> [15] "Coil:Heating:Electric" #> [16] "Coil:Heating:Electric:MultiStage" #> [17] "Coil:Heating:Fuel" #> [18] "Coil:Heating:Gas:MultiStage" #> [19] "Coil:Heating:Desuperheater" #> [20] "Coil:Heating:DX:SingleSpeed" #> [21] "Coil:Heating:DX:MultiSpeed" #> [22] "Coil:Heating:DX:VariableSpeed" #> [23] "Coil:Cooling:WaterToAirHeatPump:ParameterEstimation" #> [24] "Coil:Heating:WaterToAirHeatPump:ParameterEstimation" #> [25] "Coil:Cooling:WaterToAirHeatPump:EquationFit" #> [26] "Coil:Cooling:WaterToAirHeatPump:VariableSpeedEquationFit" #> [27] "Coil:Heating:WaterToAirHeatPump:EquationFit" #> [28] "Coil:Heating:WaterToAirHeatPump:VariableSpeedEquationFit" #> [29] "Coil:WaterHeating:AirToWaterHeatPump:Pumped" #> [30] "Coil:WaterHeating:AirToWaterHeatPump:Wrapped" #> [31] "Coil:WaterHeating:AirToWaterHeatPump:VariableSpeed" #> [32] "Coil:WaterHeating:Desuperheater" #> [33] "CoilSystem:Cooling:DX" #> [34] "CoilSystem:Heating:DX" #> [35] "CoilSystem:Cooling:Water:HeatExchangerAssisted" #> [36] "CoilSystem:Cooling:DX:HeatExchangerAssisted" #> [37] "CoilSystem:IntegratedHeatPump:AirSource" #> [38] "Coil:Cooling:DX:SingleSpeed:ThermalStorage" #> #> $`Evaporative Coolers` #> [1] "EvaporativeCooler:Direct:CelDekPad" #> [2] "EvaporativeCooler:Indirect:CelDekPad" #> [3] "EvaporativeCooler:Indirect:WetCoil" #> [4] "EvaporativeCooler:Indirect:ResearchSpecial" #> [5] "EvaporativeCooler:Direct:ResearchSpecial" #> #> $`Humidifiers and Dehumidifiers` #> [1] "Humidifier:Steam:Electric" "Humidifier:Steam:Gas" #> [3] "Dehumidifier:Desiccant:NoFans" "Dehumidifier:Desiccant:System" #> #> $`Heat Recovery` #> [1] "HeatExchanger:AirToAir:FlatPlate" #> [2] "HeatExchanger:AirToAir:SensibleAndLatent" #> [3] "HeatExchanger:Desiccant:BalancedFlow" #> [4] "HeatExchanger:Desiccant:BalancedFlow:PerformanceDataType1" #> #> $`Unitary Equipment` #> [1] "AirLoopHVAC:UnitarySystem" #> [2] "UnitarySystemPerformance:Multispeed" #> [3] "AirLoopHVAC:Unitary:Furnace:HeatOnly" #> [4] "AirLoopHVAC:Unitary:Furnace:HeatCool" #> [5] "AirLoopHVAC:UnitaryHeatOnly" #> [6] "AirLoopHVAC:UnitaryHeatCool" #> [7] "AirLoopHVAC:UnitaryHeatPump:AirToAir" #> [8] "AirLoopHVAC:UnitaryHeatPump:WaterToAir" #> [9] "AirLoopHVAC:UnitaryHeatCool:VAVChangeoverBypass" #> [10] "AirLoopHVAC:UnitaryHeatPump:AirToAir:MultiSpeed" #> #> $`Variable Refrigerant Flow Equipment` #> [1] "AirConditioner:VariableRefrigerantFlow" #> [2] "AirConditioner:VariableRefrigerantFlow:FluidTemperatureControl" #> [3] "AirConditioner:VariableRefrigerantFlow:FluidTemperatureControl:HR" #> [4] "ZoneTerminalUnitList" #> #> $Controllers #> [1] "Controller:WaterCoil" "Controller:OutdoorAir" #> [3] "Controller:MechanicalVentilation" "AirLoopHVAC:ControllerList" #> #> $`Air Distribution` #> [1] "AirLoopHVAC" #> [2] "AirLoopHVAC:OutdoorAirSystem:EquipmentList" #> [3] "AirLoopHVAC:OutdoorAirSystem" #> [4] "OutdoorAir:Mixer" #> [5] "AirLoopHVAC:ZoneSplitter" #> [6] "AirLoopHVAC:SupplyPlenum" #> [7] "AirLoopHVAC:SupplyPath" #> [8] "AirLoopHVAC:ZoneMixer" #> [9] "AirLoopHVAC:ReturnPlenum" #> [10] "AirLoopHVAC:ReturnPath" #> #> $`Node-Branch Management` #> [1] "Branch" #> [2] "BranchList" #> [3] "Connector:Splitter" #> [4] "Connector:Mixer" #> [5] "ConnectorList" #> [6] "NodeList" #> [7] "OutdoorAir:Node" #> [8] "OutdoorAir:NodeList" #> [9] "Pipe:Adiabatic" #> [10] "Pipe:Adiabatic:Steam" #> [11] "Pipe:Indoor" #> [12] "Pipe:Outdoor" #> [13] "Pipe:Underground" #> [14] "PipingSystem:Underground:Domain" #> [15] "PipingSystem:Underground:PipeCircuit" #> [16] "PipingSystem:Underground:PipeSegment" #> [17] "Duct" #> #> $Pumps #> [1] "Pump:VariableSpeed" "Pump:ConstantSpeed" #> [3] "Pump:VariableSpeed:Condensate" "HeaderedPumps:ConstantSpeed" #> [5] "HeaderedPumps:VariableSpeed" #> #> $`Plant-Condenser Flow Control` #> [1] "TemperingValve" #> #> $`Non-Zone Equipment` #> [1] "LoadProfile:Plant" #> #> $`Solar Collectors` #> [1] "SolarCollectorPerformance:FlatPlate" #> [2] "SolarCollector:FlatPlate:Water" #> [3] "SolarCollector:FlatPlate:PhotovoltaicThermal" #> [4] "SolarCollectorPerformance:PhotovoltaicThermal:Simple" #> [5] "SolarCollector:IntegralCollectorStorage" #> [6] "SolarCollectorPerformance:IntegralCollectorStorage" #> [7] "SolarCollector:UnglazedTranspired" #> [8] "SolarCollector:UnglazedTranspired:Multisystem" #> #> $`Plant Heating and Cooling Equipment` #> [1] "Boiler:HotWater" #> [2] "Boiler:Steam" #> [3] "Chiller:Electric:EIR" #> [4] "Chiller:Electric:ReformulatedEIR" #> [5] "Chiller:Electric" #> [6] "Chiller:Absorption:Indirect" #> [7] "Chiller:Absorption" #> [8] "Chiller:ConstantCOP" #> [9] "Chiller:EngineDriven" #> [10] "Chiller:CombustionTurbine" #> [11] "ChillerHeater:Absorption:DirectFired" #> [12] "ChillerHeater:Absorption:DoubleEffect" #> [13] "HeatPump:WaterToWater:EquationFit:Heating" #> [14] "HeatPump:WaterToWater:EquationFit:Cooling" #> [15] "HeatPump:WaterToWater:ParameterEstimation:Cooling" #> [16] "HeatPump:WaterToWater:ParameterEstimation:Heating" #> [17] "DistrictCooling" #> [18] "DistrictHeating" #> [19] "PlantComponent:TemperatureSource" #> [20] "CentralHeatPumpSystem" #> [21] "ChillerHeaterPerformance:Electric:EIR" #> #> $`Condenser Equipment and Heat Exchangers` #> [1] "CoolingTower:SingleSpeed" #> [2] "CoolingTower:TwoSpeed" #> [3] "CoolingTower:VariableSpeed:Merkel" #> [4] "CoolingTower:VariableSpeed" #> [5] "CoolingTowerPerformance:CoolTools" #> [6] "CoolingTowerPerformance:YorkCalc" #> [7] "EvaporativeFluidCooler:SingleSpeed" #> [8] "EvaporativeFluidCooler:TwoSpeed" #> [9] "FluidCooler:SingleSpeed" #> [10] "FluidCooler:TwoSpeed" #> [11] "GroundHeatExchanger:Vertical" #> [12] "GroundHeatExchanger:Pond" #> [13] "GroundHeatExchanger:Surface" #> [14] "GroundHeatExchanger:HorizontalTrench" #> [15] "GroundHeatExchanger:Slinky" #> [16] "HeatExchanger:FluidToFluid" #> #> $`Water Heaters and Thermal Storage` #> [1] "WaterHeater:Mixed" #> [2] "WaterHeater:Stratified" #> [3] "WaterHeater:Sizing" #> [4] "WaterHeater:HeatPump:PumpedCondenser" #> [5] "WaterHeater:HeatPump:WrappedCondenser" #> [6] "ThermalStorage:Ice:Simple" #> [7] "ThermalStorage:Ice:Detailed" #> [8] "ThermalStorage:ChilledWater:Mixed" #> [9] "ThermalStorage:ChilledWater:Stratified" #> #> $`Plant-Condenser Loops` #> [1] "PlantLoop" "CondenserLoop" #> #> $`Plant-Condenser Control` #> [1] "PlantEquipmentList" #> [2] "CondenserEquipmentList" #> [3] "PlantEquipmentOperation:Uncontrolled" #> [4] "PlantEquipmentOperation:CoolingLoad" #> [5] "PlantEquipmentOperation:HeatingLoad" #> [6] "PlantEquipmentOperation:OutdoorDryBulb" #> [7] "PlantEquipmentOperation:OutdoorWetBulb" #> [8] "PlantEquipmentOperation:OutdoorRelativeHumidity" #> [9] "PlantEquipmentOperation:OutdoorDewpoint" #> [10] "PlantEquipmentOperation:ComponentSetpoint" #> [11] "PlantEquipmentOperation:ThermalEnergyStorage" #> [12] "PlantEquipmentOperation:OutdoorDryBulbDifference" #> [13] "PlantEquipmentOperation:OutdoorWetBulbDifference" #> [14] "PlantEquipmentOperation:OutdoorDewpointDifference" #> [15] "PlantEquipmentOperationSchemes" #> [16] "CondenserEquipmentOperationSchemes" #> #> $`Energy Management System (EMS)` #> [1] "EnergyManagementSystem:Sensor" #> [2] "EnergyManagementSystem:Actuator" #> [3] "EnergyManagementSystem:ProgramCallingManager" #> [4] "EnergyManagementSystem:Program" #> [5] "EnergyManagementSystem:Subroutine" #> [6] "EnergyManagementSystem:GlobalVariable" #> [7] "EnergyManagementSystem:OutputVariable" #> [8] "EnergyManagementSystem:MeteredOutputVariable" #> [9] "EnergyManagementSystem:TrendVariable" #> [10] "EnergyManagementSystem:InternalVariable" #> [11] "EnergyManagementSystem:CurveOrTableIndexVariable" #> [12] "EnergyManagementSystem:ConstructionIndexVariable" #> #> $`External Interface` #> [1] "ExternalInterface" #> [2] "ExternalInterface:Schedule" #> [3] "ExternalInterface:Variable" #> [4] "ExternalInterface:Actuator" #> [5] "ExternalInterface:FunctionalMockupUnitImport" #> [6] "ExternalInterface:FunctionalMockupUnitImport:From:Variable" #> [7] "ExternalInterface:FunctionalMockupUnitImport:To:Schedule" #> [8] "ExternalInterface:FunctionalMockupUnitImport:To:Actuator" #> [9] "ExternalInterface:FunctionalMockupUnitImport:To:Variable" #> [10] "ExternalInterface:FunctionalMockupUnitExport:From:Variable" #> [11] "ExternalInterface:FunctionalMockupUnitExport:To:Schedule" #> [12] "ExternalInterface:FunctionalMockupUnitExport:To:Actuator" #> [13] "ExternalInterface:FunctionalMockupUnitExport:To:Variable" #> #> $`User Defined HVAC and Plant Component Models` #> [1] "ZoneHVAC:ForcedAir:UserDefined" "AirTerminal:SingleDuct:UserDefined" #> [3] "Coil:UserDefined" "PlantComponent:UserDefined" #> [5] "PlantEquipmentOperation:UserDefined" #> #> $`System Availability Managers` #> [1] "AvailabilityManager:Scheduled" #> [2] "AvailabilityManager:ScheduledOn" #> [3] "AvailabilityManager:ScheduledOff" #> [4] "AvailabilityManager:OptimumStart" #> [5] "AvailabilityManager:NightCycle" #> [6] "AvailabilityManager:DifferentialThermostat" #> [7] "AvailabilityManager:HighTemperatureTurnOff" #> [8] "AvailabilityManager:HighTemperatureTurnOn" #> [9] "AvailabilityManager:LowTemperatureTurnOff" #> [10] "AvailabilityManager:LowTemperatureTurnOn" #> [11] "AvailabilityManager:NightVentilation" #> [12] "AvailabilityManager:HybridVentilation" #> [13] "AvailabilityManagerAssignmentList" #> #> $`Setpoint Managers` #> [1] "SetpointManager:Scheduled" #> [2] "SetpointManager:Scheduled:DualSetpoint" #> [3] "SetpointManager:OutdoorAirReset" #> [4] "SetpointManager:SingleZone:Reheat" #> [5] "SetpointManager:SingleZone:Heating" #> [6] "SetpointManager:SingleZone:Cooling" #> [7] "SetpointManager:SingleZone:Humidity:Minimum" #> [8] "SetpointManager:SingleZone:Humidity:Maximum" #> [9] "SetpointManager:MixedAir" #> [10] "SetpointManager:OutdoorAirPretreat" #> [11] "SetpointManager:Warmest" #> [12] "SetpointManager:Coldest" #> [13] "SetpointManager:ReturnAirBypassFlow" #> [14] "SetpointManager:WarmestTemperatureFlow" #> [15] "SetpointManager:MultiZone:Heating:Average" #> [16] "SetpointManager:MultiZone:Cooling:Average" #> [17] "SetpointManager:MultiZone:MinimumHumidity:Average" #> [18] "SetpointManager:MultiZone:MaximumHumidity:Average" #> [19] "SetpointManager:MultiZone:Humidity:Minimum" #> [20] "SetpointManager:MultiZone:Humidity:Maximum" #> [21] "SetpointManager:FollowOutdoorAirTemperature" #> [22] "SetpointManager:FollowSystemNodeTemperature" #> [23] "SetpointManager:FollowGroundTemperature" #> [24] "SetpointManager:CondenserEnteringReset" #> [25] "SetpointManager:CondenserEnteringReset:Ideal" #> [26] "SetpointManager:SingleZone:OneStageCooling" #> [27] "SetpointManager:SingleZone:OneStageHeating" #> [28] "SetpointManager:ReturnTemperature:ChilledWater" #> [29] "SetpointManager:ReturnTemperature:HotWater" #> #> $Refrigeration #> [1] "Refrigeration:Case" #> [2] "Refrigeration:CompressorRack" #> [3] "Refrigeration:CaseAndWalkInList" #> [4] "Refrigeration:Condenser:AirCooled" #> [5] "Refrigeration:Condenser:EvaporativeCooled" #> [6] "Refrigeration:Condenser:WaterCooled" #> [7] "Refrigeration:Condenser:Cascade" #> [8] "Refrigeration:GasCooler:AirCooled" #> [9] "Refrigeration:TransferLoadList" #> [10] "Refrigeration:Subcooler" #> [11] "Refrigeration:Compressor" #> [12] "Refrigeration:CompressorList" #> [13] "Refrigeration:System" #> [14] "Refrigeration:TranscriticalSystem" #> [15] "Refrigeration:SecondarySystem" #> [16] "Refrigeration:WalkIn" #> [17] "Refrigeration:AirChiller" #> [18] "ZoneHVAC:RefrigerationChillerSet" #> #> $`Demand Limiting Controls` #> [1] "DemandManagerAssignmentList" "DemandManager:ExteriorLights" #> [3] "DemandManager:Lights" "DemandManager:ElectricEquipment" #> [5] "DemandManager:Thermostats" "DemandManager:Ventilation" #> #> $`Electric Load Center-Generator Specifications` #> [1] "Generator:InternalCombustionEngine" #> [2] "Generator:CombustionTurbine" #> [3] "Generator:MicroTurbine" #> [4] "Generator:Photovoltaic" #> [5] "PhotovoltaicPerformance:Simple" #> [6] "PhotovoltaicPerformance:EquivalentOne-Diode" #> [7] "PhotovoltaicPerformance:Sandia" #> [8] "Generator:FuelCell" #> [9] "Generator:FuelCell:PowerModule" #> [10] "Generator:FuelCell:AirSupply" #> [11] "Generator:FuelCell:WaterSupply" #> [12] "Generator:FuelCell:AuxiliaryHeater" #> [13] "Generator:FuelCell:ExhaustGasToWaterHeatExchanger" #> [14] "Generator:FuelCell:ElectricalStorage" #> [15] "Generator:FuelCell:Inverter" #> [16] "Generator:FuelCell:StackCooler" #> [17] "Generator:MicroCHP" #> [18] "Generator:MicroCHP:NonNormalizedParameters" #> [19] "Generator:FuelSupply" #> [20] "Generator:WindTurbine" #> [21] "ElectricLoadCenter:Generators" #> [22] "ElectricLoadCenter:Inverter:Simple" #> [23] "ElectricLoadCenter:Inverter:FunctionOfPower" #> [24] "ElectricLoadCenter:Inverter:LookUpTable" #> [25] "ElectricLoadCenter:Storage:Simple" #> [26] "ElectricLoadCenter:Storage:Battery" #> [27] "ElectricLoadCenter:Transformer" #> [28] "ElectricLoadCenter:Distribution" #> [29] "ElectricLoadCenter:Storage:Converter" #> #> $`Water Systems` #> [1] "WaterUse:Equipment" "WaterUse:Connections" "WaterUse:Storage" #> [4] "WaterUse:Well" "WaterUse:RainCollector" #> #> $`Operational Faults` #> [1] "FaultModel:TemperatureSensorOffset:OutdoorAir" #> [2] "FaultModel:HumiditySensorOffset:OutdoorAir" #> [3] "FaultModel:EnthalpySensorOffset:OutdoorAir" #> [4] "FaultModel:PressureSensorOffset:OutdoorAir" #> [5] "FaultModel:TemperatureSensorOffset:ReturnAir" #> [6] "FaultModel:EnthalpySensorOffset:ReturnAir" #> [7] "FaultModel:TemperatureSensorOffset:ChillerSupplyWater" #> [8] "FaultModel:TemperatureSensorOffset:CoilSupplyAir" #> [9] "FaultModel:TemperatureSensorOffset:CondenserSupplyWater" #> [10] "FaultModel:ThermostatOffset" #> [11] "FaultModel:HumidistatOffset" #> [12] "FaultModel:Fouling:AirFilter" #> [13] "FaultModel:Fouling:Boiler" #> [14] "FaultModel:Fouling:EvaporativeCooler" #> [15] "FaultModel:Fouling:Chiller" #> [16] "FaultModel:Fouling:CoolingTower" #> [17] "FaultModel:Fouling:Coil" #> #> $`General Data Entry` #> [1] "Matrix:TwoDimension" #> #> $`Hybrid Model` #> [1] "HybridModel:Zone" #> #> $`Performance Curves` #> [1] "Curve:Linear" "Curve:QuadLinear" #> [3] "Curve:Quadratic" "Curve:Cubic" #> [5] "Curve:Quartic" "Curve:Exponent" #> [7] "Curve:Bicubic" "Curve:Biquadratic" #> [9] "Curve:QuadraticLinear" "Curve:CubicLinear" #> [11] "Curve:Triquadratic" "Curve:Functional:PressureDrop" #> [13] "Curve:FanPressureRise" "Curve:ExponentialSkewNormal" #> [15] "Curve:Sigmoid" "Curve:RectangularHyperbola1" #> [17] "Curve:RectangularHyperbola2" "Curve:ExponentialDecay" #> [19] "Curve:DoubleExponentialDecay" "Curve:ChillerPartLoadWithLift" #> #> $`Performance Tables` #> [1] "Table:OneIndependentVariable" "Table:TwoIndependentVariables" #> [3] "Table:MultiVariableLookup" #> #> $`Fluid Properties` #> [1] "FluidProperties:Name" "FluidProperties:GlycolConcentration" #> [3] "FluidProperties:Temperatures" "FluidProperties:Saturated" #> [5] "FluidProperties:Superheated" "FluidProperties:Concentration" #> #> $Economics #> [1] "CurrencyType" "ComponentCost:Adjustments" #> [3] "ComponentCost:Reference" "ComponentCost:LineItem" #> [5] "UtilityCost:Tariff" "UtilityCost:Qualify" #> [7] "UtilityCost:Charge:Simple" "UtilityCost:Charge:Block" #> [9] "UtilityCost:Ratchet" "UtilityCost:Variable" #> [11] "UtilityCost:Computation" "LifeCycleCost:Parameters" #> [13] "LifeCycleCost:RecurringCosts" "LifeCycleCost:NonrecurringCost" #> [15] "LifeCycleCost:UsePriceEscalation" "LifeCycleCost:UseAdjustment" #> #> $Parametrics #> [1] "Parametric:SetValueForRun" "Parametric:Logic" #> [3] "Parametric:RunControl" "Parametric:FileNameSuffix" #> #> $`Output Reporting` #> [1] "Output:VariableDictionary" #> [2] "Output:Surfaces:List" #> [3] "Output:Surfaces:Drawing" #> [4] "Output:Schedules" #> [5] "Output:Constructions" #> [6] "Output:EnergyManagementSystem" #> [7] "OutputControl:SurfaceColorScheme" #> [8] "Output:Table:SummaryReports" #> [9] "Output:Table:TimeBins" #> [10] "Output:Table:Monthly" #> [11] "Output:Table:Annual" #> [12] "OutputControl:Table:Style" #> [13] "OutputControl:ReportingTolerances" #> [14] "Output:Variable" #> [15] "Output:Meter" #> [16] "Output:Meter:MeterFileOnly" #> [17] "Output:Meter:Cumulative" #> [18] "Output:Meter:Cumulative:MeterFileOnly" #> [19] "Meter:Custom" #> [20] "Meter:CustomDecrement" #> [21] "Output:SQLite" #> [22] "Output:EnvironmentalImpactFactors" #> [23] "EnvironmentalImpactFactors" #> [24] "FuelFactors" #> [25] "Output:Diagnostics" #> [26] "Output:DebuggingData" #> [27] "Output:PreprocessorMessage" #>
# } ## ------------------------------------------------ ## Method `Idf$is_valid_group` ## ------------------------------------------------ # \dontrun{ # check if input is a valid group name in current Idf idf$is_valid_group(c("Schedules", "Compliance Objects"))
#> [1] TRUE FALSE
# check if input is a valid group name in underlying Idd idf$is_valid_group(c("Schedules", "Compliance Objects"), all = TRUE)
#> [1] TRUE TRUE
# } ## ------------------------------------------------ ## Method `Idf$is_valid_class` ## ------------------------------------------------ # \dontrun{ # check if input is a valid class name in current Idf idf$is_valid_class(c("Building", "ShadowCalculation"))
#> [1] TRUE FALSE
# check if input is a valid class name in underlying Idd idf$is_valid_class(c("Building", "ShadowCalculation"), all = TRUE)
#> [1] TRUE TRUE
# } ## ------------------------------------------------ ## Method `Idf$definition` ## ------------------------------------------------ # \dontrun{ # get the IddObject object for specified class idf$definition("Version")
#> <IddObject: 'Version'> #> ── MEMO ──────────────────────────────────────────────────────────────────────── #> "Specifies the EnergyPlus version of the IDF file." #> #> ── PROPERTIES ────────────────────────────────────────────────────────────────── #> * Group: 'Simulation Parameters' #> * Unique: TRUE #> * Required: FALSE #> * Total fields: 1 #> #> ── FIELDS ────────────────────────────────────────────────────────────────────── #> 1: Version Identifier
# } ## ------------------------------------------------ ## Method `Idf$object_id` ## ------------------------------------------------ # \dontrun{ # get IDs of all objects in current Idf object idf$object_id()
#> $Version #> [1] 1 #> #> $SimulationControl #> [1] 7 #> #> $Building #> [1] 3 #> #> $`SurfaceConvectionAlgorithm:Inside` #> [1] 5 #> #> $`SurfaceConvectionAlgorithm:Outside` #> [1] 6 #> #> $HeatBalanceAlgorithm #> [1] 4 #> #> $Timestep #> [1] 2 #> #> $`Site:Location` #> [1] 9 #> #> $`SizingPeriod:DesignDay` #> [1] 10 11 #> #> $RunPeriod #> [1] 8 #> #> $ScheduleTypeLimits #> [1] 19 50 #> #> $`Schedule:Constant` #> [1] 53 #> #> $Material #> [1] 14 #> #> $`Material:NoMass` #> [1] 12 13 #> #> $Construction #> [1] 15 16 17 #> #> $GlobalGeometryRules #> [1] 20 #> #> $Zone #> [1] 18 #> #> $`BuildingSurface:Detailed` #> [1] 21 22 23 24 25 26 #> #> $OtherEquipment #> [1] 51 52 #> #> $`Exterior:Lights` #> [1] 49 #> #> $`Output:VariableDictionary` #> [1] 41 #> #> $`Output:Surfaces:Drawing` #> [1] 42 #> #> $`Output:Constructions` #> [1] 43 #> #> $`Output:Table:SummaryReports` #> [1] 48 #> #> $`OutputControl:Table:Style` #> [1] 47 #> #> $`Output:Variable` #> [1] 27 28 29 30 31 32 33 34 35 36 37 38 39 40 #> #> $`Output:Meter:MeterFileOnly` #> [1] 44 45 46 #>
# get IDs of all objects in current Idf object, and merge them into a # single integer vector idf$object_id(simplify = TRUE)
#> [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #> [26] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 #> [51] 51 52 53
# get IDs of objects in class Version and Zone idf$object_id(c("Version", "Zone"))
#> $Version #> [1] 1 #> #> $Zone #> [1] 18 #>
# get IDs of objects in class Version and Zone, and merge them into a # single integer vector idf$object_id(c("Version", "Zone"), simplify = TRUE)
#> [1] 1 18
# } ## ------------------------------------------------ ## Method `Idf$object_name` ## ------------------------------------------------ # \dontrun{ # get names of all objects in current Idf object idf$object_name()
#> $Version #> [1] NA #> #> $SimulationControl #> [1] NA #> #> $Building #> [1] "Simple One Zone (Wireframe DXF)" #> #> $`SurfaceConvectionAlgorithm:Inside` #> [1] NA #> #> $`SurfaceConvectionAlgorithm:Outside` #> [1] NA #> #> $HeatBalanceAlgorithm #> [1] NA #> #> $Timestep #> [1] NA #> #> $`Site:Location` #> [1] "Denver Centennial Golden N_CO_USA Design_Conditions" #> #> $`SizingPeriod:DesignDay` #> [1] "Denver Centennial Golden N Ann Htg 99% Condns DB" #> [2] "Denver Centennial Golden N Ann Clg 1% Condns DB=>MWB" #> #> $RunPeriod #> [1] NA #> #> $ScheduleTypeLimits #> [1] "Fraction" "On/Off" #> #> $`Schedule:Constant` #> [1] "AlwaysOn" #> #> $Material #> [1] "C5 - 4 IN HW CONCRETE" #> #> $`Material:NoMass` #> [1] "R13LAYER" "R31LAYER" #> #> $Construction #> [1] "R13WALL" "FLOOR" "ROOF31" #> #> $GlobalGeometryRules #> [1] NA #> #> $Zone #> [1] "ZONE ONE" #> #> $`BuildingSurface:Detailed` #> [1] "Zn001:Wall001" "Zn001:Wall002" "Zn001:Wall003" "Zn001:Wall004" #> [5] "Zn001:Flr001" "Zn001:Roof001" #> #> $OtherEquipment #> [1] "Test 352a" "Test 352 minus" #> #> $`Exterior:Lights` #> [1] "ExtLights" #> #> $`Output:VariableDictionary` #> [1] NA #> #> $`Output:Surfaces:Drawing` #> [1] NA #> #> $`Output:Constructions` #> [1] NA #> #> $`Output:Table:SummaryReports` #> [1] NA #> #> $`OutputControl:Table:Style` #> [1] NA #> #> $`Output:Variable` #> [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA #> #> $`Output:Meter:MeterFileOnly` #> [1] NA NA NA #>
# get names of all objects in current Idf object, and merge them into # a single character vector idf$object_name(simplify = TRUE)
#> [1] NA #> [2] NA #> [3] "Simple One Zone (Wireframe DXF)" #> [4] NA #> [5] NA #> [6] NA #> [7] NA #> [8] NA #> [9] "Denver Centennial Golden N_CO_USA Design_Conditions" #> [10] "Denver Centennial Golden N Ann Htg 99% Condns DB" #> [11] "Denver Centennial Golden N Ann Clg 1% Condns DB=>MWB" #> [12] "R13LAYER" #> [13] "R31LAYER" #> [14] "C5 - 4 IN HW CONCRETE" #> [15] "R13WALL" #> [16] "FLOOR" #> [17] "ROOF31" #> [18] "ZONE ONE" #> [19] "Fraction" #> [20] NA #> [21] "Zn001:Wall001" #> [22] "Zn001:Wall002" #> [23] "Zn001:Wall003" #> [24] "Zn001:Wall004" #> [25] "Zn001:Flr001" #> [26] "Zn001:Roof001" #> [27] NA #> [28] NA #> [29] NA #> [30] NA #> [31] NA #> [32] NA #> [33] NA #> [34] NA #> [35] NA #> [36] NA #> [37] NA #> [38] NA #> [39] NA #> [40] NA #> [41] NA #> [42] NA #> [43] NA #> [44] NA #> [45] NA #> [46] NA #> [47] NA #> [48] NA #> [49] "ExtLights" #> [50] "On/Off" #> [51] "Test 352a" #> [52] "Test 352 minus" #> [53] "AlwaysOn"
# get names of objects in class Version and Zone idf$object_name(c("Version", "Zone"))
#> $Version #> [1] NA #> #> $Zone #> [1] "ZONE ONE" #>
# get names of objects in class Version and Zone, and merge them into # a single character vector idf$object_name(c("Version", "Zone"), simplify = TRUE)
#> [1] NA "ZONE ONE"
# } ## ------------------------------------------------ ## Method `Idf$object_num` ## ------------------------------------------------ # \dontrun{ # get total number of objects idf$object_num()
#> [1] 53
# get number of objects in class Zone and Schedule:Compact idf$object_num(c("Zone", "Schedule:Compact"))
#> [1] 1 0
# } ## ------------------------------------------------ ## Method `Idf$is_valid_id` ## ------------------------------------------------ # \dontrun{ idf$is_valid_id(c(51, 1000))
#> [1] TRUE FALSE
# } ## ------------------------------------------------ ## Method `Idf$is_valid_name` ## ------------------------------------------------ # \dontrun{ idf$is_valid_name(c("Simple One Zone (Wireframe DXF)", "ZONE ONE", "a"))
#> [1] TRUE TRUE FALSE
# name matching is case-insensitive idf$is_valid_name(c("simple one zone (wireframe dxf)", "zone one", "a"))
#> [1] TRUE TRUE FALSE
# } ## ------------------------------------------------ ## Method `Idf$object` ## ------------------------------------------------ # \dontrun{ # get an object whose ID is 3 idf$object(3)
#> <IdfObject: 'Building'> [ID:3] `Simple One Zone (Wireframe DXF)` #> Class: <Building> #> ├─ 1: "Simple One Zone (Wireframe DXF)", !- Name #> │─ 2: 0, !- North Axis {deg} #> │─ 3: "Suburbs", !- Terrain #> │─ 4: 0.04, !- Loads Convergence Tolerance Value #> │─ 5: 0.004, !- Temperature Convergence Tolerance Value {delta... #> │─ 6: "MinimalShadowing", !- Solar Distribution #> │─ 7: 30, !- Maximum Number of Warmup Days #> └─ 8: 6; !- Minimum Number of Warmup Days
# get an object whose name is "simple one zone (wireframe dxf)" # NOTE: object name matching is case-insensitive idf$object("simple one zone (wireframe dxf)")
#> <IdfObject: 'Building'> [ID:3] `Simple One Zone (Wireframe DXF)` #> Class: <Building> #> ├─ 1: "Simple One Zone (Wireframe DXF)", !- Name #> │─ 2: 0, !- North Axis {deg} #> │─ 3: "Suburbs", !- Terrain #> │─ 4: 0.04, !- Loads Convergence Tolerance Value #> │─ 5: 0.004, !- Temperature Convergence Tolerance Value {delta... #> │─ 6: "MinimalShadowing", !- Solar Distribution #> │─ 7: 30, !- Maximum Number of Warmup Days #> └─ 8: 6; !- Minimum Number of Warmup Days
# } ## ------------------------------------------------ ## Method `Idf$objects` ## ------------------------------------------------ # \dontrun{ # get objects whose IDs are 3 and 10 idf$objects(c(3,10))
#> $`Simple One Zone (Wireframe DXF)` #> <IdfObject: 'Building'> [ID:3] `Simple One Zone (Wireframe DXF)` #> Class: <Building> #> ├─ 1: "Simple One Zone (Wireframe DXF)", !- Name #> │─ 2: 0, !- North Axis {deg} #> │─ 3: "Suburbs", !- Terrain #> │─ 4: 0.04, !- Loads Convergence Tolerance Value #> │─ 5: 0.004, !- Temperature Convergence Tolerance Value {delta... #> │─ 6: "MinimalShadowing", !- Solar Distribution #> │─ 7: 30, !- Maximum Number of Warmup Days #> └─ 8: 6; !- Minimum Number of Warmup Days #> #> $`Denver Centennial Golden N Ann Htg 99% Condns DB` #> <IdfObject: 'SizingPeriod:DesignDay'> [ID:10] `Denver Centennial Golden N Ann Htg 99% Condns DB` #> ── COMMENTS ──────────────────────────────────────────────────────────────────── #> ! WMO=724666 Time Zone=NAM: (GMT-07:00) Mountain Time (US & Canada) #> ! Data Source=ASHRAE 2009 Annual Design Conditions #> ! Denver Centennial Golden N_CO_USA Annual Heating Design Conditions Win... #> ! Coldest Month=DEC #> ! Denver Centennial Golden N_CO_USA Annual Heating 99%, MaxDB=-15.5�C #> ── VALUES ────────────────────────────────────────────────────────────────────── #> Class: <SizingPeriod:DesignDay> #> ├─ 01*: "Denver Centennial Golden N Ann Htg 99% Condns DB", !- Name #> │─ 02*: 12, !- Month #> │─ 03*: 21, !- Day of Month #> │─ 04*: "WinterDesignDay", !- Day Type #> │─ 05 : -15.5, !- Maximum Dry-Bulb Temperature {C} #> │─ 06 : 0, !- Daily Dry-Bulb Temperature Range {deltaC} #> │─ 07 : <"Blank">, !- Dry-Bulb Temperature Range Modifier Type #> │─ 08 : <"Blank">, !- Dry-Bulb Temperature Range Modifier Day Sche... #> │─ 09 : "Wetbulb", !- Humidity Condition Type #> │─ 10 : -15.5, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C} #> │─ 11 : <"Blank">, !- Humidity Condition Day Schedule Name #> │─ 12 : <Blank>, !- Humidity Ratio at Maximum Dry-Bulb {kgWater/... #> │─ 13 : <Blank>, !- Enthalpy at Maximum Dry-Bulb {J/kg} #> │─ 14 : <Blank>, !- Daily Wet-Bulb Temperature Range {deltaC} #> │─ 15 : 81198, !- Barometric Pressure {Pa} #> │─ 16*: 3, !- Wind Speed {m/s} #> │─ 17*: 340, !- Wind Direction {deg} #> │─ 18 : "No", !- Rain Indicator #> │─ 19 : "No", !- Snow Indicator #> │─ 20 : "No", !- Daylight Saving Time Indicator #> │─ 21 : "ASHRAEClearSky", !- Solar Model Indicator #> │─ 22 : <"Blank">, !- Beam Solar Day Schedule Name #> │─ 23 : <"Blank">, !- Diffuse Solar Day Schedule Name #> │─ 24 : <Blank>, !- ASHRAE Clear Sky Optical Depth for Beam Irra... #> │─ 25 : <Blank>, !- ASHRAE Clear Sky Optical Depth for Diffuse I... #> └─ 26 : 0; !- Sky Clearness #>
# get objects whose names are "Simple One Zone (Wireframe DXF)" and "ZONE ONE" # NOTE: object name matching is case-insensitive idf$objects(c("Simple One Zone (Wireframe DXF)", "zone one"))
#> $`Simple One Zone (Wireframe DXF)` #> <IdfObject: 'Building'> [ID:3] `Simple One Zone (Wireframe DXF)` #> Class: <Building> #> ├─ 1: "Simple One Zone (Wireframe DXF)", !- Name #> │─ 2: 0, !- North Axis {deg} #> │─ 3: "Suburbs", !- Terrain #> │─ 4: 0.04, !- Loads Convergence Tolerance Value #> │─ 5: 0.004, !- Temperature Convergence Tolerance Value {delta... #> │─ 6: "MinimalShadowing", !- Solar Distribution #> │─ 7: 30, !- Maximum Number of Warmup Days #> └─ 8: 6; !- Minimum Number of Warmup Days #> #> $`ZONE ONE` #> <IdfObject: 'Zone'> [ID:18] `ZONE ONE` #> Class: <Zone> #> ├─ 1*: "ZONE ONE", !- Name #> │─ 2 : 0, !- Direction of Relative North {deg} #> │─ 3 : 0, !- X Origin {m} #> │─ 4 : 0, !- Y Origin {m} #> │─ 5 : 0, !- Z Origin {m} #> │─ 6 : 1, !- Type #> │─ 7 : 1, !- Multiplier #> │─ 8 : autocalculate, !- Ceiling Height {m} #> └─ 9 : autocalculate; !- Volume {m3} #>
# } ## ------------------------------------------------ ## Method `Idf$object_unique` ## ------------------------------------------------ # \dontrun{ # get the SimulationColtrol object idf$object_unique("SimulationControl")
#> <IdfObject: 'SimulationControl'> [ID:7] #> Class: <SimulationControl> #> ├─ 1: "No", !- Do Zone Sizing Calculation #> │─ 2: "No", !- Do System Sizing Calculation #> │─ 3: "No", !- Do Plant Sizing Calculation #> │─ 4: "Yes", !- Run Simulation for Sizing Periods #> └─ 5: "Yes"; !- Run Simulation for Weather File Run Periods
# S3 "[[" and "$" can also be used idf$SimulationControl
#> <IdfObject: 'SimulationControl'> [ID:7] #> Class: <SimulationControl> #> ├─ 1: "No", !- Do Zone Sizing Calculation #> │─ 2: "No", !- Do System Sizing Calculation #> │─ 3: "No", !- Do Plant Sizing Calculation #> │─ 4: "Yes", !- Run Simulation for Sizing Periods #> └─ 5: "Yes"; !- Run Simulation for Weather File Run Periods
idf[["SimulationControl"]]
#> <IdfObject: 'SimulationControl'> [ID:7] #> Class: <SimulationControl> #> ├─ 1: "No", !- Do Zone Sizing Calculation #> │─ 2: "No", !- Do System Sizing Calculation #> │─ 3: "No", !- Do Plant Sizing Calculation #> │─ 4: "Yes", !- Run Simulation for Sizing Periods #> └─ 5: "Yes"; !- Run Simulation for Weather File Run Periods
# } ## ------------------------------------------------ ## Method `Idf$objects_in_class` ## ------------------------------------------------ # \dontrun{ # get all objects in Zone class idf$objects_in_class("Zone")
#> $`ZONE ONE` #> <IdfObject: 'Zone'> [ID:18] `ZONE ONE` #> Class: <Zone> #> ├─ 1*: "ZONE ONE", !- Name #> │─ 2 : 0, !- Direction of Relative North {deg} #> │─ 3 : 0, !- X Origin {m} #> │─ 4 : 0, !- Y Origin {m} #> │─ 5 : 0, !- Z Origin {m} #> │─ 6 : 1, !- Type #> │─ 7 : 1, !- Multiplier #> │─ 8 : autocalculate, !- Ceiling Height {m} #> └─ 9 : autocalculate; !- Volume {m3} #>
# S3 "[[" and "$" can also be used idf$Zone
#> $`ZONE ONE` #> <IdfObject: 'Zone'> [ID:18] `ZONE ONE` #> Class: <Zone> #> ├─ 1*: "ZONE ONE", !- Name #> │─ 2 : 0, !- Direction of Relative North {deg} #> │─ 3 : 0, !- X Origin {m} #> │─ 4 : 0, !- Y Origin {m} #> │─ 5 : 0, !- Z Origin {m} #> │─ 6 : 1, !- Type #> │─ 7 : 1, !- Multiplier #> │─ 8 : autocalculate, !- Ceiling Height {m} #> └─ 9 : autocalculate; !- Volume {m3} #>
idf[["Zone"]]
#> $`ZONE ONE` #> <IdfObject: 'Zone'> [ID:18] `ZONE ONE` #> Class: <Zone> #> ├─ 1*: "ZONE ONE", !- Name #> │─ 2 : 0, !- Direction of Relative North {deg} #> │─ 3 : 0, !- X Origin {m} #> │─ 4 : 0, !- Y Origin {m} #> │─ 5 : 0, !- Z Origin {m} #> │─ 6 : 1, !- Type #> │─ 7 : 1, !- Multiplier #> │─ 8 : autocalculate, !- Ceiling Height {m} #> └─ 9 : autocalculate; !- Volume {m3} #>
# } ## ------------------------------------------------ ## Method `Idf$objects_in_group` ## ------------------------------------------------ # \dontrun{ # get all objects in Schedules group idf$objects_in_group("Schedules")
#> $Fraction #> <IdfObject: 'ScheduleTypeLimits'> [ID:19] `Fraction` #> Class: <ScheduleTypeLimits> #> ├─ 1*: "Fraction", !- Name #> │─ 2 : 0, !- Lower Limit Value #> │─ 3 : 1, !- Upper Limit Value #> └─ 4 : "CONTINUOUS"; !- Numeric Type #> #> $`On/Off` #> <IdfObject: 'ScheduleTypeLimits'> [ID:50] `On/Off` #> Class: <ScheduleTypeLimits> #> ├─ 1*: "On/Off", !- Name #> │─ 2 : 0, !- Lower Limit Value #> │─ 3 : 1, !- Upper Limit Value #> └─ 4 : "DISCRETE"; !- Numeric Type #> #> $AlwaysOn #> <IdfObject: 'Schedule:Constant'> [ID:53] `AlwaysOn` #> Class: <Schedule:Constant> #> ├─ 1*: "AlwaysOn", !- Name #> │─ 2 : "On/Off", !- Schedule Type Limits Name #> └─ 3 : 1; !- Hourly Value #>
# } ## ------------------------------------------------ ## Method `Idf$object_relation` ## ------------------------------------------------ # \dontrun{ # check each layer's reference of a construction named FLOOR idf$object_relation("floor", "ref_to")
#> ── Refer to Others ───────────────────────────────────────────────────────────── #> Class: <Construction> #> └─ Object [ID:16] <FLOOR> #> └─ 2: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> v~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #> └─ Class: <Material> #> └─ Object [ID:14] <C5 - 4 IN HW CONCRETE> #> └─ 1: "C5 - 4 IN HW CONCRETE"; !- Name #> #>
# check where is this construction being used idf$object_relation("floor", "ref_by")
#> ── Referred by Others ────────────────────────────────────────────────────────── #> Class: <Construction> #> └─ Object [ID:16] <FLOOR> #> └─ 1: "FLOOR"; !- Name #> ^~~~~~~~~~~~~~~~~~~~~~~~~ #> └─ Class: <BuildingSurface:Detailed> #> └─ Object [ID:25] <Zn001:Flr001> #> └─ 3: "FLOOR"; !- Construction Name #> #>
# } ## ------------------------------------------------ ## Method `Idf$objects_in_relation` ## ------------------------------------------------ # \dontrun{ # get a construction named FLOOR and all materials it uses idf$objects_in_relation("floor", "ref_to")
#> $FLOOR #> <IdfObject: 'Construction'> [ID:16] `FLOOR` #> Class: <Construction> #> ├─ 1*: "FLOOR", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> $`C5 - 4 IN HW CONCRETE` #> <IdfObject: 'Material'> [ID:14] `C5 - 4 IN HW CONCRETE` #> Class: <Material> #> ├─ 1*: "C5 - 4 IN HW CONCRETE", !- Name #> │─ 2*: "MediumRough", !- Roughness #> │─ 3*: 0.1014984, !- Thickness {m} #> │─ 4*: 1.729577, !- Conductivity {W/m-K} #> │─ 5*: 2242.585, !- Density {kg/m3} #> │─ 6*: 836.8, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.65, !- Solar Absorptance #> └─ 9 : 0.65; !- Visible Absorptance #>
# get a construction named FLOOR and all surfaces that uses it idf$objects_in_relation("floor", "ref_by", "BuildingSurface:Detailed")
#> Error: Invalid object name found: 'BuildingSurface:Detailed'
# } ## ------------------------------------------------ ## Method `Idf$search_object` ## ------------------------------------------------ # \dontrun{ # get all objects whose names contains "floor" idf$search_object("floor", ignore.case = TRUE)
#> $FLOOR #> <IdfObject: 'Construction'> [ID:16] `FLOOR` #> Class: <Construction> #> ├─ 1*: "FLOOR", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #>
# } ## ------------------------------------------------ ## Method `Idf$dup` ## ------------------------------------------------ # \dontrun{ # duplicate an object named "FLOOR" idf$dup("floor") # New object name 'FLOOR_1' is auto-generated
#> New names of duplicated objects not given are automatically generated: #> #1| Object ID [54] --> New object name 'FLOOR_1'
#> $FLOOR_1 #> <IdfObject: 'Construction'> [ID:54] `FLOOR_1` #> Class: <Construction> #> ├─ 1*: "FLOOR_1", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #>
# duplicate that object again by specifing object ID idf$dup(16) # New object name 'FLOOR_2' is auto-generated
#> New names of duplicated objects not given are automatically generated: #> #1| Object ID [55] --> New object name 'FLOOR_2'
#> $FLOOR_2 #> <IdfObject: 'Construction'> [ID:55] `FLOOR_2` #> Class: <Construction> #> ├─ 1*: "FLOOR_2", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #>
# duplicate that object two times and giving new names idf$dup(new_floor = "floor", new_floor2 = 16)
#> $new_floor #> <IdfObject: 'Construction'> [ID:56] `new_floor` #> Class: <Construction> #> ├─ 1*: "new_floor", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> $new_floor2 #> <IdfObject: 'Construction'> [ID:57] `new_floor2` #> Class: <Construction> #> ├─ 1*: "new_floor2", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #>
# duplicate that object multiple times using variable inputs floors_1 <- c(new_floor3 = "floor", new_floor4 = "floor") floors_2 <- setNames(rep(16, 5), paste0("flr", 1:5)) idf$dup(floors_1, floors_2)
#> $new_floor3 #> <IdfObject: 'Construction'> [ID:58] `new_floor3` #> Class: <Construction> #> ├─ 1*: "new_floor3", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> $new_floor4 #> <IdfObject: 'Construction'> [ID:59] `new_floor4` #> Class: <Construction> #> ├─ 1*: "new_floor4", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> $flr1 #> <IdfObject: 'Construction'> [ID:60] `flr1` #> Class: <Construction> #> ├─ 1*: "flr1", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> $flr2 #> <IdfObject: 'Construction'> [ID:61] `flr2` #> Class: <Construction> #> ├─ 1*: "flr2", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> $flr3 #> <IdfObject: 'Construction'> [ID:62] `flr3` #> Class: <Construction> #> ├─ 1*: "flr3", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> $flr4 #> <IdfObject: 'Construction'> [ID:63] `flr4` #> Class: <Construction> #> ├─ 1*: "flr4", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> $flr5 #> <IdfObject: 'Construction'> [ID:64] `flr5` #> Class: <Construction> #> ├─ 1*: "flr5", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #>
# } ## ------------------------------------------------ ## Method `Idf$add` ## ------------------------------------------------ # \dontrun{ # add a new Building object with all default values empty <- empty_idf(8.8) # create an empty Idf empty$add(Building = list())
#> $NONE #> <IdfObject: 'Building'> [ID:2] `NONE` #> Class: <Building> #> ├─ 1: "NONE", !- Name #> │─ 2: 0, !- North Axis {deg} #> │─ 3: "Suburbs", !- Terrain #> │─ 4: 0.04, !- Loads Convergence Tolerance Value #> │─ 5: 0.4, !- Temperature Convergence Tolerance Value {deltaC} #> │─ 6: "FullExterior", !- Solar Distribution #> │─ 7: 25, !- Maximum Number of Warmup Days #> └─ 8: 6; !- Minimum Number of Warmup Days #>
# add a new Building object with all default values and comments empty <- empty_idf(8.8) # create an empty Idf empty$add(Building = list(.comment = c("this is", "a new building")))
#> $NONE #> <IdfObject: 'Building'> [ID:2] `NONE` #> ── COMMENTS ──────────────────────────────────────────────────────────────────── #> !this is #> !a new building #> ── VALUES ────────────────────────────────────────────────────────────────────── #> Class: <Building> #> ├─ 1: "NONE", !- Name #> │─ 2: 0, !- North Axis {deg} #> │─ 3: "Suburbs", !- Terrain #> │─ 4: 0.04, !- Loads Convergence Tolerance Value #> │─ 5: 0.4, !- Temperature Convergence Tolerance Value {deltaC} #> │─ 6: "FullExterior", !- Solar Distribution #> │─ 7: 25, !- Maximum Number of Warmup Days #> └─ 8: 6; !- Minimum Number of Warmup Days #>
# add a new RunPeriod object with all possible fields empty <- empty_idf(8.8) # create an empty Idf empty$add(Building = list(), RunPeriod = list("rp", 1, 1, 1, 31), .all = TRUE)
#> $NONE #> <IdfObject: 'Building'> [ID:2] `NONE` #> Class: <Building> #> ├─ 1: "NONE", !- Name #> │─ 2: 0, !- North Axis {deg} #> │─ 3: "Suburbs", !- Terrain #> │─ 4: 0.04, !- Loads Convergence Tolerance Value #> │─ 5: 0.4, !- Temperature Convergence Tolerance Value {deltaC} #> │─ 6: "FullExterior", !- Solar Distribution #> │─ 7: 25, !- Maximum Number of Warmup Days #> └─ 8: 6; !- Minimum Number of Warmup Days #> #> $rp #> <IdfObject: 'RunPeriod'> [ID:3] `rp` #> Class: <RunPeriod> #> ├─ 01 : "rp", !- Name #> │─ 02*: 1, !- Begin Month #> │─ 03*: 1, !- Begin Day of Month #> │─ 04*: 1, !- End Month #> │─ 05*: 31, !- End Day of Month #> │─ 06 : "UseWeatherFile", !- Day of Week for Start Day #> │─ 07 : "Yes", !- Use Weather File Holidays and Special Days #> │─ 08 : "Yes", !- Use Weather File Daylight Saving Period #> │─ 09 : "No", !- Apply Weekend Holiday Rule #> │─ 10 : "Yes", !- Use Weather File Rain Indicators #> │─ 11 : "Yes", !- Use Weather File Snow Indicators #> │─ 12 : 1, !- Number of Times Runperiod to be Repeated #> │─ 13 : "Yes", !- Increment Day of Week on repeat #> └─ 14 : <Blank>; !- Start Year #>
# add objects using variable inputs empty <- empty_idf(8.8) # create an empty Idf objs1 <- list(Schedule_Constant = list("const"), Building = list()) rp <- list(RunPeriod = list("rp", 2, 1, 2, 28)) empty$add(objs1, rp)
#> $const #> <IdfObject: 'Schedule:Constant'> [ID:2] `const` #> Class: <Schedule:Constant> #> └─ 1*: "const"; !- Name #> #> $NONE #> <IdfObject: 'Building'> [ID:3] `NONE` #> Class: <Building> #> ├─ 1: "NONE", !- Name #> │─ 2: 0, !- North Axis {deg} #> │─ 3: "Suburbs", !- Terrain #> │─ 4: 0.04, !- Loads Convergence Tolerance Value #> │─ 5: 0.4, !- Temperature Convergence Tolerance Value {deltaC} #> │─ 6: "FullExterior", !- Solar Distribution #> │─ 7: 25, !- Maximum Number of Warmup Days #> └─ 8: 6; !- Minimum Number of Warmup Days #> #> $rp #> <IdfObject: 'RunPeriod'> [ID:4] `rp` #> Class: <RunPeriod> #> ├─ 01 : "rp", !- Name #> │─ 02*: 2, !- Begin Month #> │─ 03*: 1, !- Begin Day of Month #> │─ 04*: 2, !- End Month #> │─ 05*: 28, !- End Day of Month #> │─ 06 : "UseWeatherFile", !- Day of Week for Start Day #> │─ 07 : "Yes", !- Use Weather File Holidays and Special Days #> │─ 08 : "Yes", !- Use Weather File Daylight Saving Period #> │─ 09 : "No", !- Apply Weekend Holiday Rule #> │─ 10 : "Yes", !- Use Weather File Rain Indicators #> └─ 11 : "Yes"; !- Use Weather File Snow Indicators #>
# } ## ------------------------------------------------ ## Method `Idf$set` ## ------------------------------------------------ # \dontrun{ # modify an object by name (case-insensitive) idf$set(r13layer = list(roughness = "smooth"))
#> $R13LAYER #> <IdfObject: 'Material:NoMass'> [ID:12] `R13LAYER` #> Class: <Material:NoMass> #> ├─ 1*: "R13LAYER", !- Name #> │─ 2*: "smooth", !- Roughness #> │─ 3*: 2.290965, !- Thermal Resistance {m2-K/W} #> │─ 4 : 0.9, !- Thermal Absorptance #> │─ 5 : 0.75, !- Solar Absorptance #> └─ 6 : 0.75; !- Visible Absorptance #>
# modify an object by ID idf$set(..12 = list(roughness = "rough"))
#> $R13LAYER #> <IdfObject: 'Material:NoMass'> [ID:12] `R13LAYER` #> Class: <Material:NoMass> #> ├─ 1*: "R13LAYER", !- Name #> │─ 2*: "rough", !- Roughness #> │─ 3*: 2.290965, !- Thermal Resistance {m2-K/W} #> │─ 4 : 0.9, !- Thermal Absorptance #> │─ 5 : 0.75, !- Solar Absorptance #> └─ 6 : 0.75; !- Visible Absorptance #>
# overwrite existing object comments idf$set(r13layer = list(.comment = c("New comment")))
#> $R13LAYER #> <IdfObject: 'Material:NoMass'> [ID:12] `R13LAYER` #> ── COMMENTS ──────────────────────────────────────────────────────────────────── #> !New comment #> ── VALUES ────────────────────────────────────────────────────────────────────── #> Class: <Material:NoMass> #> ├─ 1*: "R13LAYER", !- Name #> │─ 2*: "rough", !- Roughness #> │─ 3*: 2.290965, !- Thermal Resistance {m2-K/W} #> │─ 4 : 0.9, !- Thermal Absorptance #> │─ 5 : 0.75, !- Solar Absorptance #> └─ 6 : 0.75; !- Visible Absorptance #>
# assign default values to fields idf$set(r13layer = list(solar_absorptance = NULL), .default = TRUE)
#> $R13LAYER #> <IdfObject: 'Material:NoMass'> [ID:12] `R13LAYER` #> ── COMMENTS ──────────────────────────────────────────────────────────────────── #> !New comment #> ── VALUES ────────────────────────────────────────────────────────────────────── #> Class: <Material:NoMass> #> ├─ 1*: "R13LAYER", !- Name #> │─ 2*: "rough", !- Roughness #> │─ 3*: 2.290965, !- Thermal Resistance {m2-K/W} #> │─ 4 : 0.9, !- Thermal Absorptance #> │─ 5 : 0.7, !- Solar Absorptance #> └─ 6 : 0.75; !- Visible Absorptance #>
# set field values to blanks idf$set(r13layer = list(solar_absorptance = NULL), .default = FALSE)
#> $R13LAYER #> <IdfObject: 'Material:NoMass'> [ID:12] `R13LAYER` #> ── COMMENTS ──────────────────────────────────────────────────────────────────── #> !New comment #> ── VALUES ────────────────────────────────────────────────────────────────────── #> Class: <Material:NoMass> #> ├─ 1*: "R13LAYER", !- Name #> │─ 2*: "rough", !- Roughness #> │─ 3*: 2.290965, !- Thermal Resistance {m2-K/W} #> │─ 4 : 0.9, !- Thermal Absorptance #> │─ 5 : <Blank>, !- Solar Absorptance #> └─ 6 : 0.75; !- Visible Absorptance #>
# set field values to blank and delete trailing fields idf$set(r13layer = list(visible_absorptance = NULL), .default = FALSE)
#> $R13LAYER #> <IdfObject: 'Material:NoMass'> [ID:12] `R13LAYER` #> ── COMMENTS ──────────────────────────────────────────────────────────────────── #> !New comment #> ── VALUES ────────────────────────────────────────────────────────────────────── #> Class: <Material:NoMass> #> ├─ 1*: "R13LAYER", !- Name #> │─ 2*: "rough", !- Roughness #> │─ 3*: 2.290965, !- Thermal Resistance {m2-K/W} #> └─ 4 : 0.9; !- Thermal Absorptance #>
# set field values to blank and keep blank fields idf$set(r13layer = list(visible_absorptance = NULL), .default = FALSE, .empty = TRUE)
#> $R13LAYER #> <IdfObject: 'Material:NoMass'> [ID:12] `R13LAYER` #> ── COMMENTS ──────────────────────────────────────────────────────────────────── #> !New comment #> ── VALUES ────────────────────────────────────────────────────────────────────── #> Class: <Material:NoMass> #> ├─ 1*: "R13LAYER", !- Name #> │─ 2*: "rough", !- Roughness #> │─ 3*: 2.290965, !- Thermal Resistance {m2-K/W} #> │─ 4 : 0.9, !- Thermal Absorptance #> │─ 5 : <Blank>, !- Solar Absorptance #> └─ 6 : <Blank>; !- Visible Absorptance #>
# set all fields in one class idf$set(Material_NoMass := list(visible_absorptance = 0.9))
#> $R13LAYER #> <IdfObject: 'Material:NoMass'> [ID:12] `R13LAYER` #> ── COMMENTS ──────────────────────────────────────────────────────────────────── #> !New comment #> ── VALUES ────────────────────────────────────────────────────────────────────── #> Class: <Material:NoMass> #> ├─ 1*: "R13LAYER", !- Name #> │─ 2*: "rough", !- Roughness #> │─ 3*: 2.290965, !- Thermal Resistance {m2-K/W} #> │─ 4 : 0.9, !- Thermal Absorptance #> │─ 5 : 0.7, !- Solar Absorptance #> └─ 6 : 0.9; !- Visible Absorptance #> #> $R31LAYER #> <IdfObject: 'Material:NoMass'> [ID:13] `R31LAYER` #> Class: <Material:NoMass> #> ├─ 1*: "R31LAYER", !- Name #> │─ 2*: "Rough", !- Roughness #> │─ 3*: 5.456, !- Thermal Resistance {m2-K/W} #> │─ 4 : 0.9, !- Thermal Absorptance #> │─ 5 : 0.75, !- Solar Absorptance #> └─ 6 : 0.9; !- Visible Absorptance #>
# set multiple objects in one class idf$set(.("r13layer", "r31layer") := list(solar_absorptance = 0.8))
#> $R13LAYER #> <IdfObject: 'Material:NoMass'> [ID:12] `R13LAYER` #> ── COMMENTS ──────────────────────────────────────────────────────────────────── #> !New comment #> ── VALUES ────────────────────────────────────────────────────────────────────── #> Class: <Material:NoMass> #> ├─ 1*: "R13LAYER", !- Name #> │─ 2*: "rough", !- Roughness #> │─ 3*: 2.290965, !- Thermal Resistance {m2-K/W} #> │─ 4 : 0.9, !- Thermal Absorptance #> │─ 5 : 0.8, !- Solar Absorptance #> └─ 6 : 0.9; !- Visible Absorptance #> #> $R31LAYER #> <IdfObject: 'Material:NoMass'> [ID:13] `R31LAYER` #> Class: <Material:NoMass> #> ├─ 1*: "R31LAYER", !- Name #> │─ 2*: "Rough", !- Roughness #> │─ 3*: 5.456, !- Thermal Resistance {m2-K/W} #> │─ 4 : 0.9, !- Thermal Absorptance #> │─ 5 : 0.8, !- Solar Absorptance #> └─ 6 : 0.9; !- Visible Absorptance #>
# above is equivalent to idf$set(r13layer = list(solar_absorptance = 0.8), r31layer = list(solar_absorptance = 0.8) )
#> $R13LAYER #> <IdfObject: 'Material:NoMass'> [ID:12] `R13LAYER` #> ── COMMENTS ──────────────────────────────────────────────────────────────────── #> !New comment #> ── VALUES ────────────────────────────────────────────────────────────────────── #> Class: <Material:NoMass> #> ├─ 1*: "R13LAYER", !- Name #> │─ 2*: "rough", !- Roughness #> │─ 3*: 2.290965, !- Thermal Resistance {m2-K/W} #> │─ 4 : 0.9, !- Thermal Absorptance #> │─ 5 : 0.8, !- Solar Absorptance #> └─ 6 : 0.9; !- Visible Absorptance #> #> $R31LAYER #> <IdfObject: 'Material:NoMass'> [ID:13] `R31LAYER` #> Class: <Material:NoMass> #> ├─ 1*: "R31LAYER", !- Name #> │─ 2*: "Rough", !- Roughness #> │─ 3*: 5.456, !- Thermal Resistance {m2-K/W} #> │─ 4 : 0.9, !- Thermal Absorptance #> │─ 5 : 0.8, !- Solar Absorptance #> └─ 6 : 0.9; !- Visible Absorptance #>
# use variable input sets <- list(r13layer = list(roughness = "smooth")) idf$set(sets)
#> $R13LAYER #> <IdfObject: 'Material:NoMass'> [ID:12] `R13LAYER` #> ── COMMENTS ──────────────────────────────────────────────────────────────────── #> !New comment #> ── VALUES ────────────────────────────────────────────────────────────────────── #> Class: <Material:NoMass> #> ├─ 1*: "R13LAYER", !- Name #> │─ 2*: "smooth", !- Roughness #> │─ 3*: 2.290965, !- Thermal Resistance {m2-K/W} #> │─ 4 : 0.9, !- Thermal Absorptance #> │─ 5 : 0.8, !- Solar Absorptance #> └─ 6 : 0.9; !- Visible Absorptance #>
# } ## ------------------------------------------------ ## Method `Idf$del` ## ------------------------------------------------ # \dontrun{ # delete objects using names idf$object("Fraction") # ScheduleTypeLimits
#> <IdfObject: 'ScheduleTypeLimits'> [ID:19] `Fraction` #> Class: <ScheduleTypeLimits> #> ├─ 1*: "Fraction", !- Name #> │─ 2 : 0, !- Lower Limit Value #> │─ 3 : 1, !- Upper Limit Value #> └─ 4 : "CONTINUOUS"; !- Numeric Type
idf$del("Fraction") # delete objects using IDs idf$objects(c(39, 40)) # Output:Variable
#> $<NA> #> <IdfObject: 'Output:Variable'> [ID:39] #> Class: <Output:Variable> #> ├─ 1 : "*", !- Key Value #> │─ 2*: "Other Equipment Total Heating Energy", !- Variable Name #> └─ 3 : "monthly"; !- Reporting Frequency #> #> $<NA> #> <IdfObject: 'Output:Variable'> [ID:40] #> Class: <Output:Variable> #> ├─ 1 : "*", !- Key Value #> │─ 2*: "Zone Other Equipment Total Heating Energy", !- Variable Name #> └─ 3 : "monthly"; !- Reporting Frequency #>
idf$del(39, 40) # cannot delete objects that are referred by others level_checks()$reference # reference-checking is enable by default
#> [1] TRUE
idf$del("r13layer") # error
#> Error: Cannot delete object(s) that are referred by others: #> #> Class: <Material:NoMass> #> └─ Object [ID:12] <R13LAYER> #> └─ 1: "R13LAYER"; !- Name #> ^~~~~~~~~~~~~~~~~~~~~~~~~ #> └─ Class: <Construction> #> └─ Object [ID:15] <R13WALL> #> └─ 2: "R13LAYER"; !- Outside Layer #>
# force to delete objects even thay are referred by others idf$del("r13layer", .force = TRUE)
#> Deleting object(s) [ID: 12] #> #> Object relation is shown below: #> ── Referred by Others ────────────────────────────────────────────────────────── #> Class: <Material:NoMass> #> └─ Object [ID:12] <R13LAYER> #> └─ 1: "R13LAYER"; !- Name #> ^~~~~~~~~~~~~~~~~~~~~~~~~ #> └─ Class: <Construction> #> └─ Object [ID:15] <R13WALL> #> └─ 2: "R13LAYER"; !- Outside Layer #> #>
# delete objects and also objects that refer to them idf$del("r31layer", .ref_by = TRUE) # Construction 'ROOF31' will be kept
#> Deleting object(s) [ID: 13] #> Skipping object(s) [ID: 17] that is referred by other objects. #> #> Object relation is shown below: #> ── Referred by Others ────────────────────────────────────────────────────────── #> Class: <Material:NoMass> #> └─ Object [ID:13] <R31LAYER> #> └─ 1: "R31LAYER"; !- Name #> ^~~~~~~~~~~~~~~~~~~~~~~~~ #> └─ Class: <Construction> #> └─ Object [ID:17] <ROOF31> #> └─ 2: "R31LAYER"; !- Outside Layer #> #>
# delete objects and also objects that they refer to idf$del("extlights", .ref_to = TRUE) # Schedule 'AlwaysOn' will be kept
#> Deleting object(s) [ID: 49] #> Skipping object(s) [ID: 53] that is also referred by other objects. #> #> Object relation is shown below: #> ── Refer to Others ───────────────────────────────────────────────────────────── #> Class: <Exterior:Lights> #> └─ Object [ID:49] <ExtLights> #> └─ 2: "AlwaysOn"; !- Schedule Name #> v~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #> └─ Class: <Schedule:Constant> #> └─ Object [ID:53] <AlwaysOn> #> └─ 1: "AlwaysOn"; !- Name #> #> #> ── Referred by Others ────────────────────────────────────────────────────────── #> Target(s) is not referred by any other field. #> #> ── Node Relation ─────────────────────────────────────────────────────────────── #> Target(s) has no node or their nodes have no reference to other object.
# delete objects and also other objects that refer to them recursively idf$del("roof31", .ref_by = TRUE, .recursive = TRUE)
#> Deleting object(s) [ID: 17] #> Including object(s) [ID:26] that refer to it. #> #> Object relation is shown below: #> ── Referred by Others ────────────────────────────────────────────────────────── #> Class: <Construction> #> └─ Object [ID:17] <ROOF31> #> └─ 1: "ROOF31"; !- Name #> ^~~~~~~~~~~~~~~~~~~~~~~~~ #> └─ Class: <BuildingSurface:Detailed> #> └─ Object [ID:26] <Zn001:Roof001> #> └─ 3: "ROOF31"; !- Construction Name #> #>
# delete objects using variable inputs ids <- idf$object_id("Output:Variable", simplify = TRUE) idf$del(ids) # } ## ------------------------------------------------ ## Method `Idf$purge` ## ------------------------------------------------ # \dontrun{ # purge unused "Fraction" schedule type idf$purge("Fraction") # ScheduleTypeLimits
#> Error: Invalid object name found: 'Fraction'
# purge all unused schedule types idf$purge(class = "ScheduleTypeLimits")
#> None of specified object(s) can be purged. Skip.
# purge all unused schedule related objects idf$purge(group = "Schedules")
#> None of specified object(s) can be purged. Skip.
# } ## ------------------------------------------------ ## Method `Idf$duplicated` ## ------------------------------------------------ # \dontrun{ # check if there are any duplications in the Idf idf$duplicated(class = "ScheduleTypeLimits")
#> class id name duplicated #> 1: ScheduleTypeLimits 50 On/Off FALSE
# check if there are any duplications in the schedule types idf$duplicated(class = "ScheduleTypeLimits")
#> class id name duplicated #> 1: ScheduleTypeLimits 50 On/Off FALSE
# check if there are any duplications in the schedule groups and # material class idf$duplicated(class = "Material", group = "Schedules")
#> class id name duplicated #> 1: Material 14 C5 - 4 IN HW CONCRETE FALSE #> 2: ScheduleTypeLimits 50 On/Off FALSE #> 3: Schedule:Constant 53 AlwaysOn FALSE
# } ## ------------------------------------------------ ## Method `Idf$unique` ## ------------------------------------------------ # \dontrun{ # remove duplications in the Idf idf$unique(class = "ScheduleTypeLimits")
#> None duplicated objects found. Skip.
# remove duplications in the schedule types idf$unique(class = "ScheduleTypeLimits")
#> None duplicated objects found. Skip.
# remove duplications in the schedule groups and material class idf$unique(class = "Material", group = "Schedules")
#> None duplicated objects found. Skip.
# } ## ------------------------------------------------ ## Method `Idf$rename` ## ------------------------------------------------ # \dontrun{ idf$objects(c("on/off", "test 352a"))
#> $`On/Off` #> <IdfObject: 'ScheduleTypeLimits'> [ID:50] `On/Off` #> Class: <ScheduleTypeLimits> #> ├─ 1*: "On/Off", !- Name #> │─ 2 : 0, !- Lower Limit Value #> │─ 3 : 1, !- Upper Limit Value #> └─ 4 : "DISCRETE"; !- Numeric Type #> #> $`Test 352a` #> <IdfObject: 'OtherEquipment'> [ID:51] `Test 352a` #> Class: <OtherEquipment> #> ├─ 01*: "Test 352a", !- Name #> │─ 02 : "None", !- Fuel Type #> │─ 03*: "ZONE ONE", !- Zone or ZoneList Name #> │─ 04*: "AlwaysOn", !- Schedule Name #> │─ 05 : "EquipmentLevel", !- Design Level Calculation Method #> │─ 06 : 352, !- Design Level {W} #> │─ 07 : <Blank>, !- Power per Zone Floor Area {W/m2} #> │─ 08 : <Blank>, !- Power per Person {W/person} #> │─ 09 : 0, !- Fraction Latent #> │─ 10 : 0, !- Fraction Radiant #> └─ 11 : 0; !- Fraction Lost #>
idf$rename(on_off = "on/off", test_352a = 51)
#> $on_off #> <IdfObject: 'ScheduleTypeLimits'> [ID:50] `on_off` #> Class: <ScheduleTypeLimits> #> ├─ 1*: "on_off", !- Name #> │─ 2 : 0, !- Lower Limit Value #> │─ 3 : 1, !- Upper Limit Value #> └─ 4 : "DISCRETE"; !- Numeric Type #> #> $test_352a #> <IdfObject: 'OtherEquipment'> [ID:51] `test_352a` #> Class: <OtherEquipment> #> ├─ 01*: "test_352a", !- Name #> │─ 02 : "None", !- Fuel Type #> │─ 03*: "ZONE ONE", !- Zone or ZoneList Name #> │─ 04*: <"Blank">, !- Schedule Name #> │─ 05 : "EquipmentLevel", !- Design Level Calculation Method #> │─ 06 : 352, !- Design Level {W} #> │─ 07 : <Blank>, !- Power per Zone Floor Area {W/m2} #> │─ 08 : <Blank>, !- Power per Person {W/person} #> │─ 09 : 0, !- Fraction Latent #> │─ 10 : 0, !- Fraction Radiant #> └─ 11 : 0; !- Fraction Lost #>
# } ## ------------------------------------------------ ## Method `Idf$insert` ## ------------------------------------------------ # \dontrun{ # insert all material from another IDF path_idf2 <- file.path(eplus_config(8.8)$dir, "ExampleFiles/5ZoneTDV.idf") idf2 <- Idf$new(path_idf2) idf$insert(idf2$Material)
#> $WD10 #> <IdfObject: 'Material'> [ID:65] `WD10` #> Class: <Material> #> ├─ 1*: "WD10", !- Name #> │─ 2*: "MediumSmooth", !- Roughness #> │─ 3*: 0.667, !- Thickness {m} #> │─ 4*: 0.115, !- Conductivity {W/m-K} #> │─ 5*: 513, !- Density {kg/m3} #> │─ 6*: 1381, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.78, !- Solar Absorptance #> └─ 9 : 0.78; !- Visible Absorptance #> #> $RG01 #> <IdfObject: 'Material'> [ID:66] `RG01` #> Class: <Material> #> ├─ 1*: "RG01", !- Name #> │─ 2*: "Rough", !- Roughness #> │─ 3*: 0.0127, !- Thickness {m} #> │─ 4*: 1.442, !- Conductivity {W/m-K} #> │─ 5*: 881, !- Density {kg/m3} #> │─ 6*: 1674, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.65, !- Solar Absorptance #> └─ 9 : 0.65; !- Visible Absorptance #> #> $BR01 #> <IdfObject: 'Material'> [ID:67] `BR01` #> Class: <Material> #> ├─ 1*: "BR01", !- Name #> │─ 2*: "VeryRough", !- Roughness #> │─ 3*: 0.0094999997, !- Thickness {m} #> │─ 4*: 0.162, !- Conductivity {W/m-K} #> │─ 5*: 1121, !- Density {kg/m3} #> │─ 6*: 1464, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.7, !- Solar Absorptance #> └─ 9 : 0.7; !- Visible Absorptance #> #> $IN46 #> <IdfObject: 'Material'> [ID:68] `IN46` #> Class: <Material> #> ├─ 1*: "IN46", !- Name #> │─ 2*: "VeryRough", !- Roughness #> │─ 3*: 0.076200001, !- Thickness {m} #> │─ 4*: 0.023, !- Conductivity {W/m-K} #> │─ 5*: 24, !- Density {kg/m3} #> │─ 6*: 1590, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.5, !- Solar Absorptance #> └─ 9 : 0.5; !- Visible Absorptance #> #> $WD01 #> <IdfObject: 'Material'> [ID:69] `WD01` #> Class: <Material> #> ├─ 1*: "WD01", !- Name #> │─ 2*: "MediumSmooth", !- Roughness #> │─ 3*: 0.019099999, !- Thickness {m} #> │─ 4*: 0.115, !- Conductivity {W/m-K} #> │─ 5*: 513, !- Density {kg/m3} #> │─ 6*: 1381, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.78, !- Solar Absorptance #> └─ 9 : 0.78; !- Visible Absorptance #> #> $PW03 #> <IdfObject: 'Material'> [ID:70] `PW03` #> Class: <Material> #> ├─ 1*: "PW03", !- Name #> │─ 2*: "MediumSmooth", !- Roughness #> │─ 3*: 0.0127, !- Thickness {m} #> │─ 4*: 0.115, !- Conductivity {W/m-K} #> │─ 5*: 545, !- Density {kg/m3} #> │─ 6*: 1213, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.78, !- Solar Absorptance #> └─ 9 : 0.78; !- Visible Absorptance #> #> $IN02 #> <IdfObject: 'Material'> [ID:71] `IN02` #> Class: <Material> #> ├─ 1*: "IN02", !- Name #> │─ 2*: "Rough", !- Roughness #> │─ 3*: 0.090099998, !- Thickness {m} #> │─ 4*: 0.043000001, !- Conductivity {W/m-K} #> │─ 5*: 10, !- Density {kg/m3} #> │─ 6*: 837, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.75, !- Solar Absorptance #> └─ 9 : 0.75; !- Visible Absorptance #> #> $GP01 #> <IdfObject: 'Material'> [ID:72] `GP01` #> Class: <Material> #> ├─ 1*: "GP01", !- Name #> │─ 2*: "MediumSmooth", !- Roughness #> │─ 3*: 0.0127, !- Thickness {m} #> │─ 4*: 0.16, !- Conductivity {W/m-K} #> │─ 5*: 801, !- Density {kg/m3} #> │─ 6*: 837, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.75, !- Solar Absorptance #> └─ 9 : 0.75; !- Visible Absorptance #> #> $GP02 #> <IdfObject: 'Material'> [ID:73] `GP02` #> Class: <Material> #> ├─ 1*: "GP02", !- Name #> │─ 2*: "MediumSmooth", !- Roughness #> │─ 3*: 0.015900001, !- Thickness {m} #> │─ 4*: 0.16, !- Conductivity {W/m-K} #> │─ 5*: 801, !- Density {kg/m3} #> │─ 6*: 837, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.75, !- Solar Absorptance #> └─ 9 : 0.75; !- Visible Absorptance #> #> $CC03 #> <IdfObject: 'Material'> [ID:74] `CC03` #> Class: <Material> #> ├─ 1*: "CC03", !- Name #> │─ 2*: "MediumRough", !- Roughness #> │─ 3*: 0.1016, !- Thickness {m} #> │─ 4*: 1.31, !- Conductivity {W/m-K} #> │─ 5*: 2243, !- Density {kg/m3} #> │─ 6*: 837, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.65, !- Solar Absorptance #> └─ 9 : 0.65; !- Visible Absorptance #>
# insert objects from same Idf is equivalent to using Idf$dup() idf$insert(idf$SizingPeriod_DesignDay)
#> Duplicated objects in input, or objects in input that are the same in current IDF have been removed: #> #1| Object 'Denver Centennial Golden N Ann Htg 99% Condns DB' in class 'SizingPeriod:DesignDay' #> #2| Object 'Denver Centennial Golden N Ann Clg 1% Condns DB=>MWB' in class 'SizingPeriod:DesignDay'
#> After deleting duplications, nothing to add.
# } ## ------------------------------------------------ ## Method `Idf$load` ## ------------------------------------------------ # \dontrun{ # load objects from character vectors idf$load( c("Material,", " mat, !- Name", " MediumSmooth, !- Roughness", " 0.667, !- Thickness {m}", " 0.115, !- Conductivity {W/m-K}", " 513, !- Density {kg/m3}", " 1381; !- Specific Heat {J/kg-K}"), "Construction, const, mat;" )
#> $mat #> <IdfObject: 'Material'> [ID:75] `mat` #> Class: <Material> #> ├─ 1*: "mat", !- Name #> │─ 2*: "MediumSmooth", !- Roughness #> │─ 3*: 0.667, !- Thickness {m} #> │─ 4*: 0.115, !- Conductivity {W/m-K} #> │─ 5*: 513, !- Density {kg/m3} #> └─ 6*: 1381; !- Specific Heat {J/kg-K} #> #> $const #> <IdfObject: 'Construction'> [ID:76] `const` #> Class: <Construction> #> ├─ 1*: "const", !- Name #> └─ 2*: "mat"; !- Outside Layer #>
# load objects from data.frame definitions dt <- idf$to_table(class = "Material") dt[field == "Name", value := paste(value, 1)]
#> id name class index field #> 1: 14 C5 - 4 IN HW CONCRETE Material 1 Name #> 2: 14 C5 - 4 IN HW CONCRETE Material 2 Roughness #> 3: 14 C5 - 4 IN HW CONCRETE Material 3 Thickness #> 4: 14 C5 - 4 IN HW CONCRETE Material 4 Conductivity #> 5: 14 C5 - 4 IN HW CONCRETE Material 5 Density #> --- #> 101: 75 mat Material 2 Roughness #> 102: 75 mat Material 3 Thickness #> 103: 75 mat Material 4 Conductivity #> 104: 75 mat Material 5 Density #> 105: 75 mat Material 6 Specific Heat #> value #> 1: C5 - 4 IN HW CONCRETE 1 #> 2: MediumRough #> 3: 0.1014984 #> 4: 1.729577 #> 5: 2242.585 #> --- #> 101: MediumSmooth #> 102: 0.667 #> 103: 0.115 #> 104: 513 #> 105: 1381
dt[field == "Thickness", value := "0.5"]
#> id name class index field #> 1: 14 C5 - 4 IN HW CONCRETE Material 1 Name #> 2: 14 C5 - 4 IN HW CONCRETE Material 2 Roughness #> 3: 14 C5 - 4 IN HW CONCRETE Material 3 Thickness #> 4: 14 C5 - 4 IN HW CONCRETE Material 4 Conductivity #> 5: 14 C5 - 4 IN HW CONCRETE Material 5 Density #> --- #> 101: 75 mat Material 2 Roughness #> 102: 75 mat Material 3 Thickness #> 103: 75 mat Material 4 Conductivity #> 104: 75 mat Material 5 Density #> 105: 75 mat Material 6 Specific Heat #> value #> 1: C5 - 4 IN HW CONCRETE 1 #> 2: MediumRough #> 3: 0.5 #> 4: 1.729577 #> 5: 2242.585 #> --- #> 101: MediumSmooth #> 102: 0.5 #> 103: 0.115 #> 104: 513 #> 105: 1381
idf$load(dt)
#> $`C5 - 4 IN HW CONCRETE 1` #> <IdfObject: 'Material'> [ID:77] `C5 - 4 IN HW CONCRETE 1` #> Class: <Material> #> ├─ 1*: "C5 - 4 IN HW CONCRETE 1", !- Name #> │─ 2*: "MediumRough", !- Roughness #> │─ 3*: 0.5, !- Thickness {m} #> │─ 4*: 1.729577, !- Conductivity {W/m-K} #> │─ 5*: 2242.585, !- Density {kg/m3} #> │─ 6*: 836.8, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.65, !- Solar Absorptance #> └─ 9 : 0.65; !- Visible Absorptance #> #> $`WD10 1` #> <IdfObject: 'Material'> [ID:78] `WD10 1` #> Class: <Material> #> ├─ 1*: "WD10 1", !- Name #> │─ 2*: "MediumSmooth", !- Roughness #> │─ 3*: 0.5, !- Thickness {m} #> │─ 4*: 0.115, !- Conductivity {W/m-K} #> │─ 5*: 513, !- Density {kg/m3} #> │─ 6*: 1381, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.78, !- Solar Absorptance #> └─ 9 : 0.78; !- Visible Absorptance #> #> $`RG01 1` #> <IdfObject: 'Material'> [ID:79] `RG01 1` #> Class: <Material> #> ├─ 1*: "RG01 1", !- Name #> │─ 2*: "Rough", !- Roughness #> │─ 3*: 0.5, !- Thickness {m} #> │─ 4*: 1.442, !- Conductivity {W/m-K} #> │─ 5*: 881, !- Density {kg/m3} #> │─ 6*: 1674, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.65, !- Solar Absorptance #> └─ 9 : 0.65; !- Visible Absorptance #> #> $`BR01 1` #> <IdfObject: 'Material'> [ID:80] `BR01 1` #> Class: <Material> #> ├─ 1*: "BR01 1", !- Name #> │─ 2*: "VeryRough", !- Roughness #> │─ 3*: 0.5, !- Thickness {m} #> │─ 4*: 0.162, !- Conductivity {W/m-K} #> │─ 5*: 1121, !- Density {kg/m3} #> │─ 6*: 1464, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.7, !- Solar Absorptance #> └─ 9 : 0.7; !- Visible Absorptance #> #> $`IN46 1` #> <IdfObject: 'Material'> [ID:81] `IN46 1` #> Class: <Material> #> ├─ 1*: "IN46 1", !- Name #> │─ 2*: "VeryRough", !- Roughness #> │─ 3*: 0.5, !- Thickness {m} #> │─ 4*: 0.023, !- Conductivity {W/m-K} #> │─ 5*: 24, !- Density {kg/m3} #> │─ 6*: 1590, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.5, !- Solar Absorptance #> └─ 9 : 0.5; !- Visible Absorptance #> #> $`WD01 1` #> <IdfObject: 'Material'> [ID:82] `WD01 1` #> Class: <Material> #> ├─ 1*: "WD01 1", !- Name #> │─ 2*: "MediumSmooth", !- Roughness #> │─ 3*: 0.5, !- Thickness {m} #> │─ 4*: 0.115, !- Conductivity {W/m-K} #> │─ 5*: 513, !- Density {kg/m3} #> │─ 6*: 1381, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.78, !- Solar Absorptance #> └─ 9 : 0.78; !- Visible Absorptance #> #> $`PW03 1` #> <IdfObject: 'Material'> [ID:83] `PW03 1` #> Class: <Material> #> ├─ 1*: "PW03 1", !- Name #> │─ 2*: "MediumSmooth", !- Roughness #> │─ 3*: 0.5, !- Thickness {m} #> │─ 4*: 0.115, !- Conductivity {W/m-K} #> │─ 5*: 545, !- Density {kg/m3} #> │─ 6*: 1213, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.78, !- Solar Absorptance #> └─ 9 : 0.78; !- Visible Absorptance #> #> $`IN02 1` #> <IdfObject: 'Material'> [ID:84] `IN02 1` #> Class: <Material> #> ├─ 1*: "IN02 1", !- Name #> │─ 2*: "Rough", !- Roughness #> │─ 3*: 0.5, !- Thickness {m} #> │─ 4*: 0.043000001, !- Conductivity {W/m-K} #> │─ 5*: 10, !- Density {kg/m3} #> │─ 6*: 837, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.75, !- Solar Absorptance #> └─ 9 : 0.75; !- Visible Absorptance #> #> $`GP01 1` #> <IdfObject: 'Material'> [ID:85] `GP01 1` #> Class: <Material> #> ├─ 1*: "GP01 1", !- Name #> │─ 2*: "MediumSmooth", !- Roughness #> │─ 3*: 0.5, !- Thickness {m} #> │─ 4*: 0.16, !- Conductivity {W/m-K} #> │─ 5*: 801, !- Density {kg/m3} #> │─ 6*: 837, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.75, !- Solar Absorptance #> └─ 9 : 0.75; !- Visible Absorptance #> #> $`GP02 1` #> <IdfObject: 'Material'> [ID:86] `GP02 1` #> Class: <Material> #> ├─ 1*: "GP02 1", !- Name #> │─ 2*: "MediumSmooth", !- Roughness #> │─ 3*: 0.5, !- Thickness {m} #> │─ 4*: 0.16, !- Conductivity {W/m-K} #> │─ 5*: 801, !- Density {kg/m3} #> │─ 6*: 837, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.75, !- Solar Absorptance #> └─ 9 : 0.75; !- Visible Absorptance #> #> $`CC03 1` #> <IdfObject: 'Material'> [ID:87] `CC03 1` #> Class: <Material> #> ├─ 1*: "CC03 1", !- Name #> │─ 2*: "MediumRough", !- Roughness #> │─ 3*: 0.5, !- Thickness {m} #> │─ 4*: 1.31, !- Conductivity {W/m-K} #> │─ 5*: 2243, !- Density {kg/m3} #> │─ 6*: 837, !- Specific Heat {J/kg-K} #> │─ 7 : 0.9, !- Thermal Absorptance #> │─ 8 : 0.65, !- Solar Absorptance #> └─ 9 : 0.65; !- Visible Absorptance #> #> $`mat 1` #> <IdfObject: 'Material'> [ID:88] `mat 1` #> Class: <Material> #> ├─ 1*: "mat 1", !- Name #> │─ 2*: "MediumSmooth", !- Roughness #> │─ 3*: 0.5, !- Thickness {m} #> │─ 4*: 0.115, !- Conductivity {W/m-K} #> │─ 5*: 513, !- Density {kg/m3} #> └─ 6*: 1381; !- Specific Heat {J/kg-K} #>
# by default, duplications are removed idf$load(idf$to_table(class = "Material"))
#> Duplicated objects in input, or objects in input that are the same in current IDF have been removed: #> #01| Object 'C5 - 4 IN HW CONCRETE' in class 'Material' #> #02| Object 'WD10' in class 'Material' #> #03| Object 'RG01' in class 'Material' #> #04| Object 'BR01' in class 'Material' #> #05| Object 'IN46' in class 'Material' #> #06| Object 'WD01' in class 'Material' #> #07| Object 'PW03' in class 'Material' #> #08| Object 'IN02' in class 'Material' #> #09| Object 'GP01' in class 'Material' #> #10| Object 'GP02' in class 'Material' #> #11| Object 'CC03' in class 'Material' #> #12| Object 'mat' in class 'Material' #> #13| Object 'C5 - 4 IN HW CONCRETE 1' in class 'Material' #> #14| Object 'WD10 1' in class 'Material' #> #15| Object 'RG01 1' in class 'Material' #> #16| Object 'BR01 1' in class 'Material' #> #17| Object 'IN46 1' in class 'Material' #> #18| Object 'WD01 1' in class 'Material' #> #19| Object 'PW03 1' in class 'Material' #> #20| Object 'IN02 1' in class 'Material' #> #21| Object 'GP01 1' in class 'Material' #> #22| Object 'GP02 1' in class 'Material' #> #23| Object 'CC03 1' in class 'Material' #> #24| Object 'mat 1' in class 'Material'
#> After deleting duplications, nothing to add.
# keep empty fields as they are idf$load("Material, mat1, smooth, 0.5, 0.2, 500, 1000,,, 0.5;", .default = FALSE)
#> $mat1 #> <IdfObject: 'Material'> [ID:89] `mat1` #> Class: <Material> #> ├─ 1*: "mat1", !- Name #> │─ 2*: "smooth", !- Roughness #> │─ 3*: 0.5, !- Thickness {m} #> │─ 4*: 0.2, !- Conductivity {W/m-K} #> │─ 5*: 500, !- Density {kg/m3} #> │─ 6*: 1000, !- Specific Heat {J/kg-K} #> │─ 7 : <Blank>, !- Thermal Absorptance #> │─ 8 : <Blank>, !- Solar Absorptance #> └─ 9 : 0.5; !- Visible Absorptance #>
# keep trailing empty fields idf$load("Material, mat2, smooth, 0.5, 0.2, 500, 1000,,,;", .default = FALSE, .empty = TRUE )
#> $mat2 #> <IdfObject: 'Material'> [ID:90] `mat2` #> Class: <Material> #> ├─ 1*: "mat2", !- Name #> │─ 2*: "smooth", !- Roughness #> │─ 3*: 0.5, !- Thickness {m} #> │─ 4*: 0.2, !- Conductivity {W/m-K} #> │─ 5*: 500, !- Density {kg/m3} #> │─ 6*: 1000, !- Specific Heat {J/kg-K} #> │─ 7 : <Blank>, !- Thermal Absorptance #> │─ 8 : <Blank>, !- Solar Absorptance #> └─ 9 : <Blank>; !- Visible Absorptance #>
# } ## ------------------------------------------------ ## Method `Idf$update` ## ------------------------------------------------ # \dontrun{ # update objects from string definitions: str <- idf$to_string("zone one", header = FALSE, format = "new_top") str[8] <- "2," # Multiplier idf$update(str)
#> $`ZONE ONE` #> <IdfObject: 'Zone'> [ID:18] `ZONE ONE` #> Class: <Zone> #> ├─ 1*: "ZONE ONE", !- Name #> │─ 2 : 0, !- Direction of Relative North {deg} #> │─ 3 : 0, !- X Origin {m} #> │─ 4 : 0, !- Y Origin {m} #> │─ 5 : 0, !- Z Origin {m} #> │─ 6 : 1, !- Type #> │─ 7 : 2, !- Multiplier #> │─ 8 : autocalculate, !- Ceiling Height {m} #> └─ 9 : autocalculate; !- Volume {m3} #>
# update objects from data.frame definitions: dt <- idf$to_table("zone one") dt[field == "Multiplier", value := "1"]
#> id name class index field value #> 1: 18 ZONE ONE Zone 1 Name ZONE ONE #> 2: 18 ZONE ONE Zone 2 Direction of Relative North 0 #> 3: 18 ZONE ONE Zone 3 X Origin 0 #> 4: 18 ZONE ONE Zone 4 Y Origin 0 #> 5: 18 ZONE ONE Zone 5 Z Origin 0 #> 6: 18 ZONE ONE Zone 6 Type 1 #> 7: 18 ZONE ONE Zone 7 Multiplier 1 #> 8: 18 ZONE ONE Zone 8 Ceiling Height autocalculate #> 9: 18 ZONE ONE Zone 9 Volume autocalculate
idf$update(dt)
#> $`ZONE ONE` #> <IdfObject: 'Zone'> [ID:18] `ZONE ONE` #> Class: <Zone> #> ├─ 1*: "ZONE ONE", !- Name #> │─ 2 : 0, !- Direction of Relative North {deg} #> │─ 3 : 0, !- X Origin {m} #> │─ 4 : 0, !- Y Origin {m} #> │─ 5 : 0, !- Z Origin {m} #> │─ 6 : 1, !- Type #> │─ 7 : 1, !- Multiplier #> │─ 8 : autocalculate, !- Ceiling Height {m} #> └─ 9 : autocalculate; !- Volume {m3} #>
# } ## ------------------------------------------------ ## Method `Idf$search_value` ## ------------------------------------------------ # \dontrun{ # search values that contains "floor" idf$search_value("floor", ignore.case = TRUE)
#> $FLOOR #> <IdfObject: 'Construction'> [ID:16] `FLOOR` #> Class: <Construction> #> ├─ 1*: "FLOOR", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> $`Zn001:Flr001` #> <IdfObject: 'BuildingSurface:Detailed'> [ID:25] `Zn001:Flr001` #> Class: <BuildingSurface:Detailed> #> ├─ 01*: "Zn001:Flr001", !- Name #> │─ 02*: "Floor", !- Surface Type #> │─ 03*: "FLOOR", !- Construction Name #> │─ 04*: "ZONE ONE", !- Zone Name #> │─ 05*: "Adiabatic", !- Outside Boundary Condition #> │─ 06 : <"Blank">, !- Outside Boundary Condition Object #> │─ 07 : "NoSun", !- Sun Exposure #> │─ 08 : "NoWind", !- Wind Exposure #> │─ 09 : 1, !- View Factor to Ground #> │─ 10 : 4, !- Number of Vertices #> │─ 11*: 15.24, !- Vertex 1 X-coordinate {m} #> │─ 12*: 0, !- Vertex 1 Y-coordinate {m} #> │─ 13*: 0, !- Vertex 1 Z-coordinate {m} #> │─ 14*: 0, !- Vertex 2 X-coordinate {m} #> │─ 15*: 0, !- Vertex 2 Y-coordinate {m} #> │─ 16*: 0, !- Vertex 2 Z-coordinate {m} #> │─ 17*: 0, !- Vertex 3 X-coordinate {m} #> │─ 18*: 15.24, !- Vertex 3 Y-coordinate {m} #> │─ 19*: 0, !- Vertex 3 Z-coordinate {m} #> │─ 20 : 15.24, !- Vertex 4 X-coordinate {m} #> │─ 21 : 15.24, !- Vertex 4 Y-coordinate {m} #> └─ 22 : 0; !- Vertex 4 Z-coordinate {m} #> #> $FLOOR_1 #> <IdfObject: 'Construction'> [ID:54] `FLOOR_1` #> Class: <Construction> #> ├─ 1*: "FLOOR_1", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> $FLOOR_2 #> <IdfObject: 'Construction'> [ID:55] `FLOOR_2` #> Class: <Construction> #> ├─ 1*: "FLOOR_2", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> $new_floor #> <IdfObject: 'Construction'> [ID:56] `new_floor` #> Class: <Construction> #> ├─ 1*: "new_floor", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> $new_floor2 #> <IdfObject: 'Construction'> [ID:57] `new_floor2` #> Class: <Construction> #> ├─ 1*: "new_floor2", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> $new_floor3 #> <IdfObject: 'Construction'> [ID:58] `new_floor3` #> Class: <Construction> #> ├─ 1*: "new_floor3", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> $new_floor4 #> <IdfObject: 'Construction'> [ID:59] `new_floor4` #> Class: <Construction> #> ├─ 1*: "new_floor4", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #>
# search values that contains "floor" in class Construction idf$search_value("floor", "Construction", ignore.case = TRUE)
#> $FLOOR #> <IdfObject: 'Construction'> [ID:16] `FLOOR` #> Class: <Construction> #> ├─ 1*: "FLOOR", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> $FLOOR_1 #> <IdfObject: 'Construction'> [ID:54] `FLOOR_1` #> Class: <Construction> #> ├─ 1*: "FLOOR_1", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> $FLOOR_2 #> <IdfObject: 'Construction'> [ID:55] `FLOOR_2` #> Class: <Construction> #> ├─ 1*: "FLOOR_2", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> $new_floor #> <IdfObject: 'Construction'> [ID:56] `new_floor` #> Class: <Construction> #> ├─ 1*: "new_floor", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> $new_floor2 #> <IdfObject: 'Construction'> [ID:57] `new_floor2` #> Class: <Construction> #> ├─ 1*: "new_floor2", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> $new_floor3 #> <IdfObject: 'Construction'> [ID:58] `new_floor3` #> Class: <Construction> #> ├─ 1*: "new_floor3", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> $new_floor4 #> <IdfObject: 'Construction'> [ID:59] `new_floor4` #> Class: <Construction> #> ├─ 1*: "new_floor4", !- Name #> └─ 2*: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #>
# } ## ------------------------------------------------ ## Method `Idf$replace_value` ## ------------------------------------------------ # \dontrun{ # search values that contains "win" and replace them with "windows" idf$replace_value("win", "windows")
#> Error: Failed to set object(s). #> #> ✖ [1] Errors found during validation. #> ════════════════════════════════════════════════════════════════════════════════ #> #> ── [1] Invalid Choice ────────────────────────────────────────────────────────── #> Fields below are not one of prescribed choices: #> #> Class: <Building> #> └─ Object [ID:3] <Simple One Zone (Wireframe DXF)> #> └─ 6: "MinimalShadowindowsg"; !- Solar Distribution #>
# } ## ------------------------------------------------ ## Method `Idf$validate` ## ------------------------------------------------ # \dontrun{ idf$validate()
#> ✖ [4] Errors found during validation. #> ════════════════════════════════════════════════════════════════════════════════ #> #> ── [3] Missing Required Field ────────────────────────────────────────────────── #> Fields below are required but values are not given: #> #> Class: <OtherEquipment> #> ├─ Object [ID:51] <test_352a> #> │ └─ 4: <"Blank">; !- Schedule Name #> │ #> └─ Object [ID:52] <Test 352 minus> #> └─ 4: <"Blank">; !- Schedule Name #> #> Class: <Schedule:Constant> #> └─ Object [ID:53] <AlwaysOn> #> └─ 1: <"Blank">; !- Name #> #> #> ── [1] Invalid Reference ─────────────────────────────────────────────────────── #> Fields below are not one of valid references: #> #> Class: <Construction> #> └─ Object [ID:15] <R13WALL> #> └─ 2: "R13LAYER"; !- Outside Layer #> #>
# check at predefined validate level idf$validate("none")
#> ✔ No error found.
idf$validate("draft")
#> ✔ No error found.
idf$validate("final")
#> ✖ [4] Errors found during validation. #> ════════════════════════════════════════════════════════════════════════════════ #> #> ── [3] Missing Required Field ────────────────────────────────────────────────── #> Fields below are required but values are not given: #> #> Class: <OtherEquipment> #> ├─ Object [ID:51] <test_352a> #> │ └─ 4: <"Blank">; !- Schedule Name #> │ #> └─ Object [ID:52] <Test 352 minus> #> └─ 4: <"Blank">; !- Schedule Name #> #> Class: <Schedule:Constant> #> └─ Object [ID:53] <AlwaysOn> #> └─ 1: <"Blank">; !- Name #> #> #> ── [1] Invalid Reference ─────────────────────────────────────────────────────── #> Fields below are not one of valid references: #> #> Class: <Construction> #> └─ Object [ID:15] <R13WALL> #> └─ 2: "R13LAYER"; !- Outside Layer #> #>
# custom validate checking components idf$validate(custom_validate(auto_field = TRUE, choice = TRUE))
#> ✔ No error found.
# } ## ------------------------------------------------ ## Method `Idf$is_valid` ## ------------------------------------------------ # \dontrun{ idf$is_valid()
#> [1] FALSE
# check at predefined validate level idf$is_valid("none")
#> [1] TRUE
idf$is_valid("draft")
#> [1] TRUE
idf$is_valid("final")
#> [1] FALSE
# custom validate checking components idf$is_valid(custom_validate(auto_field = TRUE, choice = TRUE))
#> [1] TRUE
# } ## ------------------------------------------------ ## Method `Idf$to_string` ## ------------------------------------------------ # \dontrun{ # get text format of the whole Idf head(idf$to_string())
#> [1] "!-Generator eplusr" #> [2] "!-Option SortedOrder" #> [3] "" #> [4] "!-NOTE: All comments with '!-' are ignored by the IDFEditor and are generated automatically." #> [5] "!- Use '!' comments if they need to be retained when using the IDFEditor." #> [6] ""
# get text format of the whole Idf, excluding the header and all comments head(idf$to_string(comment = FALSE, header = FALSE))
#> [1] "!- =========== ALL OBJECTS IN CLASS: VERSION ===========" #> [2] "" #> [3] "Version," #> [4] " 8.8; !- Version Identifier" #> [5] "" #> [6] ""
# get text format of all objects in class Material head(idf$to_string(class = "Material", comment = FALSE, header = FALSE))
#> [1] "!- =========== ALL OBJECTS IN CLASS: MATERIAL ===========" #> [2] "" #> [3] "Material," #> [4] " C5 - 4 IN HW CONCRETE, !- Name" #> [5] " MediumRough, !- Roughness" #> [6] " 0.1014984, !- Thickness {m}"
# get text format of some objects head(idf$to_string(c("floor", "zone one")))
#> [1] "!-Generator eplusr" #> [2] "!-Option SortedOrder" #> [3] "" #> [4] "!-NOTE: All comments with '!-' are ignored by the IDFEditor and are generated automatically." #> [5] "!- Use '!' comments if they need to be retained when using the IDFEditor." #> [6] ""
# tweak output formatting head(idf$to_string("floor", leading = 0, sep_at = 0))
#> [1] "!-Generator eplusr" #> [2] "!-Option SortedOrder" #> [3] "" #> [4] "!-NOTE: All comments with '!-' are ignored by the IDFEditor and are generated automatically." #> [5] "!- Use '!' comments if they need to be retained when using the IDFEditor." #> [6] ""
# } ## ------------------------------------------------ ## Method `Idf$to_table` ## ------------------------------------------------ # \dontrun{ # extract whole Idf data idf$to_table()
#> id name class index #> 1: 1 <NA> Version 1 #> 2: 2 <NA> Timestep 1 #> 3: 3 Simple One Zone (Wireframe DXF) Building 1 #> 4: 3 Simple One Zone (Wireframe DXF) Building 2 #> 5: 3 Simple One Zone (Wireframe DXF) Building 3 #> --- #> 500: 90 mat2 Material 5 #> 501: 90 mat2 Material 6 #> 502: 90 mat2 Material 7 #> 503: 90 mat2 Material 8 #> 504: 90 mat2 Material 9 #> field value #> 1: Version Identifier 8.8 #> 2: Number of Timesteps per Hour 4 #> 3: Name Simple One Zone (Wireframe DXF) #> 4: North Axis 0 #> 5: Terrain Suburbs #> --- #> 500: Density 500 #> 501: Specific Heat 1000 #> 502: Thermal Absorptance <NA> #> 503: Solar Absorptance <NA> #> 504: Visible Absorptance <NA>
# extract all data from class Material idf$to_table(class = "Material")
#> id name class index field #> 1: 14 C5 - 4 IN HW CONCRETE Material 1 Name #> 2: 14 C5 - 4 IN HW CONCRETE Material 2 Roughness #> 3: 14 C5 - 4 IN HW CONCRETE Material 3 Thickness #> 4: 14 C5 - 4 IN HW CONCRETE Material 4 Conductivity #> 5: 14 C5 - 4 IN HW CONCRETE Material 5 Density #> --- #> 224: 90 mat2 Material 5 Density #> 225: 90 mat2 Material 6 Specific Heat #> 226: 90 mat2 Material 7 Thermal Absorptance #> 227: 90 mat2 Material 8 Solar Absorptance #> 228: 90 mat2 Material 9 Visible Absorptance #> value #> 1: C5 - 4 IN HW CONCRETE #> 2: MediumRough #> 3: 0.1014984 #> 4: 1.729577 #> 5: 2242.585 #> --- #> 224: 500 #> 225: 1000 #> 226: <NA> #> 227: <NA> #> 228: <NA>
# extract multiple object data idf$to_table(c("FLOOR", "ZONE ONE"))
#> id name class index field #> 1: 16 FLOOR Construction 1 Name #> 2: 16 FLOOR Construction 2 Outside Layer #> 3: 18 ZONE ONE Zone 1 Name #> 4: 18 ZONE ONE Zone 2 Direction of Relative North #> 5: 18 ZONE ONE Zone 3 X Origin #> 6: 18 ZONE ONE Zone 4 Y Origin #> 7: 18 ZONE ONE Zone 5 Z Origin #> 8: 18 ZONE ONE Zone 6 Type #> 9: 18 ZONE ONE Zone 7 Multiplier #> 10: 18 ZONE ONE Zone 8 Ceiling Height #> 11: 18 ZONE ONE Zone 9 Volume #> value #> 1: FLOOR #> 2: C5 - 4 IN HW CONCRETE #> 3: ZONE ONE #> 4: 0 #> 5: 0 #> 6: 0 #> 7: 0 #> 8: 1 #> 9: 1 #> 10: autocalculate #> 11: autocalculate
# keep value types and put actual values into a list column idf$to_table(c("FLOOR", "ZONE ONE"), string_value = FALSE)$value
#> [[1]] #> [1] "FLOOR" #> #> [[2]] #> [1] "C5 - 4 IN HW CONCRETE" #> #> [[3]] #> [1] "ZONE ONE" #> #> [[4]] #> [1] 0 #> #> [[5]] #> [1] 0 #> #> [[6]] #> [1] 0 #> #> [[7]] #> [1] 0 #> #> [[8]] #> [1] 1 #> #> [[9]] #> [1] 1 #> #> [[10]] #> [1] "autocalculate" #> #> [[11]] #> [1] "autocalculate" #>
# add the unit to each value idf$to_table(c("FLOOR", "ZONE ONE"), string_value = FALSE, unit = TRUE)
#> id name class index field #> 1: 16 FLOOR Construction 1 Name #> 2: 16 FLOOR Construction 2 Outside Layer #> 3: 18 ZONE ONE Zone 1 Name #> 4: 18 ZONE ONE Zone 2 Direction of Relative North #> 5: 18 ZONE ONE Zone 3 X Origin #> 6: 18 ZONE ONE Zone 4 Y Origin #> 7: 18 ZONE ONE Zone 5 Z Origin #> 8: 18 ZONE ONE Zone 6 Type #> 9: 18 ZONE ONE Zone 7 Multiplier #> 10: 18 ZONE ONE Zone 8 Ceiling Height #> 11: 18 ZONE ONE Zone 9 Volume #> value #> 1: FLOOR #> 2: C5 - 4 IN HW CONCRETE #> 3: ZONE ONE #> 4: 0 [°] #> 5: 0 [m] #> 6: 0 [m] #> 7: 0 [m] #> 8: 1 #> 9: 1 #> 10: autocalculate #> 11: autocalculate
# get all possible fields idf$to_table("ZONE ONE", all = TRUE)
#> id name class index field value #> 1: 18 ZONE ONE Zone 1 Name ZONE ONE #> 2: 18 ZONE ONE Zone 2 Direction of Relative North 0 #> 3: 18 ZONE ONE Zone 3 X Origin 0 #> 4: 18 ZONE ONE Zone 4 Y Origin 0 #> 5: 18 ZONE ONE Zone 5 Z Origin 0 #> 6: 18 ZONE ONE Zone 6 Type 1 #> 7: 18 ZONE ONE Zone 7 Multiplier 1 #> 8: 18 ZONE ONE Zone 8 Ceiling Height autocalculate #> 9: 18 ZONE ONE Zone 9 Volume autocalculate #> 10: 18 ZONE ONE Zone 10 Floor Area <NA> #> 11: 18 ZONE ONE Zone 11 Zone Inside Convection Algorithm <NA> #> 12: 18 ZONE ONE Zone 12 Zone Outside Convection Algorithm <NA> #> 13: 18 ZONE ONE Zone 13 Part of Total Floor Area <NA>
# make sure all objects in same class have the same number of fields idf$to_table(class = "Construction", align = TRUE)
#> id name class index field value #> 1: 15 R13WALL Construction 1 Name R13WALL #> 2: 15 R13WALL Construction 2 Outside Layer R13LAYER #> 3: 16 FLOOR Construction 1 Name FLOOR #> 4: 16 FLOOR Construction 2 Outside Layer C5 - 4 IN HW CONCRETE #> 5: 54 FLOOR_1 Construction 1 Name FLOOR_1 #> 6: 54 FLOOR_1 Construction 2 Outside Layer C5 - 4 IN HW CONCRETE #> 7: 55 FLOOR_2 Construction 1 Name FLOOR_2 #> 8: 55 FLOOR_2 Construction 2 Outside Layer C5 - 4 IN HW CONCRETE #> 9: 56 new_floor Construction 1 Name new_floor #> 10: 56 new_floor Construction 2 Outside Layer C5 - 4 IN HW CONCRETE #> 11: 57 new_floor2 Construction 1 Name new_floor2 #> 12: 57 new_floor2 Construction 2 Outside Layer C5 - 4 IN HW CONCRETE #> 13: 58 new_floor3 Construction 1 Name new_floor3 #> 14: 58 new_floor3 Construction 2 Outside Layer C5 - 4 IN HW CONCRETE #> 15: 59 new_floor4 Construction 1 Name new_floor4 #> 16: 59 new_floor4 Construction 2 Outside Layer C5 - 4 IN HW CONCRETE #> 17: 60 flr1 Construction 1 Name flr1 #> 18: 60 flr1 Construction 2 Outside Layer C5 - 4 IN HW CONCRETE #> 19: 61 flr2 Construction 1 Name flr2 #> 20: 61 flr2 Construction 2 Outside Layer C5 - 4 IN HW CONCRETE #> 21: 62 flr3 Construction 1 Name flr3 #> 22: 62 flr3 Construction 2 Outside Layer C5 - 4 IN HW CONCRETE #> 23: 63 flr4 Construction 1 Name flr4 #> 24: 63 flr4 Construction 2 Outside Layer C5 - 4 IN HW CONCRETE #> 25: 64 flr5 Construction 1 Name flr5 #> 26: 64 flr5 Construction 2 Outside Layer C5 - 4 IN HW CONCRETE #> 27: 76 const Construction 1 Name const #> 28: 76 const Construction 2 Outside Layer mat #> id name class index field value
# get a wide table with string values idf$to_table(class = "Construction", wide = TRUE)
#> id name class Name Outside Layer #> 1: 15 R13WALL Construction R13WALL R13LAYER #> 2: 16 FLOOR Construction FLOOR C5 - 4 IN HW CONCRETE #> 3: 54 FLOOR_1 Construction FLOOR_1 C5 - 4 IN HW CONCRETE #> 4: 55 FLOOR_2 Construction FLOOR_2 C5 - 4 IN HW CONCRETE #> 5: 56 new_floor Construction new_floor C5 - 4 IN HW CONCRETE #> 6: 57 new_floor2 Construction new_floor2 C5 - 4 IN HW CONCRETE #> 7: 58 new_floor3 Construction new_floor3 C5 - 4 IN HW CONCRETE #> 8: 59 new_floor4 Construction new_floor4 C5 - 4 IN HW CONCRETE #> 9: 60 flr1 Construction flr1 C5 - 4 IN HW CONCRETE #> 10: 61 flr2 Construction flr2 C5 - 4 IN HW CONCRETE #> 11: 62 flr3 Construction flr3 C5 - 4 IN HW CONCRETE #> 12: 63 flr4 Construction flr4 C5 - 4 IN HW CONCRETE #> 13: 64 flr5 Construction flr5 C5 - 4 IN HW CONCRETE #> 14: 76 const Construction const mat
# get a wide table with actual values idf$to_table(class = "OtherEquipment", wide = TRUE, string_value = FALSE)
#> id name class Name Fuel Type #> 1: 51 test_352a OtherEquipment test_352a None #> 2: 52 Test 352 minus OtherEquipment Test 352 minus None #> Zone or ZoneList Name Schedule Name Design Level Calculation Method #> 1: ZONE ONE <NA> EquipmentLevel #> 2: ZONE ONE <NA> EquipmentLevel #> Design Level Power per Zone Floor Area Power per Person Fraction Latent #> 1: 352 NA NA 0 #> 2: -352 NA NA 0 #> Fraction Radiant Fraction Lost #> 1: 0 0 #> 2: 0 0
# group extensible by extensible group number idf$to_table(class = "BuildingSurface:Detailed", group_ext = "group")
#> id name class index #> 1: 21 Zn001:Wall001 BuildingSurface:Detailed 1 #> 2: 21 Zn001:Wall001 BuildingSurface:Detailed 2 #> 3: 21 Zn001:Wall001 BuildingSurface:Detailed 3 #> 4: 21 Zn001:Wall001 BuildingSurface:Detailed 4 #> 5: 21 Zn001:Wall001 BuildingSurface:Detailed 5 #> 6: 21 Zn001:Wall001 BuildingSurface:Detailed 6 #> 7: 21 Zn001:Wall001 BuildingSurface:Detailed 7 #> 8: 21 Zn001:Wall001 BuildingSurface:Detailed 8 #> 9: 21 Zn001:Wall001 BuildingSurface:Detailed 9 #> 10: 21 Zn001:Wall001 BuildingSurface:Detailed 10 #> 11: 21 Zn001:Wall001 BuildingSurface:Detailed 11 #> 12: 21 Zn001:Wall001 BuildingSurface:Detailed 12 #> 13: 21 Zn001:Wall001 BuildingSurface:Detailed 13 #> 14: 21 Zn001:Wall001 BuildingSurface:Detailed 14 #> 15: 22 Zn001:Wall002 BuildingSurface:Detailed 1 #> 16: 22 Zn001:Wall002 BuildingSurface:Detailed 2 #> 17: 22 Zn001:Wall002 BuildingSurface:Detailed 3 #> 18: 22 Zn001:Wall002 BuildingSurface:Detailed 4 #> 19: 22 Zn001:Wall002 BuildingSurface:Detailed 5 #> 20: 22 Zn001:Wall002 BuildingSurface:Detailed 6 #> 21: 22 Zn001:Wall002 BuildingSurface:Detailed 7 #> 22: 22 Zn001:Wall002 BuildingSurface:Detailed 8 #> 23: 22 Zn001:Wall002 BuildingSurface:Detailed 9 #> 24: 22 Zn001:Wall002 BuildingSurface:Detailed 10 #> 25: 22 Zn001:Wall002 BuildingSurface:Detailed 11 #> 26: 22 Zn001:Wall002 BuildingSurface:Detailed 12 #> 27: 22 Zn001:Wall002 BuildingSurface:Detailed 13 #> 28: 22 Zn001:Wall002 BuildingSurface:Detailed 14 #> 29: 23 Zn001:Wall003 BuildingSurface:Detailed 1 #> 30: 23 Zn001:Wall003 BuildingSurface:Detailed 2 #> 31: 23 Zn001:Wall003 BuildingSurface:Detailed 3 #> 32: 23 Zn001:Wall003 BuildingSurface:Detailed 4 #> 33: 23 Zn001:Wall003 BuildingSurface:Detailed 5 #> 34: 23 Zn001:Wall003 BuildingSurface:Detailed 6 #> 35: 23 Zn001:Wall003 BuildingSurface:Detailed 7 #> 36: 23 Zn001:Wall003 BuildingSurface:Detailed 8 #> 37: 23 Zn001:Wall003 BuildingSurface:Detailed 9 #> 38: 23 Zn001:Wall003 BuildingSurface:Detailed 10 #> 39: 23 Zn001:Wall003 BuildingSurface:Detailed 11 #> 40: 23 Zn001:Wall003 BuildingSurface:Detailed 12 #> 41: 23 Zn001:Wall003 BuildingSurface:Detailed 13 #> 42: 23 Zn001:Wall003 BuildingSurface:Detailed 14 #> 43: 24 Zn001:Wall004 BuildingSurface:Detailed 1 #> 44: 24 Zn001:Wall004 BuildingSurface:Detailed 2 #> 45: 24 Zn001:Wall004 BuildingSurface:Detailed 3 #> 46: 24 Zn001:Wall004 BuildingSurface:Detailed 4 #> 47: 24 Zn001:Wall004 BuildingSurface:Detailed 5 #> 48: 24 Zn001:Wall004 BuildingSurface:Detailed 6 #> 49: 24 Zn001:Wall004 BuildingSurface:Detailed 7 #> 50: 24 Zn001:Wall004 BuildingSurface:Detailed 8 #> 51: 24 Zn001:Wall004 BuildingSurface:Detailed 9 #> 52: 24 Zn001:Wall004 BuildingSurface:Detailed 10 #> 53: 24 Zn001:Wall004 BuildingSurface:Detailed 11 #> 54: 24 Zn001:Wall004 BuildingSurface:Detailed 12 #> 55: 24 Zn001:Wall004 BuildingSurface:Detailed 13 #> 56: 24 Zn001:Wall004 BuildingSurface:Detailed 14 #> 57: 25 Zn001:Flr001 BuildingSurface:Detailed 1 #> 58: 25 Zn001:Flr001 BuildingSurface:Detailed 2 #> 59: 25 Zn001:Flr001 BuildingSurface:Detailed 3 #> 60: 25 Zn001:Flr001 BuildingSurface:Detailed 4 #> 61: 25 Zn001:Flr001 BuildingSurface:Detailed 5 #> 62: 25 Zn001:Flr001 BuildingSurface:Detailed 6 #> 63: 25 Zn001:Flr001 BuildingSurface:Detailed 7 #> 64: 25 Zn001:Flr001 BuildingSurface:Detailed 8 #> 65: 25 Zn001:Flr001 BuildingSurface:Detailed 9 #> 66: 25 Zn001:Flr001 BuildingSurface:Detailed 10 #> 67: 25 Zn001:Flr001 BuildingSurface:Detailed 11 #> 68: 25 Zn001:Flr001 BuildingSurface:Detailed 12 #> 69: 25 Zn001:Flr001 BuildingSurface:Detailed 13 #> 70: 25 Zn001:Flr001 BuildingSurface:Detailed 14 #> id name class index #> field value #> 1: Name Zn001:Wall001 #> 2: Surface Type Wall #> 3: Construction Name R13WALL #> 4: Zone Name ZONE ONE #> 5: Outside Boundary Condition Outdoors #> 6: Outside Boundary Condition Object NA #> 7: Sun Exposure SunExposed #> 8: Wind Exposure WindExposed #> 9: View Factor to Ground 0.5 #> 10: Number of Vertices 4 #> 11: Vrtx1X-crd|Vrtx1Y-crd|Vrtx1Z-crd 0,0,4.572 #> 12: Vrtx2X-crd|Vrtx2Y-crd|Vrtx2Z-crd 0,0,0 #> 13: Vrtx3X-crd|Vrtx3Y-crd|Vrtx3Z-crd 15.24,0,0 #> 14: Vrtx4X-crd|Vrtx4Y-crd|Vrtx4Z-crd 15.24,0,4.572 #> 15: Name Zn001:Wall002 #> 16: Surface Type Wall #> 17: Construction Name R13WALL #> 18: Zone Name ZONE ONE #> 19: Outside Boundary Condition Outdoors #> 20: Outside Boundary Condition Object NA #> 21: Sun Exposure SunExposed #> 22: Wind Exposure WindExposed #> 23: View Factor to Ground 0.5 #> 24: Number of Vertices 4 #> 25: Vrtx1X-crd|Vrtx1Y-crd|Vrtx1Z-crd 15.24,0,4.572 #> 26: Vrtx2X-crd|Vrtx2Y-crd|Vrtx2Z-crd 15.24,0,0 #> 27: Vrtx3X-crd|Vrtx3Y-crd|Vrtx3Z-crd 15.24,15.24,0 #> 28: Vrtx4X-crd|Vrtx4Y-crd|Vrtx4Z-crd 15.24,15.24,4.572 #> 29: Name Zn001:Wall003 #> 30: Surface Type Wall #> 31: Construction Name R13WALL #> 32: Zone Name ZONE ONE #> 33: Outside Boundary Condition Outdoors #> 34: Outside Boundary Condition Object NA #> 35: Sun Exposure SunExposed #> 36: Wind Exposure WindExposed #> 37: View Factor to Ground 0.5 #> 38: Number of Vertices 4 #> 39: Vrtx1X-crd|Vrtx1Y-crd|Vrtx1Z-crd 15.24,15.24,4.572 #> 40: Vrtx2X-crd|Vrtx2Y-crd|Vrtx2Z-crd 15.24,15.24,0 #> 41: Vrtx3X-crd|Vrtx3Y-crd|Vrtx3Z-crd 0,15.24,0 #> 42: Vrtx4X-crd|Vrtx4Y-crd|Vrtx4Z-crd 0,15.24,4.572 #> 43: Name Zn001:Wall004 #> 44: Surface Type Wall #> 45: Construction Name R13WALL #> 46: Zone Name ZONE ONE #> 47: Outside Boundary Condition Outdoors #> 48: Outside Boundary Condition Object NA #> 49: Sun Exposure SunExposed #> 50: Wind Exposure WindExposed #> 51: View Factor to Ground 0.5 #> 52: Number of Vertices 4 #> 53: Vrtx1X-crd|Vrtx1Y-crd|Vrtx1Z-crd 0,15.24,4.572 #> 54: Vrtx2X-crd|Vrtx2Y-crd|Vrtx2Z-crd 0,15.24,0 #> 55: Vrtx3X-crd|Vrtx3Y-crd|Vrtx3Z-crd 0,0,0 #> 56: Vrtx4X-crd|Vrtx4Y-crd|Vrtx4Z-crd 0,0,4.572 #> 57: Name Zn001:Flr001 #> 58: Surface Type Floor #> 59: Construction Name FLOOR #> 60: Zone Name ZONE ONE #> 61: Outside Boundary Condition Adiabatic #> 62: Outside Boundary Condition Object NA #> 63: Sun Exposure NoSun #> 64: Wind Exposure NoWind #> 65: View Factor to Ground 1 #> 66: Number of Vertices 4 #> 67: Vrtx1X-crd|Vrtx1Y-crd|Vrtx1Z-crd 15.24,0,0 #> 68: Vrtx2X-crd|Vrtx2Y-crd|Vrtx2Z-crd 0,0,0 #> 69: Vrtx3X-crd|Vrtx3Y-crd|Vrtx3Z-crd 0,15.24,0 #> 70: Vrtx4X-crd|Vrtx4Y-crd|Vrtx4Z-crd 15.24,15.24,0 #> field value
# group extensible by extensible group number and convert into a wide table idf$to_table(class = "BuildingSurface:Detailed", group_ext = "group", wide = TRUE)
#> id name class Name Surface Type #> 1: 21 Zn001:Wall001 BuildingSurface:Detailed Zn001:Wall001 Wall #> 2: 22 Zn001:Wall002 BuildingSurface:Detailed Zn001:Wall002 Wall #> 3: 23 Zn001:Wall003 BuildingSurface:Detailed Zn001:Wall003 Wall #> 4: 24 Zn001:Wall004 BuildingSurface:Detailed Zn001:Wall004 Wall #> 5: 25 Zn001:Flr001 BuildingSurface:Detailed Zn001:Flr001 Floor #> Construction Name Zone Name Outside Boundary Condition #> 1: R13WALL ZONE ONE Outdoors #> 2: R13WALL ZONE ONE Outdoors #> 3: R13WALL ZONE ONE Outdoors #> 4: R13WALL ZONE ONE Outdoors #> 5: FLOOR ZONE ONE Adiabatic #> Outside Boundary Condition Object Sun Exposure Wind Exposure #> 1: NA SunExposed WindExposed #> 2: NA SunExposed WindExposed #> 3: NA SunExposed WindExposed #> 4: NA SunExposed WindExposed #> 5: NA NoSun NoWind #> View Factor to Ground Number of Vertices Vrtx1X-crd|Vrtx1Y-crd|Vrtx1Z-crd #> 1: 0.5 4 0,0,4.572 #> 2: 0.5 4 15.24,0,4.572 #> 3: 0.5 4 15.24,15.24,4.572 #> 4: 0.5 4 0,15.24,4.572 #> 5: 1 4 15.24,0,0 #> Vrtx2X-crd|Vrtx2Y-crd|Vrtx2Z-crd Vrtx3X-crd|Vrtx3Y-crd|Vrtx3Z-crd #> 1: 0,0,0 15.24,0,0 #> 2: 15.24,0,0 15.24,15.24,0 #> 3: 15.24,15.24,0 0,15.24,0 #> 4: 0,15.24,0 0,0,0 #> 5: 0,0,0 0,15.24,0 #> Vrtx4X-crd|Vrtx4Y-crd|Vrtx4Z-crd #> 1: 15.24,0,4.572 #> 2: 15.24,15.24,4.572 #> 3: 0,15.24,4.572 #> 4: 0,0,4.572 #> 5: 15.24,15.24,0
# group extensible by extensible field index idf$to_table(class = "BuildingSurface:Detailed", group_ext = "index")
#> id name class index #> 1: 21 Zn001:Wall001 BuildingSurface:Detailed 1 #> 2: 21 Zn001:Wall001 BuildingSurface:Detailed 2 #> 3: 21 Zn001:Wall001 BuildingSurface:Detailed 3 #> 4: 21 Zn001:Wall001 BuildingSurface:Detailed 4 #> 5: 21 Zn001:Wall001 BuildingSurface:Detailed 5 #> 6: 21 Zn001:Wall001 BuildingSurface:Detailed 6 #> 7: 21 Zn001:Wall001 BuildingSurface:Detailed 7 #> 8: 21 Zn001:Wall001 BuildingSurface:Detailed 8 #> 9: 21 Zn001:Wall001 BuildingSurface:Detailed 9 #> 10: 21 Zn001:Wall001 BuildingSurface:Detailed 10 #> 11: 21 Zn001:Wall001 BuildingSurface:Detailed 11 #> 12: 21 Zn001:Wall001 BuildingSurface:Detailed 12 #> 13: 21 Zn001:Wall001 BuildingSurface:Detailed 13 #> 14: 22 Zn001:Wall002 BuildingSurface:Detailed 1 #> 15: 22 Zn001:Wall002 BuildingSurface:Detailed 2 #> 16: 22 Zn001:Wall002 BuildingSurface:Detailed 3 #> 17: 22 Zn001:Wall002 BuildingSurface:Detailed 4 #> 18: 22 Zn001:Wall002 BuildingSurface:Detailed 5 #> 19: 22 Zn001:Wall002 BuildingSurface:Detailed 6 #> 20: 22 Zn001:Wall002 BuildingSurface:Detailed 7 #> 21: 22 Zn001:Wall002 BuildingSurface:Detailed 8 #> 22: 22 Zn001:Wall002 BuildingSurface:Detailed 9 #> 23: 22 Zn001:Wall002 BuildingSurface:Detailed 10 #> 24: 22 Zn001:Wall002 BuildingSurface:Detailed 11 #> 25: 22 Zn001:Wall002 BuildingSurface:Detailed 12 #> 26: 22 Zn001:Wall002 BuildingSurface:Detailed 13 #> 27: 23 Zn001:Wall003 BuildingSurface:Detailed 1 #> 28: 23 Zn001:Wall003 BuildingSurface:Detailed 2 #> 29: 23 Zn001:Wall003 BuildingSurface:Detailed 3 #> 30: 23 Zn001:Wall003 BuildingSurface:Detailed 4 #> 31: 23 Zn001:Wall003 BuildingSurface:Detailed 5 #> 32: 23 Zn001:Wall003 BuildingSurface:Detailed 6 #> 33: 23 Zn001:Wall003 BuildingSurface:Detailed 7 #> 34: 23 Zn001:Wall003 BuildingSurface:Detailed 8 #> 35: 23 Zn001:Wall003 BuildingSurface:Detailed 9 #> 36: 23 Zn001:Wall003 BuildingSurface:Detailed 10 #> 37: 23 Zn001:Wall003 BuildingSurface:Detailed 11 #> 38: 23 Zn001:Wall003 BuildingSurface:Detailed 12 #> 39: 23 Zn001:Wall003 BuildingSurface:Detailed 13 #> 40: 24 Zn001:Wall004 BuildingSurface:Detailed 1 #> 41: 24 Zn001:Wall004 BuildingSurface:Detailed 2 #> 42: 24 Zn001:Wall004 BuildingSurface:Detailed 3 #> 43: 24 Zn001:Wall004 BuildingSurface:Detailed 4 #> 44: 24 Zn001:Wall004 BuildingSurface:Detailed 5 #> 45: 24 Zn001:Wall004 BuildingSurface:Detailed 6 #> 46: 24 Zn001:Wall004 BuildingSurface:Detailed 7 #> 47: 24 Zn001:Wall004 BuildingSurface:Detailed 8 #> 48: 24 Zn001:Wall004 BuildingSurface:Detailed 9 #> 49: 24 Zn001:Wall004 BuildingSurface:Detailed 10 #> 50: 24 Zn001:Wall004 BuildingSurface:Detailed 11 #> 51: 24 Zn001:Wall004 BuildingSurface:Detailed 12 #> 52: 24 Zn001:Wall004 BuildingSurface:Detailed 13 #> 53: 25 Zn001:Flr001 BuildingSurface:Detailed 1 #> 54: 25 Zn001:Flr001 BuildingSurface:Detailed 2 #> 55: 25 Zn001:Flr001 BuildingSurface:Detailed 3 #> 56: 25 Zn001:Flr001 BuildingSurface:Detailed 4 #> 57: 25 Zn001:Flr001 BuildingSurface:Detailed 5 #> 58: 25 Zn001:Flr001 BuildingSurface:Detailed 6 #> 59: 25 Zn001:Flr001 BuildingSurface:Detailed 7 #> 60: 25 Zn001:Flr001 BuildingSurface:Detailed 8 #> 61: 25 Zn001:Flr001 BuildingSurface:Detailed 9 #> 62: 25 Zn001:Flr001 BuildingSurface:Detailed 10 #> 63: 25 Zn001:Flr001 BuildingSurface:Detailed 11 #> 64: 25 Zn001:Flr001 BuildingSurface:Detailed 12 #> 65: 25 Zn001:Flr001 BuildingSurface:Detailed 13 #> id name class index #> field value #> 1: Name Zn001:Wall001 #> 2: Surface Type Wall #> 3: Construction Name R13WALL #> 4: Zone Name ZONE ONE #> 5: Outside Boundary Condition Outdoors #> 6: Outside Boundary Condition Object NA #> 7: Sun Exposure SunExposed #> 8: Wind Exposure WindExposed #> 9: View Factor to Ground 0.5 #> 10: Number of Vertices 4 #> 11: Vertex X-coordinate 0,0,15.24,15.24 #> 12: Vertex Y-coordinate 0,0,0,0 #> 13: Vertex Z-coordinate 4.572,0,0,4.572 #> 14: Name Zn001:Wall002 #> 15: Surface Type Wall #> 16: Construction Name R13WALL #> 17: Zone Name ZONE ONE #> 18: Outside Boundary Condition Outdoors #> 19: Outside Boundary Condition Object NA #> 20: Sun Exposure SunExposed #> 21: Wind Exposure WindExposed #> 22: View Factor to Ground 0.5 #> 23: Number of Vertices 4 #> 24: Vertex X-coordinate 15.24,15.24,15.24,15.24 #> 25: Vertex Y-coordinate 0,0,15.24,15.24 #> 26: Vertex Z-coordinate 4.572,0,0,4.572 #> 27: Name Zn001:Wall003 #> 28: Surface Type Wall #> 29: Construction Name R13WALL #> 30: Zone Name ZONE ONE #> 31: Outside Boundary Condition Outdoors #> 32: Outside Boundary Condition Object NA #> 33: Sun Exposure SunExposed #> 34: Wind Exposure WindExposed #> 35: View Factor to Ground 0.5 #> 36: Number of Vertices 4 #> 37: Vertex X-coordinate 15.24,15.24,0,0 #> 38: Vertex Y-coordinate 15.24,15.24,15.24,15.24 #> 39: Vertex Z-coordinate 4.572,0,0,4.572 #> 40: Name Zn001:Wall004 #> 41: Surface Type Wall #> 42: Construction Name R13WALL #> 43: Zone Name ZONE ONE #> 44: Outside Boundary Condition Outdoors #> 45: Outside Boundary Condition Object NA #> 46: Sun Exposure SunExposed #> 47: Wind Exposure WindExposed #> 48: View Factor to Ground 0.5 #> 49: Number of Vertices 4 #> 50: Vertex X-coordinate 0,0,0,0 #> 51: Vertex Y-coordinate 15.24,15.24,0,0 #> 52: Vertex Z-coordinate 4.572,0,0,4.572 #> 53: Name Zn001:Flr001 #> 54: Surface Type Floor #> 55: Construction Name FLOOR #> 56: Zone Name ZONE ONE #> 57: Outside Boundary Condition Adiabatic #> 58: Outside Boundary Condition Object NA #> 59: Sun Exposure NoSun #> 60: Wind Exposure NoWind #> 61: View Factor to Ground 1 #> 62: Number of Vertices 4 #> 63: Vertex X-coordinate 15.24,0,0,15.24 #> 64: Vertex Y-coordinate 0,0,15.24,15.24 #> 65: Vertex Z-coordinate 0,0,0,0 #> field value
# group extensible by extensible field index and convert into a wide table idf$to_table(class = "BuildingSurface:Detailed", group_ext = "index", wide = TRUE)
#> id name class Name Surface Type #> 1: 21 Zn001:Wall001 BuildingSurface:Detailed Zn001:Wall001 Wall #> 2: 22 Zn001:Wall002 BuildingSurface:Detailed Zn001:Wall002 Wall #> 3: 23 Zn001:Wall003 BuildingSurface:Detailed Zn001:Wall003 Wall #> 4: 24 Zn001:Wall004 BuildingSurface:Detailed Zn001:Wall004 Wall #> 5: 25 Zn001:Flr001 BuildingSurface:Detailed Zn001:Flr001 Floor #> Construction Name Zone Name Outside Boundary Condition #> 1: R13WALL ZONE ONE Outdoors #> 2: R13WALL ZONE ONE Outdoors #> 3: R13WALL ZONE ONE Outdoors #> 4: R13WALL ZONE ONE Outdoors #> 5: FLOOR ZONE ONE Adiabatic #> Outside Boundary Condition Object Sun Exposure Wind Exposure #> 1: NA SunExposed WindExposed #> 2: NA SunExposed WindExposed #> 3: NA SunExposed WindExposed #> 4: NA SunExposed WindExposed #> 5: NA NoSun NoWind #> View Factor to Ground Number of Vertices Vertex X-coordinate #> 1: 0.5 4 0,0,15.24,15.24 #> 2: 0.5 4 15.24,15.24,15.24,15.24 #> 3: 0.5 4 15.24,15.24,0,0 #> 4: 0.5 4 0,0,0,0 #> 5: 1 4 15.24,0,0,15.24 #> Vertex Y-coordinate Vertex Z-coordinate #> 1: 0,0,0,0 4.572,0,0,4.572 #> 2: 0,0,15.24,15.24 4.572,0,0,4.572 #> 3: 15.24,15.24,15.24,15.24 4.572,0,0,4.572 #> 4: 15.24,15.24,0,0 4.572,0,0,4.572 #> 5: 0,0,15.24,15.24 0,0,0,0
# when grouping extensible, 'string_value' and 'unit' still take effect idf$to_table(class = "BuildingSurface:Detailed", group_ext = "index", wide = TRUE, string_value = FALSE, unit = TRUE )
#> id name class Name Surface Type #> 1: 21 Zn001:Wall001 BuildingSurface:Detailed Zn001:Wall001 Wall #> 2: 22 Zn001:Wall002 BuildingSurface:Detailed Zn001:Wall002 Wall #> 3: 23 Zn001:Wall003 BuildingSurface:Detailed Zn001:Wall003 Wall #> 4: 24 Zn001:Wall004 BuildingSurface:Detailed Zn001:Wall004 Wall #> 5: 25 Zn001:Flr001 BuildingSurface:Detailed Zn001:Flr001 Floor #> Construction Name Zone Name Outside Boundary Condition #> 1: R13WALL ZONE ONE Outdoors #> 2: R13WALL ZONE ONE Outdoors #> 3: R13WALL ZONE ONE Outdoors #> 4: R13WALL ZONE ONE Outdoors #> 5: FLOOR ZONE ONE Adiabatic #> Outside Boundary Condition Object Sun Exposure Wind Exposure #> 1: <NA> SunExposed WindExposed #> 2: <NA> SunExposed WindExposed #> 3: <NA> SunExposed WindExposed #> 4: <NA> SunExposed WindExposed #> 5: <NA> NoSun NoWind #> View Factor to Ground Number of Vertices #> 1: 0.5 4 #> 2: 0.5 4 #> 3: 0.5 4 #> 4: 0.5 4 #> 5: 1.0 4 #> Vertex X-coordinate #> 1: 0.00 [m], 0.00 [m],15.24 [m],15.24 [m] #> 2: 15.24 [m],15.24 [m],15.24 [m],15.24 [m] #> 3: 15.24 [m],15.24 [m], 0.00 [m], 0.00 [m] #> 4: 0 [m],0 [m],0 [m],0 [m] #> 5: 15.24 [m], 0.00 [m], 0.00 [m],15.24 [m] #> Vertex Y-coordinate #> 1: 0 [m],0 [m],0 [m],0 [m] #> 2: 0.00 [m], 0.00 [m],15.24 [m],15.24 [m] #> 3: 15.24 [m],15.24 [m],15.24 [m],15.24 [m] #> 4: 15.24 [m],15.24 [m], 0.00 [m], 0.00 [m] #> 5: 0.00 [m], 0.00 [m],15.24 [m],15.24 [m] #> Vertex Z-coordinate #> 1: 4.572 [m],0.000 [m],0.000 [m],4.572 [m] #> 2: 4.572 [m],0.000 [m],0.000 [m],4.572 [m] #> 3: 4.572 [m],0.000 [m],0.000 [m],4.572 [m] #> 4: 4.572 [m],0.000 [m],0.000 [m],4.572 [m] #> 5: 0 [m],0 [m],0 [m],0 [m]
# } ## ------------------------------------------------ ## Method `Idf$is_unsaved` ## ------------------------------------------------ # \dontrun{ idf$is_unsaved()
#> [1] TRUE
# } ## ------------------------------------------------ ## Method `Idf$save` ## ------------------------------------------------ # \dontrun{ # save Idf as a new file idf$save(tempfile(fileext = ".idf")) # save and overwrite current file idf$save(overwrite = TRUE)
#> Replace the existing IDF located at /tmp/RtmpeLRCuX/file628c79ec5ac3.idf.
# save the model with newly created and modified objects at the top idf$save(overwrite = TRUE, format = "new_top")
#> Replace the existing IDF located at /tmp/RtmpeLRCuX/file628c79ec5ac3.idf.
# save the model to a new file and copy all external csv files used in # "Schedule:File" class into the same folder idf$save(path = file.path(tempdir(), "test1.idf"), copy_external = TRUE) # } ## ------------------------------------------------ ## Method `Idf$run` ## ------------------------------------------------ # \dontrun{ idf <- Idf$new(path_idf) # save the model to tempdir() idf$save(file.path(tempdir(), "test_run.idf")) # use the first epw file in "WeatherData" folder in EnergyPlus v8.8 # installation path epw <- list.files(file.path(eplus_config(8.8)$dir, "WeatherData"), pattern = "\\.epw$", full.names = TRUE)[1] # if `dir` is NULL, the directory of IDF file will be used as simulation # output directory job <- idf$run(epw, dir = NULL)
#> Adding an object in class `Output:SQLite` and setting its `Option Type` to `SimpleAndTabular` in order to create SQLite output file.
#> Replace the existing IDF located at /tmp/RtmpeLRCuX/test_run.idf.
#> EnergyPlus Starting #> EnergyPlus, Version 8.8.0-7c3bbe4830, YMD=2020.07.10 09:28 #> Processing Data Dictionary #> Processing Input File #> Initializing Simulation #> Reporting Surfaces #> Beginning Primary Simulation #> Initializing New Environment Parameters #> Warming up {1} #> Warming up {2} #> Warming up {3} #> Warming up {4} #> Warming up {5} #> Warming up {6} #> Warming up {7} #> Warming up {8} #> Warming up {9} #> Warming up {10} #> Warming up {11} #> Warming up {12} #> Warming up {13} #> Warming up {14} #> Warming up {15} #> Warming up {16} #> Warming up {17} #> Warming up {18} #> Warming up {19} #> Warming up {20} #> Warming up {21} #> Warming up {22} #> Starting Simulation at 12/21 for DENVER CENTENNIAL GOLDEN N ANN HTG 99% CONDNS DB #> Initializing New Environment Parameters #> Warming up {1} #> Warming up {2} #> Warming up {3} #> Warming up {4} #> Warming up {5} #> Warming up {6} #> Warming up {7} #> Warming up {8} #> Warming up {9} #> Warming up {10} #> Warming up {11} #> Warming up {12} #> Warming up {13} #> Warming up {14} #> Warming up {15} #> Warming up {16} #> Starting Simulation at 07/21 for DENVER CENTENNIAL GOLDEN N ANN CLG 1% CONDNS DB=>MWB #> Initializing New Environment Parameters #> Warming up {1} #> Warming up {2} #> Warming up {3} #> Warming up {4} #> Warming up {5} #> Warming up {6} #> Warming up {7} #> Warming up {8} #> Warming up {9} #> Warming up {10} #> Warming up {11} #> Warming up {12} #> Warming up {13} #> Warming up {14} #> Warming up {15} #> Warming up {16} #> Warming up {17} #> Warming up {18} #> Starting Simulation at 01/01 for San Francisco Intl Ap CA USA TMY3 WMO#=724940 #> Updating Shadowing Calculations, Start Date=01/21 #> Continuing Simulation at 01/21 for San Francisco Intl Ap CA USA TMY3 WMO#=724940 #> Updating Shadowing Calculations, Start Date=02/10 #> Continuing Simulation at 02/10 for San Francisco Intl Ap CA USA TMY3 WMO#=724940 #> Updating Shadowing Calculations, Start Date=03/02 #> Continuing Simulation at 03/02 for San Francisco Intl Ap CA USA TMY3 WMO#=724940 #> Updating Shadowing Calculations, Start Date=03/22 #> Continuing Simulation at 03/22 for San Francisco Intl Ap CA USA TMY3 WMO#=724940 #> Updating Shadowing Calculations, Start Date=04/11 #> Continuing Simulation at 04/11 for San Francisco Intl Ap CA USA TMY3 WMO#=724940 #> Updating Shadowing Calculations, Start Date=05/01 #> Continuing Simulation at 05/01 for San Francisco Intl Ap CA USA TMY3 WMO#=724940 #> Updating Shadowing Calculations, Start Date=05/21 #> Continuing Simulation at 05/21 for San Francisco Intl Ap CA USA TMY3 WMO#=724940 #> Updating Shadowing Calculations, Start Date=06/10 #> Continuing Simulation at 06/10 for San Francisco Intl Ap CA USA TMY3 WMO#=724940 #> Updating Shadowing Calculations, Start Date=06/30 #> Continuing Simulation at 06/30 for San Francisco Intl Ap CA USA TMY3 WMO#=724940 #> Updating Shadowing Calculations, Start Date=07/20 #> Continuing Simulation at 07/20 for San Francisco Intl Ap CA USA TMY3 WMO#=724940 #> Updating Shadowing Calculations, Start Date=08/09 #> Continuing Simulation at 08/09 for San Francisco Intl Ap CA USA TMY3 WMO#=724940 #> Updating Shadowing Calculations, Start Date=08/29 #> Continuing Simulation at 08/29 for San Francisco Intl Ap CA USA TMY3 WMO#=724940 #> Updating Shadowing Calculations, Start Date=09/18 #> Continuing Simulation at 09/18 for San Francisco Intl Ap CA USA TMY3 WMO#=724940 #> Updating Shadowing Calculations, Start Date=10/08 #> Continuing Simulation at 10/08 for San Francisco Intl Ap CA USA TMY3 WMO#=724940 #> Updating Shadowing Calculations, Start Date=10/28 #> Continuing Simulation at 10/28 for San Francisco Intl Ap CA USA TMY3 WMO#=724940 #> Updating Shadowing Calculations, Start Date=11/17 #> Continuing Simulation at 11/17 for San Francisco Intl Ap CA USA TMY3 WMO#=724940 #> Updating Shadowing Calculations, Start Date=12/07 #> Continuing Simulation at 12/07 for San Francisco Intl Ap CA USA TMY3 WMO#=724940 #> Updating Shadowing Calculations, Start Date=12/27 #> Continuing Simulation at 12/27 for San Francisco Intl Ap CA USA TMY3 WMO#=724940 #> Writing tabular output file results using comma format. #> Writing tabular output file results using tab format. #> Writing tabular output file results using text format. #> Writing tabular output file results using HTML format. #> Writing tabular output file results using XML format. #> Writing final SQL reports #> ReadVarsESO program starting. #> ReadVars Run Time=00hr 00min 0.22sec #> ReadVarsESO program completed successfully. #> ReadVarsESO program starting. #> ReadVars Run Time=00hr 00min 0.10sec #> ReadVarsESO program completed successfully. #> EnergyPlus Run Time=00hr 00min 1.77sec #>
# run simulation in the background idf$run(epw, dir = tempdir(), wait = FALSE)
#> Replace the existing IDF located at /tmp/RtmpeLRCuX/test_run.idf.
#> ── EnergPlus Simulation Job ──────────────────────────────────────────────────── #> * Model: '/tmp/RtmpeLRCuX/test_run.idf' #> * Weather: '/home/travis/.local/EnergyPlus-8-8-0/WeatherData/USA_CA_San.Fra... #> * EnergyPlus Version: '8.8.0' #> * EnergyPlus Path: '/home/travis/.local/EnergyPlus-8-8-0' #> Simulation started at '2020-07-10 09:28:31' and is still running...
# copy all external files into the directory run simulation idf$run(epw, dir = tempdir(), copy_external = TRUE)
#> Replace the existing IDF located at /tmp/RtmpeLRCuX/test_run.idf.
#> Error: The simulation of current Idf is still running (PID: 25539). Please set `force` to TRUE if you want to kill the running process and start a new simulation.
# check for simulation errors job$errors()
#> Error: Simulation is still running. Please wait simulation to finish before collecting results.
# get simulation status job$status()
#> $run_before #> [1] TRUE #> #> $alive #> [1] TRUE #> #> $terminated #> [1] FALSE #> #> $successful #> [1] NA #> #> $changed_after #> [1] FALSE #>
# get output directory job$output_dir()
#> [1] "/tmp/RtmpeLRCuX"
# re-run the simulation job$run()
#> Replace the existing IDF located at /tmp/RtmpeLRCuX/test_run.idf.
#> Error: The simulation of current Idf is still running (PID: 25539). Please set `force` to TRUE if you want to kill the running process and start a new simulation.
# get simulation results job$report_data()
#> Error: Simulation is still running. Please wait simulation to finish before collecting results.
# } ## ------------------------------------------------ ## Method `Idf$last_job` ## ------------------------------------------------ # \dontrun{ idf$last_job()
#> ── EnergPlus Simulation Job ──────────────────────────────────────────────────── #> * Model: '/tmp/RtmpeLRCuX/test_run.idf' #> * Weather: '/home/travis/.local/EnergyPlus-8-8-0/WeatherData/USA_CA_San.Fra... #> * EnergyPlus Version: '8.8.0' #> * EnergyPlus Path: '/home/travis/.local/EnergyPlus-8-8-0' #> Simulation started at '2020-07-10 09:28:31' and is still running...
# } ## ------------------------------------------------ ## Method `Idf$view` ## ------------------------------------------------ # \dontrun{ idf$view()
#> Warning: RGL: unable to open X11 display
#> Warning: 'rgl.init' failed, running with 'rgl.useNULL = TRUE'.
idf$view(render_by = "zone") idf$view(new, render_by = "construction")
#> Error: new is neither `TRUE` nor `FALSE`.
# } ## ------------------------------------------------ ## Method `Idf$save_view` ## ------------------------------------------------ # \dontrun{ idf$view() idf$save_view(tempfile(fileext = ".png")) # } ## ------------------------------------------------ ## Method `Idf$print` ## ------------------------------------------------ # \dontrun{ idf$print("group")
#> ── EnergPlus Input Data File ─────────────────────────────────────────────────── #> * Path: '/tmp/RtmpeLRCuX/test_run.idf' #> * Version: '8.8.0' #> #> [07<C>] Group: <Simulation Parameters> #> [04<C>] Group: <Location and Climate> #> [03<C>] Group: <Schedules> #> [06<C>] Group: <Surface Construction Elements> #> [08<C>] Group: <Thermal Zones and Surfaces> #> [02<C>] Group: <Internal Gains> #> [01<C>] Group: <Exterior Equipment> #> [22<C>] Group: <Output Reporting>
idf$print("class")
#> ── EnergPlus Input Data File ─────────────────────────────────────────────────── #> * Path: '/tmp/RtmpeLRCuX/test_run.idf' #> * Version: '8.8.0' #> #> Group: <Simulation Parameters> #> ├─ [01<O>] Class: <Version> #> │─ [01<O>] Class: <SimulationControl> #> │─ [01<O>] Class: <Building> #> │─ [01<O>] Class: <SurfaceConvectionAlgorithm:Inside> #> │─ [01<O>] Class: <SurfaceConvectionAlgorithm:Outside> #> │─ [01<O>] Class: <HeatBalanceAlgorithm> #> └─ [01<O>] Class: <Timestep> #> #> Group: <Location and Climate> #> ├─ [01<O>] Class: <Site:Location> #> │─ [02<O>] Class: <SizingPeriod:DesignDay> #> └─ [01<O>] Class: <RunPeriod> #> #> Group: <Schedules> #> ├─ [02<O>] Class: <ScheduleTypeLimits> #> └─ [01<O>] Class: <Schedule:Constant> #> #> Group: <Surface Construction Elements> #> ├─ [01<O>] Class: <Material> #> │─ [02<O>] Class: <Material:NoMass> #> └─ [03<O>] Class: <Construction> #> #> Group: <Thermal Zones and Surfaces> #> ├─ [01<O>] Class: <GlobalGeometryRules> #> │─ [01<O>] Class: <Zone> #> └─ [06<O>] Class: <BuildingSurface:Detailed> #> #> Group: <Internal Gains> #> └─ [02<O>] Class: <OtherEquipment> #> #> Group: <Exterior Equipment> #> └─ [01<O>] Class: <Exterior:Lights> #> #> Group: <Output Reporting> #> ├─ [01<O>] Class: <Output:VariableDictionary> #> │─ [01<O>] Class: <Output:Surfaces:Drawing> #> │─ [01<O>] Class: <Output:Constructions> #> │─ [01<O>] Class: <Output:Table:SummaryReports> #> │─ [01<O>] Class: <OutputControl:Table:Style> #> │─ [14<O>] Class: <Output:Variable> #> └─ [03<O>] Class: <Output:Meter:MeterFileOnly>
idf$print("object")
#> ── EnergPlus Input Data File ─────────────────────────────────────────────────── #> * Path: '/tmp/RtmpeLRCuX/test_run.idf' #> * Version: '8.8.0' #> #> Class: <Version> #> └─ Object [ID:1] #> #> Class: <Timestep> #> └─ Object [ID:2] #> #> Class: <Building> #> └─ Object [ID:3] <Simple One Zone (Wireframe DXF)> #> #> Class: <HeatBalanceAlgorithm> #> └─ Object [ID:4] #> #> Class: <SurfaceConvectionAlgorithm:Inside> #> └─ Object [ID:5] #> #> Class: <SurfaceConvectionAlgorithm:Outside> #> └─ Object [ID:6] #> #> Class: <SimulationControl> #> └─ Object [ID:7] #> #> Class: <RunPeriod> #> └─ Object [ID:8] #> #> Class: <Site:Location> #> └─ Object [ID:9] <Denver Centennial Golden N_CO_USA Design_Conditions> #> #> Class: <SizingPeriod:DesignDay> #> └─ Object [ID:10] <Denver Centennial Golden N Ann Htg 99% Condns DB> #> #> Class: <SizingPeriod:DesignDay> #> └─ Object [ID:11] <Denver Centennial Golden N Ann Clg 1% Condns DB=>MWB> #> #> Class: <Material:NoMass> #> └─ Object [ID:12] <R13LAYER> #> #> Class: <Material:NoMass> #> └─ Object [ID:13] <R31LAYER> #> #> Class: <Material> #> └─ Object [ID:14] <C5 - 4 IN HW CONCRETE> #> #> Class: <Construction> #> └─ Object [ID:15] <R13WALL> #> #> Class: <Construction> #> └─ Object [ID:16] <FLOOR> #> #> Class: <Construction> #> └─ Object [ID:17] <ROOF31> #> #> Class: <Zone> #> └─ Object [ID:18] <ZONE ONE> #> #> Class: <ScheduleTypeLimits> #> └─ Object [ID:19] <Fraction> #> #> Class: <GlobalGeometryRules> #> └─ Object [ID:20] #> #> Class: <BuildingSurface:Detailed> #> └─ Object [ID:21] <Zn001:Wall001> #> #> Class: <BuildingSurface:Detailed> #> └─ Object [ID:22] <Zn001:Wall002> #> #> Class: <BuildingSurface:Detailed> #> └─ Object [ID:23] <Zn001:Wall003> #> #> Class: <BuildingSurface:Detailed> #> └─ Object [ID:24] <Zn001:Wall004> #> #> Class: <BuildingSurface:Detailed> #> └─ Object [ID:25] <Zn001:Flr001> #> #> Class: <BuildingSurface:Detailed> #> └─ Object [ID:26] <Zn001:Roof001> #> #> Class: <Output:Variable> #> └─ Object [ID:27] #> #> Class: <Output:Variable> #> └─ Object [ID:28] #> #> Class: <Output:Variable> #> └─ Object [ID:29] #> #> Class: <Output:Variable> #> └─ Object [ID:30] #> #> Class: <Output:Variable> #> └─ Object [ID:31] #> #> Class: <Output:Variable> #> └─ Object [ID:32] #> #> Class: <Output:Variable> #> └─ Object [ID:33] #> #> Class: <Output:Variable> #> └─ Object [ID:34] #> #> Class: <Output:Variable> #> └─ Object [ID:35] #> #> Class: <Output:Variable> #> └─ Object [ID:36] #> #> Class: <Output:Variable> #> └─ Object [ID:37] #> #> Class: <Output:Variable> #> └─ Object [ID:38] #> #> Class: <Output:Variable> #> └─ Object [ID:39] #> #> Class: <Output:Variable> #> └─ Object [ID:40] #> #> Class: <Output:VariableDictionary> #> └─ Object [ID:41] #> #> Class: <Output:Surfaces:Drawing> #> └─ Object [ID:42] #> #> Class: <Output:Constructions> #> └─ Object [ID:43] #> #> Class: <Output:Meter:MeterFileOnly> #> └─ Object [ID:44] #> #> Class: <Output:Meter:MeterFileOnly> #> └─ Object [ID:45] #> #> Class: <Output:Meter:MeterFileOnly> #> └─ Object [ID:46] #> #> Class: <OutputControl:Table:Style> #> └─ Object [ID:47] #> #> Class: <Output:Table:SummaryReports> #> └─ Object [ID:48] #> #> Class: <Exterior:Lights> #> └─ Object [ID:49] <ExtLights> #> #> Class: <ScheduleTypeLimits> #> └─ Object [ID:50] <On/Off> #> #> Class: <OtherEquipment> #> └─ Object [ID:51] <Test 352a> #> #> Class: <OtherEquipment> #> └─ Object [ID:52] <Test 352 minus> #> #> Class: <Schedule:Constant> #> └─ Object [ID:53] <AlwaysOn>
idf$print("field")
#> ── EnergPlus Input Data File ─────────────────────────────────────────────────── #> * Path: '/tmp/RtmpeLRCuX/test_run.idf' #> * Version: '8.8.0' #> #> Class: <Version> #> └─ Object [ID:1] #> └─ 1: "8.8"; !- Version Identifier #> #> Class: <Timestep> #> └─ Object [ID:2] #> └─ 1: 4; !- Number of Timesteps per Hour #> #> Class: <Building> #> └─ Object [ID:3] <Simple One Zone (Wireframe DXF)> #> ├─ 1: "Simple One Zone (Wireframe DXF)", !- Name #> │─ 2: 0, !- North Axis {deg} #> │─ 3: "Suburbs", !- Terrain #> │─ 4: 0.04, !- Loads Convergence Tolerance Value #> │─ 5: 0.004, !- Temperature Convergence Tolerance Value {deltaC} #> │─ 6: "MinimalShadowing", !- Solar Distribution #> │─ 7: 30, !- Maximum Number of Warmup Days #> └─ 8: 6; !- Minimum Number of Warmup Days #> #> Class: <HeatBalanceAlgorithm> #> └─ Object [ID:4] #> └─ 1: "ConductionTransferFunction"; !- Algorithm #> #> Class: <SurfaceConvectionAlgorithm:Inside> #> └─ Object [ID:5] #> └─ 1: "TARP"; !- Algorithm #> #> Class: <SurfaceConvectionAlgorithm:Outside> #> └─ Object [ID:6] #> └─ 1: "DOE-2"; !- Algorithm #> #> Class: <SimulationControl> #> └─ Object [ID:7] #> ├─ 1: "No", !- Do Zone Sizing Calculation #> │─ 2: "No", !- Do System Sizing Calculation #> │─ 3: "No", !- Do Plant Sizing Calculation #> │─ 4: "Yes", !- Run Simulation for Sizing Periods #> └─ 5: "Yes"; !- Run Simulation for Weather File Run Periods #> #> Class: <RunPeriod> #> └─ Object [ID:8] #> ├─ 01: <"Blank">, !- Name #> │─ 02: 1, !- Begin Month #> │─ 03: 1, !- Begin Day of Month #> │─ 04: 12, !- End Month #> │─ 05: 31, !- End Day of Month #> │─ 06: "Tuesday", !- Day of Week for Start Day #> │─ 07: "Yes", !- Use Weather File Holidays and Special Days #> │─ 08: "Yes", !- Use Weather File Daylight Saving Period #> │─ 09: "No", !- Apply Weekend Holiday Rule #> │─ 10: "Yes", !- Use Weather File Rain Indicators #> └─ 11: "Yes"; !- Use Weather File Snow Indicators #> #> Class: <Site:Location> #> └─ Object [ID:9] <Denver Centennial Golden N_CO_USA Design_Conditions> #> ├─ 1: "Denver Centennial Golden N_CO_USA Design_Conditions", !- Name #> │─ 2: 39.74, !- Latitude {deg} #> │─ 3: -105.18, !- Longitude {deg} #> │─ 4: -7, !- Time Zone {hr} #> └─ 5: 1829; !- Elevation {m} #> #> Class: <SizingPeriod:DesignDay> #> └─ Object [ID:10] <Denver Centennial Golden N Ann Htg 99% Condns DB> #> ├─ 01: "Denver Centennial Golden N Ann Htg 99% Condns DB", !- Name #> │─ 02: 12, !- Month #> │─ 03: 21, !- Day of Month #> │─ 04: "WinterDesignDay", !- Day Type #> │─ 05: -15.5, !- Maximum Dry-Bulb Temperature {C} #> │─ 06: 0, !- Daily Dry-Bulb Temperature Range {deltaC} #> │─ 07: <"Blank">, !- Dry-Bulb Temperature Range Modifier Type #> │─ 08: <"Blank">, !- Dry-Bulb Temperature Range Modifier Day Schedul... #> │─ 09: "Wetbulb", !- Humidity Condition Type #> │─ 10: -15.5, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C} #> │─ 11: <"Blank">, !- Humidity Condition Day Schedule Name #> │─ 12: <Blank>, !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgD... #> │─ 13: <Blank>, !- Enthalpy at Maximum Dry-Bulb {J/kg} #> │─ 14: <Blank>, !- Daily Wet-Bulb Temperature Range {deltaC} #> │─ 15: 81198, !- Barometric Pressure {Pa} #> │─ 16: 3, !- Wind Speed {m/s} #> │─ 17: 340, !- Wind Direction {deg} #> │─ 18: "No", !- Rain Indicator #> │─ 19: "No", !- Snow Indicator #> │─ 20: "No", !- Daylight Saving Time Indicator #> │─ 21: "ASHRAEClearSky", !- Solar Model Indicator #> │─ 22: <"Blank">, !- Beam Solar Day Schedule Name #> │─ 23: <"Blank">, !- Diffuse Solar Day Schedule Name #> │─ 24: <Blank>, !- ASHRAE Clear Sky Optical Depth for Beam Irradia... #> │─ 25: <Blank>, !- ASHRAE Clear Sky Optical Depth for Diffuse Irra... #> └─ 26: 0; !- Sky Clearness #> #> Class: <SizingPeriod:DesignDay> #> └─ Object [ID:11] <Denver Centennial Golden N Ann Clg 1% Condns DB=>MWB> #> ├─ 01: "Denver Centennial Golden N Ann Clg 1% Condns DB=>MWB", !- Na... #> │─ 02: 7, !- Month #> │─ 03: 21, !- Day of Month #> │─ 04: "SummerDesignDay", !- Day Type #> │─ 05: 32, !- Maximum Dry-Bulb Temperature {C} #> │─ 06: 15.2, !- Daily Dry-Bulb Temperature Range {deltaC} #> │─ 07: <"Blank">, !- Dry-Bulb Temperature Range Modifier Type #> │─ 08: <"Blank">, !- Dry-Bulb Temperature Range Modifier Day Schedul... #> │─ 09: "Wetbulb", !- Humidity Condition Type #> │─ 10: 15.5, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C} #> │─ 11: <"Blank">, !- Humidity Condition Day Schedule Name #> │─ 12: <Blank>, !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgD... #> │─ 13: <Blank>, !- Enthalpy at Maximum Dry-Bulb {J/kg} #> │─ 14: <Blank>, !- Daily Wet-Bulb Temperature Range {deltaC} #> │─ 15: 81198, !- Barometric Pressure {Pa} #> │─ 16: 4.9, !- Wind Speed {m/s} #> │─ 17: 0, !- Wind Direction {deg} #> │─ 18: "No", !- Rain Indicator #> │─ 19: "No", !- Snow Indicator #> │─ 20: "No", !- Daylight Saving Time Indicator #> │─ 21: "ASHRAEClearSky", !- Solar Model Indicator #> │─ 22: <"Blank">, !- Beam Solar Day Schedule Name #> │─ 23: <"Blank">, !- Diffuse Solar Day Schedule Name #> │─ 24: <Blank>, !- ASHRAE Clear Sky Optical Depth for Beam Irradia... #> │─ 25: <Blank>, !- ASHRAE Clear Sky Optical Depth for Diffuse Irra... #> └─ 26: 1; !- Sky Clearness #> #> Class: <Material:NoMass> #> └─ Object [ID:12] <R13LAYER> #> ├─ 1: "R13LAYER", !- Name #> │─ 2: "Rough", !- Roughness #> │─ 3: 2.290965, !- Thermal Resistance {m2-K/W} #> │─ 4: 0.9, !- Thermal Absorptance #> │─ 5: 0.75, !- Solar Absorptance #> └─ 6: 0.75; !- Visible Absorptance #> #> Class: <Material:NoMass> #> └─ Object [ID:13] <R31LAYER> #> ├─ 1: "R31LAYER", !- Name #> │─ 2: "Rough", !- Roughness #> │─ 3: 5.456, !- Thermal Resistance {m2-K/W} #> │─ 4: 0.9, !- Thermal Absorptance #> │─ 5: 0.75, !- Solar Absorptance #> └─ 6: 0.75; !- Visible Absorptance #> #> Class: <Material> #> └─ Object [ID:14] <C5 - 4 IN HW CONCRETE> #> ├─ 1: "C5 - 4 IN HW CONCRETE", !- Name #> │─ 2: "MediumRough", !- Roughness #> │─ 3: 0.1014984, !- Thickness {m} #> │─ 4: 1.729577, !- Conductivity {W/m-K} #> │─ 5: 2242.585, !- Density {kg/m3} #> │─ 6: 836.8, !- Specific Heat {J/kg-K} #> │─ 7: 0.9, !- Thermal Absorptance #> │─ 8: 0.65, !- Solar Absorptance #> └─ 9: 0.65; !- Visible Absorptance #> #> Class: <Construction> #> └─ Object [ID:15] <R13WALL> #> ├─ 1: "R13WALL", !- Name #> └─ 2: "R13LAYER"; !- Outside Layer #> #> Class: <Construction> #> └─ Object [ID:16] <FLOOR> #> ├─ 1: "FLOOR", !- Name #> └─ 2: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> #> Class: <Construction> #> └─ Object [ID:17] <ROOF31> #> ├─ 1: "ROOF31", !- Name #> └─ 2: "R31LAYER"; !- Outside Layer #> #> Class: <Zone> #> └─ Object [ID:18] <ZONE ONE> #> ├─ 1: "ZONE ONE", !- Name #> │─ 2: 0, !- Direction of Relative North {deg} #> │─ 3: 0, !- X Origin {m} #> │─ 4: 0, !- Y Origin {m} #> │─ 5: 0, !- Z Origin {m} #> │─ 6: 1, !- Type #> │─ 7: 1, !- Multiplier #> │─ 8: autocalculate, !- Ceiling Height {m} #> └─ 9: autocalculate; !- Volume {m3} #> #> Class: <ScheduleTypeLimits> #> └─ Object [ID:19] <Fraction> #> ├─ 1: "Fraction", !- Name #> │─ 2: 0, !- Lower Limit Value #> │─ 3: 1, !- Upper Limit Value #> └─ 4: "CONTINUOUS"; !- Numeric Type #> #> Class: <GlobalGeometryRules> #> └─ Object [ID:20] #> ├─ 1: "UpperLeftCorner", !- Starting Vertex Position #> │─ 2: "CounterClockWise", !- Vertex Entry Direction #> └─ 3: "World"; !- Coordinate System #> #> Class: <BuildingSurface:Detailed> #> └─ Object [ID:21] <Zn001:Wall001> #> ├─ 01: "Zn001:Wall001", !- Name #> │─ 02: "Wall", !- Surface Type #> │─ 03: "R13WALL", !- Construction Name #> │─ 04: "ZONE ONE", !- Zone Name #> │─ 05: "Outdoors", !- Outside Boundary Condition #> │─ 06: <"Blank">, !- Outside Boundary Condition Object #> │─ 07: "SunExposed", !- Sun Exposure #> │─ 08: "WindExposed", !- Wind Exposure #> │─ 09: 0.5, !- View Factor to Ground #> │─ 10: 4, !- Number of Vertices #> │─ 11: 0, !- Vertex 1 X-coordinate {m} #> │─ 12: 0, !- Vertex 1 Y-coordinate {m} #> │─ 13: 4.572, !- Vertex 1 Z-coordinate {m} #> │─ 14: 0, !- Vertex 2 X-coordinate {m} #> │─ 15: 0, !- Vertex 2 Y-coordinate {m} #> │─ 16: 0, !- Vertex 2 Z-coordinate {m} #> │─ 17: 15.24, !- Vertex 3 X-coordinate {m} #> │─ 18: 0, !- Vertex 3 Y-coordinate {m} #> │─ 19: 0, !- Vertex 3 Z-coordinate {m} #> │─ 20: 15.24, !- Vertex 4 X-coordinate {m} #> │─ 21: 0, !- Vertex 4 Y-coordinate {m} #> └─ 22: 4.572; !- Vertex 4 Z-coordinate {m} #> #> Class: <BuildingSurface:Detailed> #> └─ Object [ID:22] <Zn001:Wall002> #> ├─ 01: "Zn001:Wall002", !- Name #> │─ 02: "Wall", !- Surface Type #> │─ 03: "R13WALL", !- Construction Name #> │─ 04: "ZONE ONE", !- Zone Name #> │─ 05: "Outdoors", !- Outside Boundary Condition #> │─ 06: <"Blank">, !- Outside Boundary Condition Object #> │─ 07: "SunExposed", !- Sun Exposure #> │─ 08: "WindExposed", !- Wind Exposure #> │─ 09: 0.5, !- View Factor to Ground #> │─ 10: 4, !- Number of Vertices #> │─ 11: 15.24, !- Vertex 1 X-coordinate {m} #> │─ 12: 0, !- Vertex 1 Y-coordinate {m} #> │─ 13: 4.572, !- Vertex 1 Z-coordinate {m} #> │─ 14: 15.24, !- Vertex 2 X-coordinate {m} #> │─ 15: 0, !- Vertex 2 Y-coordinate {m} #> │─ 16: 0, !- Vertex 2 Z-coordinate {m} #> │─ 17: 15.24, !- Vertex 3 X-coordinate {m} #> │─ 18: 15.24, !- Vertex 3 Y-coordinate {m} #> │─ 19: 0, !- Vertex 3 Z-coordinate {m} #> │─ 20: 15.24, !- Vertex 4 X-coordinate {m} #> │─ 21: 15.24, !- Vertex 4 Y-coordinate {m} #> └─ 22: 4.572; !- Vertex 4 Z-coordinate {m} #> #> Class: <BuildingSurface:Detailed> #> └─ Object [ID:23] <Zn001:Wall003> #> ├─ 01: "Zn001:Wall003", !- Name #> │─ 02: "Wall", !- Surface Type #> │─ 03: "R13WALL", !- Construction Name #> │─ 04: "ZONE ONE", !- Zone Name #> │─ 05: "Outdoors", !- Outside Boundary Condition #> │─ 06: <"Blank">, !- Outside Boundary Condition Object #> │─ 07: "SunExposed", !- Sun Exposure #> │─ 08: "WindExposed", !- Wind Exposure #> │─ 09: 0.5, !- View Factor to Ground #> │─ 10: 4, !- Number of Vertices #> │─ 11: 15.24, !- Vertex 1 X-coordinate {m} #> │─ 12: 15.24, !- Vertex 1 Y-coordinate {m} #> │─ 13: 4.572, !- Vertex 1 Z-coordinate {m} #> │─ 14: 15.24, !- Vertex 2 X-coordinate {m} #> │─ 15: 15.24, !- Vertex 2 Y-coordinate {m} #> │─ 16: 0, !- Vertex 2 Z-coordinate {m} #> │─ 17: 0, !- Vertex 3 X-coordinate {m} #> │─ 18: 15.24, !- Vertex 3 Y-coordinate {m} #> │─ 19: 0, !- Vertex 3 Z-coordinate {m} #> │─ 20: 0, !- Vertex 4 X-coordinate {m} #> │─ 21: 15.24, !- Vertex 4 Y-coordinate {m} #> └─ 22: 4.572; !- Vertex 4 Z-coordinate {m} #> #> Class: <BuildingSurface:Detailed> #> └─ Object [ID:24] <Zn001:Wall004> #> ├─ 01: "Zn001:Wall004", !- Name #> │─ 02: "Wall", !- Surface Type #> │─ 03: "R13WALL", !- Construction Name #> │─ 04: "ZONE ONE", !- Zone Name #> │─ 05: "Outdoors", !- Outside Boundary Condition #> │─ 06: <"Blank">, !- Outside Boundary Condition Object #> │─ 07: "SunExposed", !- Sun Exposure #> │─ 08: "WindExposed", !- Wind Exposure #> │─ 09: 0.5, !- View Factor to Ground #> │─ 10: 4, !- Number of Vertices #> │─ 11: 0, !- Vertex 1 X-coordinate {m} #> │─ 12: 15.24, !- Vertex 1 Y-coordinate {m} #> │─ 13: 4.572, !- Vertex 1 Z-coordinate {m} #> │─ 14: 0, !- Vertex 2 X-coordinate {m} #> │─ 15: 15.24, !- Vertex 2 Y-coordinate {m} #> │─ 16: 0, !- Vertex 2 Z-coordinate {m} #> │─ 17: 0, !- Vertex 3 X-coordinate {m} #> │─ 18: 0, !- Vertex 3 Y-coordinate {m} #> │─ 19: 0, !- Vertex 3 Z-coordinate {m} #> │─ 20: 0, !- Vertex 4 X-coordinate {m} #> │─ 21: 0, !- Vertex 4 Y-coordinate {m} #> └─ 22: 4.572; !- Vertex 4 Z-coordinate {m} #> #> Class: <BuildingSurface:Detailed> #> └─ Object [ID:25] <Zn001:Flr001> #> ├─ 01: "Zn001:Flr001",!- Name #> │─ 02: "Floor", !- Surface Type #> │─ 03: "FLOOR", !- Construction Name #> │─ 04: "ZONE ONE", !- Zone Name #> │─ 05: "Adiabatic", !- Outside Boundary Condition #> │─ 06: <"Blank">, !- Outside Boundary Condition Object #> │─ 07: "NoSun", !- Sun Exposure #> │─ 08: "NoWind", !- Wind Exposure #> │─ 09: 1, !- View Factor to Ground #> │─ 10: 4, !- Number of Vertices #> │─ 11: 15.24, !- Vertex 1 X-coordinate {m} #> │─ 12: 0, !- Vertex 1 Y-coordinate {m} #> │─ 13: 0, !- Vertex 1 Z-coordinate {m} #> │─ 14: 0, !- Vertex 2 X-coordinate {m} #> │─ 15: 0, !- Vertex 2 Y-coordinate {m} #> │─ 16: 0, !- Vertex 2 Z-coordinate {m} #> │─ 17: 0, !- Vertex 3 X-coordinate {m} #> │─ 18: 15.24, !- Vertex 3 Y-coordinate {m} #> │─ 19: 0, !- Vertex 3 Z-coordinate {m} #> │─ 20: 15.24, !- Vertex 4 X-coordinate {m} #> │─ 21: 15.24, !- Vertex 4 Y-coordinate {m} #> └─ 22: 0; !- Vertex 4 Z-coordinate {m} #> #> Class: <BuildingSurface:Detailed> #> └─ Object [ID:26] <Zn001:Roof001> #> ├─ 01: "Zn001:Roof001", !- Name #> │─ 02: "Roof", !- Surface Type #> │─ 03: "ROOF31", !- Construction Name #> │─ 04: "ZONE ONE", !- Zone Name #> │─ 05: "Outdoors", !- Outside Boundary Condition #> │─ 06: <"Blank">, !- Outside Boundary Condition Object #> │─ 07: "SunExposed", !- Sun Exposure #> │─ 08: "WindExposed", !- Wind Exposure #> │─ 09: 0, !- View Factor to Ground #> │─ 10: 4, !- Number of Vertices #> │─ 11: 0, !- Vertex 1 X-coordinate {m} #> │─ 12: 15.24, !- Vertex 1 Y-coordinate {m} #> │─ 13: 4.572, !- Vertex 1 Z-coordinate {m} #> │─ 14: 0, !- Vertex 2 X-coordinate {m} #> │─ 15: 0, !- Vertex 2 Y-coordinate {m} #> │─ 16: 4.572, !- Vertex 2 Z-coordinate {m} #> │─ 17: 15.24, !- Vertex 3 X-coordinate {m} #> │─ 18: 0, !- Vertex 3 Y-coordinate {m} #> │─ 19: 4.572, !- Vertex 3 Z-coordinate {m} #> │─ 20: 15.24, !- Vertex 4 X-coordinate {m} #> │─ 21: 15.24, !- Vertex 4 Y-coordinate {m} #> └─ 22: 4.572; !- Vertex 4 Z-coordinate {m} #> #> Class: <Output:Variable> #> └─ Object [ID:27] #> ├─ 1: "*", !- Key Value #> │─ 2: "Site Outdoor Air Drybulb Temperature", !- Variable Name #> └─ 3: "hourly"; !- Reporting Frequency #> #> Class: <Output:Variable> #> └─ Object [ID:28] #> ├─ 1: "*", !- Key Value #> │─ 2: "Site Daylight Saving Time Status", !- Variable Name #> └─ 3: "daily"; !- Reporting Frequency #> #> Class: <Output:Variable> #> └─ Object [ID:29] #> ├─ 1: "*", !- Key Value #> │─ 2: "Site Day Type Index", !- Variable Name #> └─ 3: "daily"; !- Reporting Frequency #> #> Class: <Output:Variable> #> └─ Object [ID:30] #> ├─ 1: "*", !- Key Value #> │─ 2: "Zone Mean Air Temperature", !- Variable Name #> └─ 3: "hourly"; !- Reporting Frequency #> #> Class: <Output:Variable> #> └─ Object [ID:31] #> ├─ 1: "*", !- Key Value #> │─ 2: "Zone Total Internal Latent Gain Energy", !- Variable Name #> └─ 3: "hourly"; !- Reporting Frequency #> #> Class: <Output:Variable> #> └─ Object [ID:32] #> ├─ 1: "*", !- Key Value #> │─ 2: "Zone Mean Radiant Temperature", !- Variable Name #> └─ 3: "hourly"; !- Reporting Frequency #> #> Class: <Output:Variable> #> └─ Object [ID:33] #> ├─ 1: "*", !- Key Value #> │─ 2: "Zone Air Heat Balance Surface Convection Rate", !- Variable Name #> └─ 3: "hourly"; !- Reporting Frequency #> #> Class: <Output:Variable> #> └─ Object [ID:34] #> ├─ 1: "*", !- Key Value #> │─ 2: "Zone Air Heat Balance Air Energy Storage Rate", !- Variable Name #> └─ 3: "hourly"; !- Reporting Frequency #> #> Class: <Output:Variable> #> └─ Object [ID:35] #> ├─ 1: "*", !- Key Value #> │─ 2: "Surface Inside Face Temperature", !- Variable Name #> └─ 3: "daily"; !- Reporting Frequency #> #> Class: <Output:Variable> #> └─ Object [ID:36] #> ├─ 1: "*", !- Key Value #> │─ 2: "Surface Outside Face Temperature", !- Variable Name #> └─ 3: "daily"; !- Reporting Frequency #> #> Class: <Output:Variable> #> └─ Object [ID:37] #> ├─ 1: "*", !- Key Value #> │─ 2: "Surface Inside Face Convection Heat Transfer Coefficient", !- Va... #> └─ 3: "daily"; !- Reporting Frequency #> #> Class: <Output:Variable> #> └─ Object [ID:38] #> ├─ 1: "*", !- Key Value #> │─ 2: "Surface Outside Face Convection Heat Transfer Coefficient", !- V... #> └─ 3: "daily"; !- Reporting Frequency #> #> Class: <Output:Variable> #> └─ Object [ID:39] #> ├─ 1: "*", !- Key Value #> │─ 2: "Other Equipment Total Heating Energy", !- Variable Name #> └─ 3: "monthly"; !- Reporting Frequency #> #> Class: <Output:Variable> #> └─ Object [ID:40] #> ├─ 1: "*", !- Key Value #> │─ 2: "Zone Other Equipment Total Heating Energy", !- Variable Name #> └─ 3: "monthly"; !- Reporting Frequency #> #> Class: <Output:VariableDictionary> #> └─ Object [ID:41] #> └─ 1: "IDF"; !- Key Field #> #> Class: <Output:Surfaces:Drawing> #> └─ Object [ID:42] #> └─ 1: "dxf:wireframe"; !- Report Type #> #> Class: <Output:Constructions> #> └─ Object [ID:43] #> └─ 1: "Constructions"; !- Details Type 1 #> #> Class: <Output:Meter:MeterFileOnly> #> └─ Object [ID:44] #> ├─ 1: "ExteriorLights:Electricity", !- Key Name #> └─ 2: "hourly"; !- Reporting Frequency #> #> Class: <Output:Meter:MeterFileOnly> #> └─ Object [ID:45] #> ├─ 1: "EnergyTransfer:Building", !- Key Name #> └─ 2: "hourly"; !- Reporting Frequency #> #> Class: <Output:Meter:MeterFileOnly> #> └─ Object [ID:46] #> ├─ 1: "EnergyTransfer:Facility", !- Key Name #> └─ 2: "hourly"; !- Reporting Frequency #> #> Class: <OutputControl:Table:Style> #> └─ Object [ID:47] #> └─ 1: "ALL"; !- Column Separator #> #> Class: <Output:Table:SummaryReports> #> └─ Object [ID:48] #> └─ 1: "AllSummary"; !- Report 1 Name #> #> Class: <Exterior:Lights> #> └─ Object [ID:49] <ExtLights> #> ├─ 1: "ExtLights", !- Name #> │─ 2: "AlwaysOn", !- Schedule Name #> │─ 3: 5250, !- Design Level {W} #> │─ 4: "AstronomicalClock", !- Control Option #> └─ 5: "Grounds Lights"; !- End-Use Subcategory #> #> Class: <ScheduleTypeLimits> #> └─ Object [ID:50] <On/Off> #> ├─ 1: "On/Off", !- Name #> │─ 2: 0, !- Lower Limit Value #> │─ 3: 1, !- Upper Limit Value #> └─ 4: "DISCRETE"; !- Numeric Type #> #> Class: <OtherEquipment> #> └─ Object [ID:51] <Test 352a> #> ├─ 01: "Test 352a", !- Name #> │─ 02: "None", !- Fuel Type #> │─ 03: "ZONE ONE", !- Zone or ZoneList Name #> │─ 04: "AlwaysOn", !- Schedule Name #> │─ 05: "EquipmentLevel", !- Design Level Calculation Method #> │─ 06: 352, !- Design Level {W} #> │─ 07: <Blank>, !- Power per Zone Floor Area {W/m2} #> │─ 08: <Blank>, !- Power per Person {W/person} #> │─ 09: 0, !- Fraction Latent #> │─ 10: 0, !- Fraction Radiant #> └─ 11: 0; !- Fraction Lost #> #> Class: <OtherEquipment> #> └─ Object [ID:52] <Test 352 minus> #> ├─ 01: "Test 352 minus", !- Name #> │─ 02: "None", !- Fuel Type #> │─ 03: "ZONE ONE", !- Zone or ZoneList Name #> │─ 04: "AlwaysOn", !- Schedule Name #> │─ 05: "EquipmentLevel", !- Design Level Calculation Method #> │─ 06: -352, !- Design Level {W} #> │─ 07: <Blank>, !- Power per Zone Floor Area {W/m2} #> │─ 08: <Blank>, !- Power per Person {W/person} #> │─ 09: 0, !- Fraction Latent #> │─ 10: 0, !- Fraction Radiant #> └─ 11: 0; !- Fraction Lost #> #> Class: <Schedule:Constant> #> └─ Object [ID:53] <AlwaysOn> #> ├─ 1: "AlwaysOn", !- Name #> │─ 2: "On/Off", !- Schedule Type Limits Name #> └─ 3: 1; !- Hourly Value
# order objects by there classes idf$print("object", order = FALSE)
#> ── EnergPlus Input Data File ─────────────────────────────────────────────────── #> * Path: '/tmp/RtmpeLRCuX/test_run.idf' #> * Version: '8.8.0' #> #> Class: <Version> #> └─ Object [ID:1] #> #> Class: <SimulationControl> #> └─ Object [ID:7] #> #> Class: <Building> #> └─ Object [ID:3] <Simple One Zone (Wireframe DXF)> #> #> Class: <SurfaceConvectionAlgorithm:Inside> #> └─ Object [ID:5] #> #> Class: <SurfaceConvectionAlgorithm:Outside> #> └─ Object [ID:6] #> #> Class: <HeatBalanceAlgorithm> #> └─ Object [ID:4] #> #> Class: <Timestep> #> └─ Object [ID:2] #> #> Class: <Site:Location> #> └─ Object [ID:9] <Denver Centennial Golden N_CO_USA Design_Conditions> #> #> Class: <SizingPeriod:DesignDay> #> ├─ Object [ID:10] <Denver Centennial Golden N Ann Htg 99% Condns DB> #> └─ Object [ID:11] <Denver Centennial Golden N Ann Clg 1% Condns DB=>MWB> #> #> Class: <RunPeriod> #> └─ Object [ID:8] #> #> Class: <ScheduleTypeLimits> #> ├─ Object [ID:19] <Fraction> #> └─ Object [ID:50] <On/Off> #> #> Class: <Schedule:Constant> #> └─ Object [ID:53] <AlwaysOn> #> #> Class: <Material> #> └─ Object [ID:14] <C5 - 4 IN HW CONCRETE> #> #> Class: <Material:NoMass> #> ├─ Object [ID:12] <R13LAYER> #> └─ Object [ID:13] <R31LAYER> #> #> Class: <Construction> #> ├─ Object [ID:15] <R13WALL> #> │─ Object [ID:16] <FLOOR> #> └─ Object [ID:17] <ROOF31> #> #> Class: <GlobalGeometryRules> #> └─ Object [ID:20] #> #> Class: <Zone> #> └─ Object [ID:18] <ZONE ONE> #> #> Class: <BuildingSurface:Detailed> #> ├─ Object [ID:21] <Zn001:Wall001> #> │─ Object [ID:22] <Zn001:Wall002> #> │─ Object [ID:23] <Zn001:Wall003> #> │─ Object [ID:24] <Zn001:Wall004> #> │─ Object [ID:25] <Zn001:Flr001> #> └─ Object [ID:26] <Zn001:Roof001> #> #> Class: <OtherEquipment> #> ├─ Object [ID:51] <Test 352a> #> └─ Object [ID:52] <Test 352 minus> #> #> Class: <Exterior:Lights> #> └─ Object [ID:49] <ExtLights> #> #> Class: <Output:VariableDictionary> #> └─ Object [ID:41] #> #> Class: <Output:Surfaces:Drawing> #> └─ Object [ID:42] #> #> Class: <Output:Constructions> #> └─ Object [ID:43] #> #> Class: <Output:Table:SummaryReports> #> └─ Object [ID:48] #> #> Class: <OutputControl:Table:Style> #> └─ Object [ID:47] #> #> Class: <Output:Variable> #> ├─ Object [ID:27] #> │─ Object [ID:28] #> │─ Object [ID:29] #> │─ Object [ID:30] #> │─ Object [ID:31] #> │─ Object [ID:32] #> │─ Object [ID:33] #> │─ Object [ID:34] #> │─ Object [ID:35] #> │─ Object [ID:36] #> │─ Object [ID:37] #> │─ Object [ID:38] #> │─ Object [ID:39] #> └─ Object [ID:40] #> #> Class: <Output:Meter:MeterFileOnly> #> ├─ Object [ID:44] #> │─ Object [ID:45] #> └─ Object [ID:46]
idf$print("field", order = FALSE)
#> ── EnergPlus Input Data File ─────────────────────────────────────────────────── #> * Path: '/tmp/RtmpeLRCuX/test_run.idf' #> * Version: '8.8.0' #> #> Class: <Version> #> └─ Object [ID:1] #> └─ 1: "8.8"; !- Version Identifier #> #> Class: <SimulationControl> #> └─ Object [ID:7] #> ├─ 1: "No", !- Do Zone Sizing Calculation #> │─ 2: "No", !- Do System Sizing Calculation #> │─ 3: "No", !- Do Plant Sizing Calculation #> │─ 4: "Yes", !- Run Simulation for Sizing Periods #> └─ 5: "Yes"; !- Run Simulation for Weather File Run Periods #> #> Class: <Building> #> └─ Object [ID:3] <Simple One Zone (Wireframe DXF)> #> ├─ 1: "Simple One Zone (Wireframe DXF)", !- Name #> │─ 2: 0, !- North Axis {deg} #> │─ 3: "Suburbs", !- Terrain #> │─ 4: 0.04, !- Loads Convergence Tolerance Value #> │─ 5: 0.004, !- Temperature Convergence Tolerance Value {deltaC} #> │─ 6: "MinimalShadowing", !- Solar Distribution #> │─ 7: 30, !- Maximum Number of Warmup Days #> └─ 8: 6; !- Minimum Number of Warmup Days #> #> Class: <SurfaceConvectionAlgorithm:Inside> #> └─ Object [ID:5] #> └─ 1: "TARP"; !- Algorithm #> #> Class: <SurfaceConvectionAlgorithm:Outside> #> └─ Object [ID:6] #> └─ 1: "DOE-2"; !- Algorithm #> #> Class: <HeatBalanceAlgorithm> #> └─ Object [ID:4] #> └─ 1: "ConductionTransferFunction"; !- Algorithm #> #> Class: <Timestep> #> └─ Object [ID:2] #> └─ 1: 4; !- Number of Timesteps per Hour #> #> Class: <Site:Location> #> └─ Object [ID:9] <Denver Centennial Golden N_CO_USA Design_Conditions> #> ├─ 1: "Denver Centennial Golden N_CO_USA Design_Conditions", !- Name #> │─ 2: 39.74, !- Latitude {deg} #> │─ 3: -105.18, !- Longitude {deg} #> │─ 4: -7, !- Time Zone {hr} #> └─ 5: 1829; !- Elevation {m} #> #> Class: <SizingPeriod:DesignDay> #> ├─ Object [ID:10] <Denver Centennial Golden N Ann Htg 99% Condns DB> #> │ ├─ 01: "Denver Centennial Golden N Ann Htg 99% Condns DB", !- Name #> │ │─ 02: 12, !- Month #> │ │─ 03: 21, !- Day of Month #> │ │─ 04: "WinterDesignDay", !- Day Type #> │ │─ 05: -15.5, !- Maximum Dry-Bulb Temperature {C} #> │ │─ 06: 0, !- Daily Dry-Bulb Temperature Range {deltaC} #> │ │─ 07: <"Blank">, !- Dry-Bulb Temperature Range Modifier Type #> │ │─ 08: <"Blank">, !- Dry-Bulb Temperature Range Modifier Day Schedul... #> │ │─ 09: "Wetbulb", !- Humidity Condition Type #> │ │─ 10: -15.5, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C} #> │ │─ 11: <"Blank">, !- Humidity Condition Day Schedule Name #> │ │─ 12: <Blank>, !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgD... #> │ │─ 13: <Blank>, !- Enthalpy at Maximum Dry-Bulb {J/kg} #> │ │─ 14: <Blank>, !- Daily Wet-Bulb Temperature Range {deltaC} #> │ │─ 15: 81198, !- Barometric Pressure {Pa} #> │ │─ 16: 3, !- Wind Speed {m/s} #> │ │─ 17: 340, !- Wind Direction {deg} #> │ │─ 18: "No", !- Rain Indicator #> │ │─ 19: "No", !- Snow Indicator #> │ │─ 20: "No", !- Daylight Saving Time Indicator #> │ │─ 21: "ASHRAEClearSky", !- Solar Model Indicator #> │ │─ 22: <"Blank">, !- Beam Solar Day Schedule Name #> │ │─ 23: <"Blank">, !- Diffuse Solar Day Schedule Name #> │ │─ 24: <Blank>, !- ASHRAE Clear Sky Optical Depth for Beam Irradia... #> │ │─ 25: <Blank>, !- ASHRAE Clear Sky Optical Depth for Diffuse Irra... #> │ └─ 26: 0; !- Sky Clearness #> │ #> └─ Object [ID:11] <Denver Centennial Golden N Ann Clg 1% Condns DB=>MWB> #> ├─ 01: "Denver Centennial Golden N Ann Clg 1% Condns DB=>MWB", !- Na... #> │─ 02: 7, !- Month #> │─ 03: 21, !- Day of Month #> │─ 04: "SummerDesignDay", !- Day Type #> │─ 05: 32, !- Maximum Dry-Bulb Temperature {C} #> │─ 06: 15.2, !- Daily Dry-Bulb Temperature Range {deltaC} #> │─ 07: <"Blank">, !- Dry-Bulb Temperature Range Modifier Type #> │─ 08: <"Blank">, !- Dry-Bulb Temperature Range Modifier Day Schedul... #> │─ 09: "Wetbulb", !- Humidity Condition Type #> │─ 10: 15.5, !- Wetbulb or DewPoint at Maximum Dry-Bulb {C} #> │─ 11: <"Blank">, !- Humidity Condition Day Schedule Name #> │─ 12: <Blank>, !- Humidity Ratio at Maximum Dry-Bulb {kgWater/kgD... #> │─ 13: <Blank>, !- Enthalpy at Maximum Dry-Bulb {J/kg} #> │─ 14: <Blank>, !- Daily Wet-Bulb Temperature Range {deltaC} #> │─ 15: 81198, !- Barometric Pressure {Pa} #> │─ 16: 4.9, !- Wind Speed {m/s} #> │─ 17: 0, !- Wind Direction {deg} #> │─ 18: "No", !- Rain Indicator #> │─ 19: "No", !- Snow Indicator #> │─ 20: "No", !- Daylight Saving Time Indicator #> │─ 21: "ASHRAEClearSky", !- Solar Model Indicator #> │─ 22: <"Blank">, !- Beam Solar Day Schedule Name #> │─ 23: <"Blank">, !- Diffuse Solar Day Schedule Name #> │─ 24: <Blank>, !- ASHRAE Clear Sky Optical Depth for Beam Irradia... #> │─ 25: <Blank>, !- ASHRAE Clear Sky Optical Depth for Diffuse Irra... #> └─ 26: 1; !- Sky Clearness #> #> Class: <RunPeriod> #> └─ Object [ID:8] #> ├─ 01: <"Blank">, !- Name #> │─ 02: 1, !- Begin Month #> │─ 03: 1, !- Begin Day of Month #> │─ 04: 12, !- End Month #> │─ 05: 31, !- End Day of Month #> │─ 06: "Tuesday", !- Day of Week for Start Day #> │─ 07: "Yes", !- Use Weather File Holidays and Special Days #> │─ 08: "Yes", !- Use Weather File Daylight Saving Period #> │─ 09: "No", !- Apply Weekend Holiday Rule #> │─ 10: "Yes", !- Use Weather File Rain Indicators #> └─ 11: "Yes"; !- Use Weather File Snow Indicators #> #> Class: <ScheduleTypeLimits> #> ├─ Object [ID:19] <Fraction> #> │ ├─ 1: "Fraction", !- Name #> │ │─ 2: 0, !- Lower Limit Value #> │ │─ 3: 1, !- Upper Limit Value #> │ └─ 4: "CONTINUOUS"; !- Numeric Type #> │ #> └─ Object [ID:50] <On/Off> #> ├─ 1: "On/Off", !- Name #> │─ 2: 0, !- Lower Limit Value #> │─ 3: 1, !- Upper Limit Value #> └─ 4: "DISCRETE"; !- Numeric Type #> #> Class: <Schedule:Constant> #> └─ Object [ID:53] <AlwaysOn> #> ├─ 1: "AlwaysOn", !- Name #> │─ 2: "On/Off", !- Schedule Type Limits Name #> └─ 3: 1; !- Hourly Value #> #> Class: <Material> #> └─ Object [ID:14] <C5 - 4 IN HW CONCRETE> #> ├─ 1: "C5 - 4 IN HW CONCRETE", !- Name #> │─ 2: "MediumRough", !- Roughness #> │─ 3: 0.1014984, !- Thickness {m} #> │─ 4: 1.729577, !- Conductivity {W/m-K} #> │─ 5: 2242.585, !- Density {kg/m3} #> │─ 6: 836.8, !- Specific Heat {J/kg-K} #> │─ 7: 0.9, !- Thermal Absorptance #> │─ 8: 0.65, !- Solar Absorptance #> └─ 9: 0.65; !- Visible Absorptance #> #> Class: <Material:NoMass> #> ├─ Object [ID:12] <R13LAYER> #> │ ├─ 1: "R13LAYER", !- Name #> │ │─ 2: "Rough", !- Roughness #> │ │─ 3: 2.290965, !- Thermal Resistance {m2-K/W} #> │ │─ 4: 0.9, !- Thermal Absorptance #> │ │─ 5: 0.75, !- Solar Absorptance #> │ └─ 6: 0.75; !- Visible Absorptance #> │ #> └─ Object [ID:13] <R31LAYER> #> ├─ 1: "R31LAYER", !- Name #> │─ 2: "Rough", !- Roughness #> │─ 3: 5.456, !- Thermal Resistance {m2-K/W} #> │─ 4: 0.9, !- Thermal Absorptance #> │─ 5: 0.75, !- Solar Absorptance #> └─ 6: 0.75; !- Visible Absorptance #> #> Class: <Construction> #> ├─ Object [ID:15] <R13WALL> #> │ ├─ 1: "R13WALL", !- Name #> │ └─ 2: "R13LAYER"; !- Outside Layer #> │ #> │─ Object [ID:16] <FLOOR> #> │ ├─ 1: "FLOOR", !- Name #> │ └─ 2: "C5 - 4 IN HW CONCRETE"; !- Outside Layer #> │ #> └─ Object [ID:17] <ROOF31> #> ├─ 1: "ROOF31", !- Name #> └─ 2: "R31LAYER"; !- Outside Layer #> #> Class: <GlobalGeometryRules> #> └─ Object [ID:20] #> ├─ 1: "UpperLeftCorner", !- Starting Vertex Position #> │─ 2: "CounterClockWise", !- Vertex Entry Direction #> └─ 3: "World"; !- Coordinate System #> #> Class: <Zone> #> └─ Object [ID:18] <ZONE ONE> #> ├─ 1: "ZONE ONE", !- Name #> │─ 2: 0, !- Direction of Relative North {deg} #> │─ 3: 0, !- X Origin {m} #> │─ 4: 0, !- Y Origin {m} #> │─ 5: 0, !- Z Origin {m} #> │─ 6: 1, !- Type #> │─ 7: 1, !- Multiplier #> │─ 8: autocalculate, !- Ceiling Height {m} #> └─ 9: autocalculate; !- Volume {m3} #> #> Class: <BuildingSurface:Detailed> #> ├─ Object [ID:21] <Zn001:Wall001> #> │ ├─ 01: "Zn001:Wall001", !- Name #> │ │─ 02: "Wall", !- Surface Type #> │ │─ 03: "R13WALL", !- Construction Name #> │ │─ 04: "ZONE ONE", !- Zone Name #> │ │─ 05: "Outdoors", !- Outside Boundary Condition #> │ │─ 06: <"Blank">, !- Outside Boundary Condition Object #> │ │─ 07: "SunExposed", !- Sun Exposure #> │ │─ 08: "WindExposed", !- Wind Exposure #> │ │─ 09: 0.5, !- View Factor to Ground #> │ │─ 10: 4, !- Number of Vertices #> │ │─ 11: 0, !- Vertex 1 X-coordinate {m} #> │ │─ 12: 0, !- Vertex 1 Y-coordinate {m} #> │ │─ 13: 4.572, !- Vertex 1 Z-coordinate {m} #> │ │─ 14: 0, !- Vertex 2 X-coordinate {m} #> │ │─ 15: 0, !- Vertex 2 Y-coordinate {m} #> │ │─ 16: 0, !- Vertex 2 Z-coordinate {m} #> │ │─ 17: 15.24, !- Vertex 3 X-coordinate {m} #> │ │─ 18: 0, !- Vertex 3 Y-coordinate {m} #> │ │─ 19: 0, !- Vertex 3 Z-coordinate {m} #> │ │─ 20: 15.24, !- Vertex 4 X-coordinate {m} #> │ │─ 21: 0, !- Vertex 4 Y-coordinate {m} #> │ └─ 22: 4.572; !- Vertex 4 Z-coordinate {m} #> │ #> │─ Object [ID:22] <Zn001:Wall002> #> │ ├─ 01: "Zn001:Wall002", !- Name #> │ │─ 02: "Wall", !- Surface Type #> │ │─ 03: "R13WALL", !- Construction Name #> │ │─ 04: "ZONE ONE", !- Zone Name #> │ │─ 05: "Outdoors", !- Outside Boundary Condition #> │ │─ 06: <"Blank">, !- Outside Boundary Condition Object #> │ │─ 07: "SunExposed", !- Sun Exposure #> │ │─ 08: "WindExposed", !- Wind Exposure #> │ │─ 09: 0.5, !- View Factor to Ground #> │ │─ 10: 4, !- Number of Vertices #> │ │─ 11: 15.24, !- Vertex 1 X-coordinate {m} #> │ │─ 12: 0, !- Vertex 1 Y-coordinate {m} #> │ │─ 13: 4.572, !- Vertex 1 Z-coordinate {m} #> │ │─ 14: 15.24, !- Vertex 2 X-coordinate {m} #> │ │─ 15: 0, !- Vertex 2 Y-coordinate {m} #> │ │─ 16: 0, !- Vertex 2 Z-coordinate {m} #> │ │─ 17: 15.24, !- Vertex 3 X-coordinate {m} #> │ │─ 18: 15.24, !- Vertex 3 Y-coordinate {m} #> │ │─ 19: 0, !- Vertex 3 Z-coordinate {m} #> │ │─ 20: 15.24, !- Vertex 4 X-coordinate {m} #> │ │─ 21: 15.24, !- Vertex 4 Y-coordinate {m} #> │ └─ 22: 4.572; !- Vertex 4 Z-coordinate {m} #> │ #> │─ Object [ID:23] <Zn001:Wall003> #> │ ├─ 01: "Zn001:Wall003", !- Name #> │ │─ 02: "Wall", !- Surface Type #> │ │─ 03: "R13WALL", !- Construction Name #> │ │─ 04: "ZONE ONE", !- Zone Name #> │ │─ 05: "Outdoors", !- Outside Boundary Condition #> │ │─ 06: <"Blank">, !- Outside Boundary Condition Object #> │ │─ 07: "SunExposed", !- Sun Exposure #> │ │─ 08: "WindExposed", !- Wind Exposure #> │ │─ 09: 0.5, !- View Factor to Ground #> │ │─ 10: 4, !- Number of Vertices #> │ │─ 11: 15.24, !- Vertex 1 X-coordinate {m} #> │ │─ 12: 15.24, !- Vertex 1 Y-coordinate {m} #> │ │─ 13: 4.572, !- Vertex 1 Z-coordinate {m} #> │ │─ 14: 15.24, !- Vertex 2 X-coordinate {m} #> │ │─ 15: 15.24, !- Vertex 2 Y-coordinate {m} #> │ │─ 16: 0, !- Vertex 2 Z-coordinate {m} #> │ │─ 17: 0, !- Vertex 3 X-coordinate {m} #> │ │─ 18: 15.24, !- Vertex 3 Y-coordinate {m} #> │ │─ 19: 0, !- Vertex 3 Z-coordinate {m} #> │ │─ 20: 0, !- Vertex 4 X-coordinate {m} #> │ │─ 21: 15.24, !- Vertex 4 Y-coordinate {m} #> │ └─ 22: 4.572; !- Vertex 4 Z-coordinate {m} #> │ #> │─ Object [ID:24] <Zn001:Wall004> #> │ ├─ 01: "Zn001:Wall004", !- Name #> │ │─ 02: "Wall", !- Surface Type #> │ │─ 03: "R13WALL", !- Construction Name #> │ │─ 04: "ZONE ONE", !- Zone Name #> │ │─ 05: "Outdoors", !- Outside Boundary Condition #> │ │─ 06: <"Blank">, !- Outside Boundary Condition Object #> │ │─ 07: "SunExposed", !- Sun Exposure #> │ │─ 08: "WindExposed", !- Wind Exposure #> │ │─ 09: 0.5, !- View Factor to Ground #> │ │─ 10: 4, !- Number of Vertices #> │ │─ 11: 0, !- Vertex 1 X-coordinate {m} #> │ │─ 12: 15.24, !- Vertex 1 Y-coordinate {m} #> │ │─ 13: 4.572, !- Vertex 1 Z-coordinate {m} #> │ │─ 14: 0, !- Vertex 2 X-coordinate {m} #> │ │─ 15: 15.24, !- Vertex 2 Y-coordinate {m} #> │ │─ 16: 0, !- Vertex 2 Z-coordinate {m} #> │ │─ 17: 0, !- Vertex 3 X-coordinate {m} #> │ │─ 18: 0, !- Vertex 3 Y-coordinate {m} #> │ │─ 19: 0, !- Vertex 3 Z-coordinate {m} #> │ │─ 20: 0, !- Vertex 4 X-coordinate {m} #> │ │─ 21: 0, !- Vertex 4 Y-coordinate {m} #> │ └─ 22: 4.572; !- Vertex 4 Z-coordinate {m} #> │ #> │─ Object [ID:25] <Zn001:Flr001> #> │ ├─ 01: "Zn001:Flr001",!- Name #> │ │─ 02: "Floor", !- Surface Type #> │ │─ 03: "FLOOR", !- Construction Name #> │ │─ 04: "ZONE ONE", !- Zone Name #> │ │─ 05: "Adiabatic", !- Outside Boundary Condition #> │ │─ 06: <"Blank">, !- Outside Boundary Condition Object #> │ │─ 07: "NoSun", !- Sun Exposure #> │ │─ 08: "NoWind", !- Wind Exposure #> │ │─ 09: 1, !- View Factor to Ground #> │ │─ 10: 4, !- Number of Vertices #> │ │─ 11: 15.24, !- Vertex 1 X-coordinate {m} #> │ │─ 12: 0, !- Vertex 1 Y-coordinate {m} #> │ │─ 13: 0, !- Vertex 1 Z-coordinate {m} #> │ │─ 14: 0, !- Vertex 2 X-coordinate {m} #> │ │─ 15: 0, !- Vertex 2 Y-coordinate {m} #> │ │─ 16: 0, !- Vertex 2 Z-coordinate {m} #> │ │─ 17: 0, !- Vertex 3 X-coordinate {m} #> │ │─ 18: 15.24, !- Vertex 3 Y-coordinate {m} #> │ │─ 19: 0, !- Vertex 3 Z-coordinate {m} #> │ │─ 20: 15.24, !- Vertex 4 X-coordinate {m} #> │ │─ 21: 15.24, !- Vertex 4 Y-coordinate {m} #> │ └─ 22: 0; !- Vertex 4 Z-coordinate {m} #> │ #> └─ Object [ID:26] <Zn001:Roof001> #> ├─ 01: "Zn001:Roof001", !- Name #> │─ 02: "Roof", !- Surface Type #> │─ 03: "ROOF31", !- Construction Name #> │─ 04: "ZONE ONE", !- Zone Name #> │─ 05: "Outdoors", !- Outside Boundary Condition #> │─ 06: <"Blank">, !- Outside Boundary Condition Object #> │─ 07: "SunExposed", !- Sun Exposure #> │─ 08: "WindExposed", !- Wind Exposure #> │─ 09: 0, !- View Factor to Ground #> │─ 10: 4, !- Number of Vertices #> │─ 11: 0, !- Vertex 1 X-coordinate {m} #> │─ 12: 15.24, !- Vertex 1 Y-coordinate {m} #> │─ 13: 4.572, !- Vertex 1 Z-coordinate {m} #> │─ 14: 0, !- Vertex 2 X-coordinate {m} #> │─ 15: 0, !- Vertex 2 Y-coordinate {m} #> │─ 16: 4.572, !- Vertex 2 Z-coordinate {m} #> │─ 17: 15.24, !- Vertex 3 X-coordinate {m} #> │─ 18: 0, !- Vertex 3 Y-coordinate {m} #> │─ 19: 4.572, !- Vertex 3 Z-coordinate {m} #> │─ 20: 15.24, !- Vertex 4 X-coordinate {m} #> │─ 21: 15.24, !- Vertex 4 Y-coordinate {m} #> └─ 22: 4.572; !- Vertex 4 Z-coordinate {m} #> #> Class: <OtherEquipment> #> ├─ Object [ID:51] <Test 352a> #> │ ├─ 01: "Test 352a", !- Name #> │ │─ 02: "None", !- Fuel Type #> │ │─ 03: "ZONE ONE", !- Zone or ZoneList Name #> │ │─ 04: "AlwaysOn", !- Schedule Name #> │ │─ 05: "EquipmentLevel", !- Design Level Calculation Method #> │ │─ 06: 352, !- Design Level {W} #> │ │─ 07: <Blank>, !- Power per Zone Floor Area {W/m2} #> │ │─ 08: <Blank>, !- Power per Person {W/person} #> │ │─ 09: 0, !- Fraction Latent #> │ │─ 10: 0, !- Fraction Radiant #> │ └─ 11: 0; !- Fraction Lost #> │ #> └─ Object [ID:52] <Test 352 minus> #> ├─ 01: "Test 352 minus", !- Name #> │─ 02: "None", !- Fuel Type #> │─ 03: "ZONE ONE", !- Zone or ZoneList Name #> │─ 04: "AlwaysOn", !- Schedule Name #> │─ 05: "EquipmentLevel", !- Design Level Calculation Method #> │─ 06: -352, !- Design Level {W} #> │─ 07: <Blank>, !- Power per Zone Floor Area {W/m2} #> │─ 08: <Blank>, !- Power per Person {W/person} #> │─ 09: 0, !- Fraction Latent #> │─ 10: 0, !- Fraction Radiant #> └─ 11: 0; !- Fraction Lost #> #> Class: <Exterior:Lights> #> └─ Object [ID:49] <ExtLights> #> ├─ 1: "ExtLights", !- Name #> │─ 2: "AlwaysOn", !- Schedule Name #> │─ 3: 5250, !- Design Level {W} #> │─ 4: "AstronomicalClock", !- Control Option #> └─ 5: "Grounds Lights"; !- End-Use Subcategory #> #> Class: <Output:VariableDictionary> #> └─ Object [ID:41] #> └─ 1: "IDF"; !- Key Field #> #> Class: <Output:Surfaces:Drawing> #> └─ Object [ID:42] #> └─ 1: "dxf:wireframe"; !- Report Type #> #> Class: <Output:Constructions> #> └─ Object [ID:43] #> └─ 1: "Constructions"; !- Details Type 1 #> #> Class: <Output:Table:SummaryReports> #> └─ Object [ID:48] #> └─ 1: "AllSummary"; !- Report 1 Name #> #> Class: <OutputControl:Table:Style> #> └─ Object [ID:47] #> └─ 1: "ALL"; !- Column Separator #> #> Class: <Output:Variable> #> ├─ Object [ID:27] #> │ ├─ 1: "*", !- Key Value #> │ │─ 2: "Site Outdoor Air Drybulb Temperature", !- Variable Name #> │ └─ 3: "hourly"; !- Reporting Frequency #> │ #> │─ Object [ID:28] #> │ ├─ 1: "*", !- Key Value #> │ │─ 2: "Site Daylight Saving Time Status", !- Variable Name #> │ └─ 3: "daily"; !- Reporting Frequency #> │ #> │─ Object [ID:29] #> │ ├─ 1: "*", !- Key Value #> │ │─ 2: "Site Day Type Index", !- Variable Name #> │ └─ 3: "daily"; !- Reporting Frequency #> │ #> │─ Object [ID:30] #> │ ├─ 1: "*", !- Key Value #> │ │─ 2: "Zone Mean Air Temperature", !- Variable Name #> │ └─ 3: "hourly"; !- Reporting Frequency #> │ #> │─ Object [ID:31] #> │ ├─ 1: "*", !- Key Value #> │ │─ 2: "Zone Total Internal Latent Gain Energy", !- Variable Name #> │ └─ 3: "hourly"; !- Reporting Frequency #> │ #> │─ Object [ID:32] #> │ ├─ 1: "*", !- Key Value #> │ │─ 2: "Zone Mean Radiant Temperature", !- Variable Name #> │ └─ 3: "hourly"; !- Reporting Frequency #> │ #> │─ Object [ID:33] #> │ ├─ 1: "*", !- Key Value #> │ │─ 2: "Zone Air Heat Balance Surface Convection Rate", !- Variable Name #> │ └─ 3: "hourly"; !- Reporting Frequency #> │ #> │─ Object [ID:34] #> │ ├─ 1: "*", !- Key Value #> │ │─ 2: "Zone Air Heat Balance Air Energy Storage Rate", !- Variable Name #> │ └─ 3: "hourly"; !- Reporting Frequency #> │ #> │─ Object [ID:35] #> │ ├─ 1: "*", !- Key Value #> │ │─ 2: "Surface Inside Face Temperature", !- Variable Name #> │ └─ 3: "daily"; !- Reporting Frequency #> │ #> │─ Object [ID:36] #> │ ├─ 1: "*", !- Key Value #> │ │─ 2: "Surface Outside Face Temperature", !- Variable Name #> │ └─ 3: "daily"; !- Reporting Frequency #> │ #> │─ Object [ID:37] #> │ ├─ 1: "*", !- Key Value #> │ │─ 2: "Surface Inside Face Convection Heat Transfer Coefficient", !- Va... #> │ └─ 3: "daily"; !- Reporting Frequency #> │ #> │─ Object [ID:38] #> │ ├─ 1: "*", !- Key Value #> │ │─ 2: "Surface Outside Face Convection Heat Transfer Coefficient", !- V... #> │ └─ 3: "daily"; !- Reporting Frequency #> │ #> │─ Object [ID:39] #> │ ├─ 1: "*", !- Key Value #> │ │─ 2: "Other Equipment Total Heating Energy", !- Variable Name #> │ └─ 3: "monthly"; !- Reporting Frequency #> │ #> └─ Object [ID:40] #> ├─ 1: "*", !- Key Value #> │─ 2: "Zone Other Equipment Total Heating Energy", !- Variable Name #> └─ 3: "monthly"; !- Reporting Frequency #> #> Class: <Output:Meter:MeterFileOnly> #> ├─ Object [ID:44] #> │ ├─ 1: "ExteriorLights:Electricity", !- Key Name #> │ └─ 2: "hourly"; !- Reporting Frequency #> │ #> │─ Object [ID:45] #> │ ├─ 1: "EnergyTransfer:Building", !- Key Name #> │ └─ 2: "hourly"; !- Reporting Frequency #> │ #> └─ Object [ID:46] #> ├─ 1: "EnergyTransfer:Facility", !- Key Name #> └─ 2: "hourly"; !- Reporting Frequency
# }