forked from pyenergyplus/eppy3000
-
Notifications
You must be signed in to change notification settings - Fork 1
/
newidfobject.py
66 lines (53 loc) · 1.47 KB
/
newidfobject.py
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
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
"""make a new idf ofject"""
from io import StringIO
from pprint import pprint
from eppy3000.modelmaker import IDF
iddfname = "/Applications/EnergyPlus-8-9-0/Energy+.schema.epJSON"
fname = "./eppy3000/resources/snippets/V8_9/a.epJSON"
idf = IDF(idfname=StringIO("{}"), iddname=iddfname)
# def newidfobject(idf, key, objname):
# """create a new idf object"""
# # TODO test for dup name
# objidd = idf.idd.iddobjects[key]
# try:
# idf.idf[key][objname]
# except KeyError as e:
# idf.idf[key] = Munch()
# nobj = idf.idf[key][objname] = Munch()
# for fieldname in objidd.fieldnames():
# try:
# nobj[fieldname] = objidd.fieldproperty(fieldname)['default']
# except AttributeError as e:
# nobj[fieldname] = "gumby"
#
# make a newidfobject
# key = "Building"
# # key = "AirLoopHVAC"
# key = "Schedule:Compact"
key = "BuildingSurface:Detailed"
objname = "wall1"
idf.newidfobject(key, objname)
objname = "wall2"
idf.newidfobject(key, objname, defaultvalues=False)
objname = "wall3"
lastobj = idf.newidfobject(
key,
objname,
defaultvalues=True,
outside_boundary_condition="Surface",
vertices=[
{
"vertex_x_coordinate": 15.24,
"vertex_y_coordinate": 0.0,
"vertex_z_coordinate": 0.0,
}
],
)
# print(idf)
# idf.saveas("n.json")
# print()
idf.removeidfobject(key, "wall1")
# print(idf)
# print()
idf.copyidfobject(key, "wall3", "wall4")
print(idf)