Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

customized Energy+.schema.epJSON

From this question's answer How to change idd file, I wonder is it possible to modify the Energy+.schema.epJSONdirectly in order to get a customized reference list during EP run instead compiling EP?
in the old Idd format, the objects like ZoneTerminalUnitList might have a max number of extensible fields but iI could not see any limit config inside new Energy+.schema.epJSON. Is that limit removed in new scheme ? i did some parsing and got this:

with open('Energy+.schema.epJSON') as f:
    data = json.load(f)
pprint(data["properties"]['ZoneTerminalUnitList'] ,width = 240)

{'extensible_size': 1.0,
 'legacy_idd': {'alphas': {'extensions': ['zone_terminal_unit_name'], 'fields': ['zone_terminal_unit_list_name']},
                'extensibles': ['zone_terminal_unit_name'],
                'extension': 'terminal_units',
                'field_info': {'zone_terminal_unit_list_name': {'field_name': 'Zone Terminal Unit List Name', 'field_type': 'a'}, 'zone_terminal_unit_name': {'field_name': 'Zone Terminal Unit Name', 'field_type': 'a'}},
                'fields': ['zone_terminal_unit_list_name'],
                'numerics': {'fields': []}},
 'memo': 'List of variable refrigerant flow (VRF) terminal units served by a given VRF condensing unit. See ZoneHVAC:TerminalUnit:VariableRefrigerantFlow and AirConditioner:VariableRefrigerantFlow.',
 'min_fields': 2.0,
 'patternProperties': {'.*': {'properties': {'terminal_units': {'items': {'properties': {'zone_terminal_unit_name': {'data_type': 'object_list', 'object_list': ['ZoneTerminalUnitNames'], 'type': 'string'}},
                                                                          'required': ['zone_terminal_unit_name'],
                                                                          'type': 'object'},
                                                                'type': 'array'},
                                             'zone_terminal_unit_list_name': {'reference': ['ZoneTerminalUnitListNames'], 'type': 'string'}},
                              'required': ['zone_terminal_unit_list_name'],
                              'type': 'object'}},
 'type': 'object'}

pprint(data["properties"]['Fan:SystemModel'],width = 240)

{'is_required': True, 'reference': ['Fans', 'FansCV', 'FansCVandOnOff', 'FansCVandOnOffandVAV'], 'type': 'string'}

customized Energy+.schema.epJSON

From this question's answer How to change idd file, I wonder is it possible to modify the Energy+.schema.epJSONdirectly in order to get a customized reference list during EP run instead compiling EP?
in the old Idd format, the objects like ZoneTerminalUnitList might have a max number of extensible fields but iI could not see any limit config inside new Energy+.schema.epJSON. Is that limit removed in new scheme ? i did some parsing and got this:

with open('Energy+.schema.epJSON') as f:
    data = json.load(f)
pprint(data["properties"]['ZoneTerminalUnitList'] ,width = 240)

{'extensible_size': 1.0,
 'legacy_idd': {'alphas': {'extensions': ['zone_terminal_unit_name'], 'fields': ['zone_terminal_unit_list_name']},
                'extensibles': ['zone_terminal_unit_name'],
                'extension': 'terminal_units',
                'field_info': {'zone_terminal_unit_list_name': {'field_name': 'Zone Terminal Unit List Name', 'field_type': 'a'}, 'zone_terminal_unit_name': {'field_name': 'Zone Terminal Unit Name', 'field_type': 'a'}},
                'fields': ['zone_terminal_unit_list_name'],
                'numerics': {'fields': []}},
 'memo': 'List of variable refrigerant flow (VRF) terminal units served by a given VRF condensing unit. See ZoneHVAC:TerminalUnit:VariableRefrigerantFlow and AirConditioner:VariableRefrigerantFlow.',
 'min_fields': 2.0,
 'patternProperties': {'.*': {'properties': {'terminal_units': {'items': {'properties': {'zone_terminal_unit_name': {'data_type': 'object_list', 'object_list': ['ZoneTerminalUnitNames'], 'type': 'string'}},
                                                                          'required': ['zone_terminal_unit_name'],
                                                                          'type': 'object'},
                                                                'type': 'array'},
                                             'zone_terminal_unit_list_name': {'reference': ['ZoneTerminalUnitListNames'], 'type': 'string'}},
                              'required': ['zone_terminal_unit_list_name'],
                              'type': 'object'}},
 'type': 'object'}

pprint(data["properties"]['Fan:SystemModel'],width = 240)

{'is_required': True, 'reference': ['Fans', 'FansCV', 'FansCVandOnOff', 'FansCVandOnOffandVAV'], 'type': 'string'}