IdfObject is an abstraction of a single object in an Idf. It provides
more detail methods to modify objects. IdfObject can only be created from
the parent Idf object, using $object, $object_in_class and
$search_object. This is because that initialization of an IdfObject needs
some shared data from parent Idf object.
idfobj$get_value(which = NULL, all = FALSE, simplify = FALSE) idfobj$set_value(..., default = TRUE) idfobj$FieldName idfobj[[Field]] idfobj$FieldName <- Value idfobj[[Field]] <- Value
$get_value will return a named list containing values of specified fields.
If simplify is FALSE, then all values will be converted into character
and the converted character vector will be returned. Note that the field
names will be coverted into valid R names, i.e. all charaters other than
letters and numbers will be replaced by underscore("_").
$set_value will set values of current object.
eplusr also provides custom S3 method of $, [[ and also $<- and
[[<- to make it more convenient to get and set a single value of an
IdfObject. Basically, idfobj$FieldName and idfobj[[Field is equivalent to idfobj$get_value(Field)[[1]];
idfobj$FieldName <- Value and idfobj[[Field]] <- Value is equivalent
to idfobj$set_value(Field = Value), where FieldName is a single valid
field name and Field is a single valid field index or name.
Arguments
which: An integer vector of field indexes or a character vector of field
names. Field names can be given in "lower-style", e.g. "Thermal Resistance" can be given as "thermal_resistance".
all: If TRUE, values of all fields, including empty fields will be
returned as well. Default: FALSE
simplify: If TRUE, values of fields will be converted into characters
and the converted character vector will be returned.
...: Values to set. Field names of value can be given. If not named, the
input values will be set to fields according to their order of
appearance.
default: If TRUE, all empty fields will be filled with their default
values if possible.
FieldName: A single length character vector of one valid field name where
all characters except letters and numbers are replaced by underscores.
Field: A single length character vector of one valid field name or a
single length integer vector of one valid field index. Same as above,
field names should be given in a style where all characters except
letters and numbers are replaced by underscores.
Value: A single length vector of value to set.
idfobj$id() idfobj$name()
idfobj$definition()
idfobj$get_comment() idfobj$set_comment(comment, append = TRUE, width = 0L)
idfobj$get_value(which = NULL, all = NULL, simplify = FALSE) idfobj$set_value(..., defaults = TRUE) idfobj$FieldName idfobj[[Field]] idfobj$FieldName <- Value idfobj[[Field]] <- Value
idfobj$validate() idfobj$is_valid()
idfobj$ref_from_object() idfobj$ref_by_object() idfobj$has_ref_by() idfobj$has_ref_from() idfobj$has_ref()
idfobj$table(all = FALSE, unit = TRUE, wide = FALSE, string_value = TRUE, in_ip = eplusr_option("view_in_ip"))
idfobj$string(comment = TRUE, leading = 4L, sep_at = 29L)
idfobj$print(comment = TRUE, auto_sep = FALSE) print(iddobj)
idfobj$id() idfobj$name() idfobj$group_name() idfobj$class_name()
$id will return the object ID.
$name will return the object name. If the class does not have name
attribute, then NA will returned.
$group_name returns the group name of this object belongs to.
$class_name returns the class name of this object belongs to.
idfobj$definition()
$definition will return the definition, i.e. the IddObject, of current
class. For details of IddObject, please see IddObject class.
idfobj$get_comment() idfobj$set_comment(comment, append = TRUE, width = 0L)
$get_comment will return the comments of current object.
$set_comment will set comments of current object.
Arguments
comment: A character vector.
append: If TRUE, comment will be appended to existing comments. If
FALSE, comment will be prepended to existing currents. If NULL,
existing comments will be deleted. Default: FALSE
width: An integer to indicate where to break long comment lines. If 0,
no breaking will be made.
idfobj$validate() idfobj$is_valid()
$validate will check if there are errors in current object under different
strictness level.
$is_valid will check if there are no errors in current object under
different strictness level.
The strictness level can be changed using eplusr_option(). Default is
"final".There are three different validate levels, i.e. "none",
"draft" and "final":
For "none", none validation will be done;
For "draft", checking of invalid autosize, autocalculate, numeric,
integer, and choice field values will be done;
For "final", besides above, checking of missing required objects,
duplicated unique objects, object name conflicts, missing required
fields and invalid field value reference will also be done.
idfobj$ref_from_object() idfobj$ref_by_object() idfobj$has_ref_from() idfobj$has_ref_by() idfobj$has_ref()
$ref_from_object will return other objects that current object references
from.
$ref_by_object will return other objects that reference current object.
$has_ref_from and $has_ref_by will return TRUE if current object has
referenced from other objects or has been referenced by other objects,
respectively.
$has_ref will return TRUE if current object has either referenced from
other objects or has been referenced by other objects.
idfobj$table(all = FALSE, unit = TRUE, wide = FALSE, string_value = TRUE, in_ip = eplusr_option("view_in_ip"))
$table will return a data.table that contains all data of current object.
Arguments
all: If TRUE, values of all fields, including empty fields will be
returned as well. Default: FALSE
unit: If TRUE, field names with units will be returned. Default:
TRUE.
wide: If TRUE, a wide table will be returned. Default: FALSE.
string_value: If TRUE, all field values will be returned as character.
Default: TRUE
in_ip: If TRUE, IP units and values will be returned. Default: the
value of eplusr_option("view_in_ip").
idfobj$string(comment = TRUE, leading = 4L, sep_at = 29L)
$string will return the text format of current object.
Arguments
comment: If FALSE, all comments will not be included.
leading: An integer to indicate the number of spaces before each fields.
Default: 4.
sep_at: An integer to indicate the character width where to separate
values and field names. Default: 29.
idfobj$print(comment = TRUE, auto_sep = FALSE) print(idfobj)
Arguments
comment: If FALSE, all comments will not be included.
auto_sep: If TRUE, values and field names will be separate at the
largest character length of values. Default: FALSE.