NEWS.md

eplusr 0.16.2

Bug fixes

New features

eplusr 0.16.1

Bug fixes

Internal refactor

eplusr 0.16.0

New features

Bug fixes

Internal refactor

eplusr 0.15.3

Bug fixes

eplusr 0.15.2

New features

Bug fixes

Documentation

eplusr 0.15.1

Bug fixes

Minor changes

eplusr v0.15.0

New features

r idf$add(Output_Variable = .("*", "zone mean air temperature")) # is equivalent to idf$add(Output_Variable = list("*", "zone mean air temperature")) A new argument names can be specified in ParametricJob$models() to rename the parametric models created (#487). A new interface for creating parametric models has been introduced using ParametricJob$param(). It takes parameter definitions in list format, which is similar to Idf$set() except that each field is not assigned with a single value, but a vector of any length, indicating the levels of each parameter. For example, the code block below defines 3 parameters (#487):

param$param( `Supply Fan 1` = list(Fan_Total_Efficiency = seq(0.1, 1.0, 0.1)), Material := list(Thickness = seq(0.01, 0.1, 0.1), Conductivity = seq(0.1, 1.0, 0.1)) ) ParametricJob$cases() is added to get a summary of parametric models and parameter values. It returns a data.table giving you the indices and names of the parametric models, and all parameter values used to create those models.For parametric models created using ParametricJob$param(), the column names will be the same as what you specified in .names. For the case of ParametricJob$apply_measure(), this will be the argument names of the measure functions (#487). Now .names in ParametricJob$apply_measure() can be a single character. In this case, it will be used as the prefix of all parametric models. The models will be named in the pattern .names_X where X is the model index (#487).

Break changes

Minor changes

Bug fixes

eplusr 0.14.2

New features

r idd <- use_idd(8.8) idd$Lights$outputs()

Break changes

Bug fixes

Minor changes

eplusr 0.14.1

Minor changes

eplusr 0.14.0

New features

Major changes

Minor changes

Bug fixes

eplusr 0.13.0

New features

```r # refer to field using '..' idf$add(Material = list(..1 = "mat", ..7 = 0.95)) idf$set(mat = list(..6 = 0.5))

# using vector field values idf$add(Material := list(..1 = sprintf("mat%i", 1:10))) idf$set(c(sprintf("mat%i", 1:10)) := list(..6 = runif(10))) * `Idf$to_table()` gains a new parameter `force`. The default value is `FALSE`. If `TRUE`, you can convert object data from any classes into a wide data.table. This may be useful when you know that target classes have the exact same fields, e.g. `Ceiling:Adiabatic` and `Floor:Adiabatic` (#202). * A new method `Idf$purge()` has been added (#223). It can be used to delete any resource objects that are not referenced by other 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. `Idf$purge()` makes it quite straightforward to perform IDF cleaning. Actions like removing all materials, constructions and schedules can be easily achieved viar Idf$purge(class = c("Material", "Construction"), group = "Schedules") `` * New methodsIdf$duplicatd()andIdf$unique()have been added. They can be used to detect and remove duplicated objects, respectively. Here duplicated objects refer to objects whose field values are the same except the names. Object comments are ignored during comparison. These two methods can be useful when doing model cleaning (#227). * Now ifclassis set toNULLinIdf$definition(), the underlyingIddobject is returned (#237). * Internal helper functionswith_option(),with_silent(),with_verbose(),with_speed()andwithout_checking()have been exported. They can be used to evaluate an expression with temporary eplusr options (#240). * NowIdf$insert()can directly take anIdfobject or a list ofIdfobjects as input. And alsoVersionobjects in input will be directly skipped instead of giving an error (#245). * A new optionallhas been added inIdfObject$print()with default beingFALSE. IfTRUE, all fields defined in [Idd] are printed even they do not exist in current object (#247). * New S3 methods of==for all classes are added, i.e.==.Idf,==.IdfObject,==.Idd,==.IddObject,==.Epw,==.EplusJob,==.EplusSql,==.EplusGroupJob,==.ParametricJob. The negate methods are also added. This makes it quite easy to check the equality of R6 objects of these types (#250). * A new Generic functionreload()is added. eplusr relies heavily on thedata.tablepackage. The core data of all main classes in eplusr are saved asdata.tables. This introduces a problem when loading savedIdfobjects or other class objects via an.RDSand.RDatafile on disk: the storeddata.tables lose their column over-allocation.reload()is a helper function that callsdata.table::setDT()on all internaldata.tables to make sure they are initialized properly. It is recommended to callreload()on eachIdd,Idfand other class object in eplusr loaded withreadRDS()orload(), to make sure all eplusr's functionaries works properly (#251). * The implementation ofEplusSql$report_data()has been refactored, resulting in a ~200% speed-up (#259). * Nowday_typeinEplusSql$report_data()has a few new options (#259): -"Weekday": All working days, i.e. from Monday to Friday -"Weekend": Saturday and Sunday -"DesignDay": Equivalent to"SummerDesignDay"plus"WinterDesignDay"-"CustomDay": CustomDay1 and CustomDay2 -"SpecialDay": Equivalent to"DesignDay"plus"CustomDay"-"NormalDay": Equivalent to"Weekday"and"Weekend"plus"Holiday"* Some internal functions have been exported. They are mainly useful for developers to handle internal IDD and IDF data more efficiently (#260). * A newIdfScheduleCompactclass is introduced. A constructor functionschedule_compact()is added.IdfScheduleCompactclass provides more detailed methods to add, modify and extract schedule values. For more details, seevignette("schedule")(#256). * NewIdfGeometryandIdfViewerclasses are introduced.IdfGeometryis designed to extract data for all geometry objects and perform geometric operations on them, whileIdfVieweris to view IDF geoemtry in 3D using the rgl package in a similar way as OpenStudio SketchUp Plugin.Idf$geometry()andIdf$view()methods are added to directly create anIdfGeometryandIdfViewerobject based on currentIdfobject, respectively (#296). * Aplot.Idfmethod is added which is basically a wrapper ofIdf$view()(#296). * Now eplusr can utilize the CSV output for report data extraction. Benefiting from the fantasticdata.table::fread`, this approach can be as 3~10X faster compared to the SQLite approach. eplusr will still use the SQLite if the CSV output is not available.

Major changes

All relation-related methods now have an unified interface:

r X$method(which, direction, object = NULL, class = NULL, group = NULL, depth = NULL, keep = FALSE)

Where which is a class index or object ID, direction is the target relation direction to extract. All results can be further constrained via 3 extra arguments, i.e. object, class and object. object only applicable to Idf and IdfObject. The depth argument is used to control the depth for searching recursive relations. Default value is 0L, which means no recursive relations will be detected, while NULL means to search all possible recursive relations.

A new keep parameter with default value FALSE has been added. If TRUE, all input fields will be returned, even they may not have any relations. This is the default behavior of v0.12.0 and before. In this version, only fields that have relation with other objects will be returned.

With this update, it is possible, for example, to directly know the structure of an air loop by using idf$object_relation("AnAirLoop", depth = NULL)

Moreover, a new argument class_ref can be specified in methods of value-relation extraction. It can be used to 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 referring to specific field values. There are 3 options in total, i.e. "none", "both" and "all", with "both" being the default.

Minor changes

Bug fixes

eplusr 0.12.0

New features

Bug fixes

eplusr 0.11.0

New features

Bug fixes

Minor changes

eplusr 0.10.4

This is a bug fix release which make sure eplusr is compatible with new version of R6 #164. No new feature is included.

eplusr 0.10.3

New features

Bug fixes

Minor changes

eplusr 0.10.2

This is a patch update mainly to fix CRAN check errors on a strict Latin locale, with a bug fix.

Bug fixes

eplusr 0.10.1

This is a patch update mainly to fix CRAN check errors, with few bug fixes.

Bug fixes

eplusr 0.10.0

eplusr v0.10.0 introduces dozens of improvements, unfortunately also has some break changes. Detailed updates per class are as follow:

Idd Class

IddObject Class

Idf Class

IdfObject Class

Epw Class

EplusSql Class

EplusJob Class

ParametricJob Class

Miscellaneous

eplusr 0.9.4

New features

Minor changes

Bug fixes

eplusr 0.9.3

New features

Bug fixes

eplusr 0.9.2

Break changes

Minor changes

New features

Bug fixes

eplusr 0.9.1

Minor changes

Bug fixes

eplusr 0.9.0

Break Changes

New features

Minor changes

Bug fixes

eplusr 0.8.3

New features

Minor changes

Bug fixes

eplusr 0.8.2

New feature

Minor changes

Bug fixes

eplusr 0.8.1

Major changes



Try the eplusr package in your browser

Any scripts or data that you put into this service are public.

eplusr documentation built on Aug. 25, 2023, 5:18 p.m.