def makeabunch(commdct, obj, obj_i): """make a bunch from the object""" objidd = commdct[obj_i] objfields = [comm.get('field') for comm in commdct[obj_i]] objfields[0] = ['key'] objfields = [field[0] for field in objfields] obj_fields = [bunchhelpers.makefieldname(field) for field in objfields] bobj = EpBunch(obj, obj_fields, objidd) return bobj
def main(): # read code # iddfile = "../iddfiles/Energy+V6_0.idd" iddfile = "./walls.idd" fname = "./walls.idf" # small file with only surfaces data, commdct = readidf.readdatacommdct(fname, iddfile=iddfile) # setup code walls - can be generic for any object dt = data.dt dtls = data.dtls wall_i = dtls.index('BuildingSurface:Detailed'.upper()) wallkey = 'BuildingSurface:Detailed'.upper() dwalls = dt[wallkey] dwall = dwalls[0] wallfields = [comm.get('field') for comm in commdct[wall_i]] wallfields[0] = ['key'] wallfields = [field[0] for field in wallfields] wall_fields = [bunchhelpers.makefieldname(field) for field in wallfields] print wall_fields[:20] bwall = EpBunch(dwall, wall_fields) print bwall.Name print data.dt[wallkey][0][1] bwall.Name = 'Gumby' print bwall.Name print data.dt[wallkey][0][1] print # set aliases bwall.__aliases = {'Constr':'Construction_Name'} print "wall.Construction_Name = %s" % (bwall.Construction_Name, ) print "wall.Constr = %s" % (bwall.Constr, ) print print "change wall.Constr" bwall.Constr = 'AnewConstr' print "wall.Constr = %s" % (bwall.Constr, ) print "wall.Constr = %s" % (data.dt[wallkey][0][3], ) print # add functions bwall.__functions = {'svalues':somevalues} print bwall.svalues print bwall.__functions
# read code iddfile = "../iddfiles/Energy+V6_0.idd" fname = "./walls.idf" # small file with only surfaces fname = "../idffiles/CoolingTower.idf" data, commdct = readidf.readdatacommdct(fname, iddfile=iddfile) # setup code walls - can be generic for any object dt = data.dt dtls = data.dtls wall_i = dtls.index('BuildingSurface:Detailed'.upper()) wallkey = 'BuildingSurface:Detailed'.upper() wallfields = [comm.get('field') for comm in commdct[wall_i]] wallfields[0] = ['key'] wallfields = [field[0] for field in wallfields] wall_fields = [bunchhelpers.makefieldname(field) for field in wallfields] walls = dt[wallkey] surfaces = [Bunch(zip(wall_fields, wall)) for wall in walls] # make key caps for key in dtls: for obj in dt[key]: obj[0] = key open('a.txt', 'w').write(str(data)) bunchdt = {} for i, key in enumerate(dtls): fields = [comm.get('field') for comm in commdct[i]] fields[0] = ['key']
from bunch import * import bunchhelpers from bunch_subclass import EpBunch_2 as EpBunch import geometry.surface # read code iddfile = "../iddfiles/Energy+V6_0.idd" fname = "../idffiles/5ZoneSupRetPlenRAB.idf" # small file with only surfaces data, commdct = readidf.readdatacommdct(fname, iddfile=iddfile) dt = data.dt dtls = data.dtls bunchdt = {} for obj_i, key in enumerate(dtls): key = key.upper() bunchdt[key] = [] objs = dt[key] for obj in objs: objfields = [comm.get('field') for comm in commdct[obj_i]] objfields[0] = ['key'] print key print objfields objfields = [field[0] for field in objfields] obj_fields = [bunchhelpers.makefieldname(field) for field in objfields] bobj = EpBunch(obj, obj_fields) bunchdt[key].append(bobj)