hongyuanjia / epluspar

Conduct parametric analysis on EnergyPlus models in R
https://hongyuanjia.github.io/epluspar
Other
9 stars 0 forks source link

Encountering an error as I attempt to add an object into my IDF file using eplusr #30

Closed mdakyen closed 3 years ago

mdakyen commented 3 years ago

Good sir, I have been trying to add an object to my IDF file using eplusr, but I kept encountering an error. Below are my codes and the error. mywork<-(WindowMaterial:Glazing = list(Name = "clear glass 4 mm", Optical_Data_Type = "SpectralAverage", SpectralAverage =0.0039, Solar_Transmittance_at_Normal_Incidence =0.812 , Front_Side_Solar_Reflectance_at_Normal_Incidence =0.076 , Back_Side_Solar_Reflectance_at_Normal_Incidence =0.075, Visible_Transmittance_at_Normal_Incidence =0.893, Front_Side_Visible_Reflectance_at_Normal_Incidence =0.084, Back_Side_Visible_Reflectance_at_Normal_Incidence =0.084, Infrared_Transmittance_at_Normal_Incidence =0, Front_Side_Infrared_Hemispherical_Emissivity =0.840, Back_Side_Infrared_Hemispherical_Emissivity =0.840, Conductivity = 0.9)) idf$add(mywork)

Error in WindowMaterial:Glazing = list(Name = "clear glass 4 mm", Optical_Data_Type = "SpectralAverage", : object 'WindowMaterial' not found

hongyuanjia commented 3 years ago

This is because when you mentioning a class that contains a colon, you have to change the class name to underscore style, i.e. from WindowMaterial:Glazing to WindowMaterial_Glazing, or quote it "WindowMaterial:Glazing"

mdakyen commented 3 years ago

Thanks for your response, sir. I implemented your recommendation, as follows: mywork<-(WindowMaterial_Glazing = list(Name = "clear glass 4 mm", Optical_Data_Type = "SpectralAverage", SpectralAverage =0.0039, Solar_Transmittance_at_Normal_Incidence =0.812 , Front_Side_Solar_Reflectance_at_Normal_Incidence =0.076 , Back_Side_Solar_Reflectance_at_Normal_Incidence =0.075, Visible_Transmittance_at_Normal_Incidence =0.893, Front_Side_Visible_Reflectance_at_Normal_Incidence =0.084, Back_Side_Visible_Reflectance_at_Normal_Incidence =0.084, Infrared_Transmittance_at_Normal_Incidence =0, Front_Side_Infrared_Hemispherical_Emissivity =0.840, Back_Side_Infrared_Hemispherical_Emissivity =0.840, Conductivity = 0.9)) idf$add(mywork) However, I still encounted the following error: Error: Assertion on 'Input' failed: Must be named.

hongyuanjia commented 3 years ago

If you are trying to modify or add objects to an Idf object, please follow the instruction here, i.e. make sure input passed to Idf$add() is a list. For your case, you should do:

mywork<- list(WindowMaterial_Glazing = list(Name = "clear glass 4 mm",
    Optical_Data_Type = "SpectralAverage",
    SpectralAverage =0.0039,
    Solar_Transmittance_at_Normal_Incidence =0.812 ,
    Front_Side_Solar_Reflectance_at_Normal_Incidence =0.076 ,
    Back_Side_Solar_Reflectance_at_Normal_Incidence =0.075,
    Visible_Transmittance_at_Normal_Incidence =0.893,
    Front_Side_Visible_Reflectance_at_Normal_Incidence =0.084,
    Back_Side_Visible_Reflectance_at_Normal_Incidence =0.084,
    Infrared_Transmittance_at_Normal_Incidence =0,
    Front_Side_Infrared_Hemispherical_Emissivity =0.840,
    Back_Side_Infrared_Hemispherical_Emissivity =0.840,
    Conductivity = 0.9))

idf$add(mywork)
mdakyen commented 3 years ago

Followed your suggestions again Sir, but am still faced with the following error: Error: Invalid field name found:

3| Class 'WindowMaterial:Glazing': 'SpectralAverage'.

mdakyen commented 3 years ago

Sorry Sir, noticed my mistake. Below is the correct code and its working now. mywork<-list(WindowMaterial_Glazing = list(Name = "clear glass 4 mm", Optical_Data_Type = "SpectralAverage", Thickness =0.0039, Solar_Transmittance_at_Normal_Incidence =0.812 , Front_Side_Solar_Reflectance_at_Normal_Incidence =0.076 , Back_Side_Solar_Reflectance_at_Normal_Incidence =0.075, Visible_Transmittance_at_Normal_Incidence =0.893, Front_Side_Visible_Reflectance_at_Normal_Incidence =0.084, Back_Side_Visible_Reflectance_at_Normal_Incidence =0.084, Infrared_Transmittance_at_Normal_Incidence =0, Front_Side_Infrared_Hemispherical_Emissivity =0.840, Back_Side_Infrared_Hemispherical_Emissivity =0.840, Conductivity = 0.9)) idf$add(mywork)

Thanks for your swift response, sir.

hongyuanjia commented 3 years ago

Great. Good to know it works.