NatLabRockies / NatLabRockies/OpenStudio

Support ExternalFile (CSV) in TableLookup / TableIndependentVariable

Open
#5,077 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

component - IDF Translation component - Model Enhancement Request
Dominant language
C++
Stars
646
Forks
237
Avg merge
3d 11h
Merged PRs (30d)
10

Description

Enhancement Request

E+ has capabilities to point these objects to a CSV file, but OS SDK doesn't have it implemented.

We've added the fields but they are just reserved for potential future implementation at the moment. There is no getter/setter for it, nor a constructor that accepts an ExternalFile, and that's because we didn't add this capability when we replaced Table:MultiVariableLookup with Table:Lookup / Table:IndependentVariable (which didn't have the ExternalFile option) in https://github.com/NREL/OpenStudio/pull/4652.

Detailed Description

Originally reported by @Ski90Moo at https://github.com/NREL/OpenStudio/issues/5067

TableLookup: https://bigladdersoftware.com/epx/docs/23-2/input-output-reference/group-performance-tables.html#field-external-file-name

Table:IndependentVariable: https://bigladdersoftware.com/epx/docs/23-2/input-output-reference/group-performance-tables.html#field-external-file-name-1

Both have these fields:

[...]
  ,                        !- External File Name
  ,                        !- External File Column Number
  ,                        !- External File Starting Row Number
[...]


## Possible Implementation

Constructor that takes ExternalFile. Getters/Setters for Column Number, Start Row number.

Unclear how we enforce correspondance of ExternalFile between Table:Lookup and Table:IndependentVariable(s).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the TableLookup and TableIndependentVariable implementations and the existing ExternalFile API, then compare their current fields with the EnergyPlus external-file fields described here. Add the ExternalFile constructor and column/start-row getters and setters, and resolve how shared ExternalFile correspondence should be enforced before validating the resulting SDK behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend-api-design
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.