Rereading your question, you seem specifically interested in getting/generating a single structure/file with all OpenStudio nested classes/methods. I'm not sure if that exists in one file. Following a somewhat similar approach to what's described below, you could script your way to a solution by instantiating single instances of each upper class object, and recursively looping through each object method/member; then go through derived classes; and so on; e.g.
point3D = OpenStudio::Point3d.new(0, 0, 0)
puts point3D.public_methods(false)
or simply
puts OpenStudio::Point3d.instance_methods(false)
Some effort (!), but manageable.
--- original answer ---
By getting, I assume you mean via the OpenStudio API (e.g., a Ruby script). A bare-bones example of one way to do it (first make sure you can access the OpenStudio Ruby gem):
require "openstudio"
# Load in memory OpenStudio Model (a "warehouse" example):
translator = OpenStudio::OSVersion::VersionTranslator.new
file = "warehouse.osm"
path = OpenStudio::Path.new(File.dirname(__FILE__) + file)
model = translator.loadModel(path)
raise "Invalid OSM" if model.empty?
model = os_model.get
At this point, you should have access to a valid OSM, which you can probe with the API. You'll find many examples here at UnmetHours like this.
air_loops = model.getAirLoopHVACs
plant_loops = model.getPlantLoops
zones = model.getThermalZones
Note the pattern between the get prefix and the class name e.g. getThermalZones. You can then retrieve objects attributes e.g.
zones.each do |zone|
puts zone.nameString
puts zone.multiplier
end
Loops are neat/safe - the object may be empty (i.e. no zones in the OSM). Otherwise, one needs to pay attention to optional attributes (such as ThermalZone volume, which may not be initialized). Again, lots of examples on how to do this at UnmetHours, within OpenStudio Measures, etc.
You can also retrieve all model objects at once, then try to convert them into specific objects like the ones above.
You could use your preferred programming language to scrape the OpenStudio SDK website and compile the list of classes/methods.
This is a good suggestion I'll try that.