| 159 | } |
| 160 | |
| 161 | boost::optional<AlfalfaPoint> AlfalfaJSON::exposeFromComponent(const AlfalfaComponent& component, const std::string& display_name) { |
| 162 | std::string display_name_ = display_name; |
| 163 | if (display_name.empty()) { |
| 164 | display_name_ = component.deriveName(); |
| 165 | if (display_name_.empty()) { |
| 166 | LOG(Error, fmt::format("{} points must be provided with a display name", component.typeName())); |
| 167 | return boost::none; |
| 168 | } |
| 169 | } |
| 170 | |
| 171 | AlfalfaPoint point(display_name_); |
| 172 | if (component.canInput()) { |
| 173 | point.setInput(component); |
| 174 | } |
| 175 | if (component.canOutput()) { |
| 176 | point.setOutput(component); |
| 177 | } |
| 178 | exposePoint(point); |
| 179 | return {std::move(point)}; |
| 180 | } |
| 181 | |
| 182 | boost::optional<std::string> AlfalfaJSON::getName(const openstudio::IdfObject& idf_object) { |
| 183 | if (auto mo_ = idf_object.optionalCast<openstudio::model::ModelObject>()) { |