First time here? Check out the Help page!

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

How do I modify Openstudio Model object parameters not found in SDK?

asked 8 years ago

jugonzal07's avatar

updated 7 years ago

Hi all,

Throughout my OpenStudio development I have been finding I run into cases where I know an OS object has a parameter but I'm not finding a way to modify it when I look through the SDK. To give an example, SolarCollector:FlatePlate:Water has a parameter for its area. However, if I go to the SDK and look at SolarCollector:FlatePlate:Water's functions (and through the inherited functions), there doesn't appear to be one to modify its area.

In cases like these, is there an easy way to go in and modify the actual raw string representing the OS object? I figure there must be a way to output the OS object as a string, modify it, and cast it back to an OS object. Other examples of when I've had trouble with this is when trying to find outlet node of a water heater mixed object to use as the Stream 2 Source Node on a tempering valve.

Any advice?

Preview: (hide)

Comments

1

Is area an input for SolarCollector:FlatPlate:Water? Does it not derive its area from the associated surface? More generally, if you open the OSM file in a text editor and can see the parameter you are trying to assign that doesn't have a method for altering it, then you can call the setString(index, string) where index is the index of the parameter for the object and string is the string you want to pass in.

pflaumingo's avatar pflaumingo  ( 8 years ago )

Thanks so much for the reply! I didn't think it did either until I was receiving warnings that my solar collector's area did not match my surface's area. Opening up OS I looked and saw this. Thankfully it seems like OS defaults to the area of the surface anyhow, but it was something that bugged me.

That setString parameter seems to be what I'm looking for! I didn't know it existed. As a quick follow up, is there a getString(index) function as well? I wonder what other useful functions I didn't know existed are out there (eg: get<os:object>s returns an array)

jugonzal07's avatar jugonzal07  ( 8 years ago )
1

That is the SolarCollectorPerformance:FlatPlate object, which is different from the object you mention above in that it takes a reference area as seen in the documentation, but as it states, it still uses the surfaces area for calculation.

Yes, there is a getString method! I typically use the C# bindings and have found the intellisense in Visual Studio helps discover methods that aren't all that obvious.

pflaumingo's avatar pflaumingo  ( 8 years ago )

Oh look at that, you're totally right. I was wondering why they kept being defaulted to 2.9646 m2. Maybe I'll do some more digging if need be to see why it's not matching my surface area. Anyhow, lots of help here. Thanks, pflaumingo

jugonzal07's avatar jugonzal07  ( 8 years ago )

1 Answer

Sort by » oldest newest most voted
3

answered 8 years ago

jugonzal07's avatar

Per @pflaumingo's recommendation, you can generally grab and set values in an OpenStudio object using the getString(index) and setString(index, string) functions where index is the index of the parameter for the object you're interested in.

E.g. let's say I wanted the handle for the inlet port of the following Node object:

OS:Node,
  {9e27287a-144b-4341-9ff2-f6d7bcc4c37f}, !- Handle
  Node 8,                                 !- Name
  {f2293c91-c542-4f27-8bd9-fff7fc4967b2}, !- Inlet Port <----THIS ONE
  {969fbfbf-fd2a-4397-afec-6d19fc376ed8}; !- Outlet Port

Let's say I grabbed the node and named the object my_node, you'd want to do my_node.getString(2) as the inlet port is the 2nd parameter (remember the indexing starts at 0).

Preview: (hide)
link

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Training Workshops

Careers

Question Tools

2 followers

Stats

Asked: 8 years ago

Seen: 326 times

Last updated: Dec 01 '16