IddFileType IddFileAndFactoryWrapper::iddFileType() const { if (m_iddFileType) { return *m_iddFileType; } OS_ASSERT(m_iddFile); return IddFileType(IddFileType::UserCustom); }
boost::optional<model::Model> ReverseTranslator::loadModel(const openstudio::path& path, ProgressBar* progressBar) { m_model = Model(); m_model.setFastNaming(true); m_workspace = Workspace(StrictnessLevel(StrictnessLevel::None), IddFileType(IddFileType::EnergyPlus)); m_workspaceToModelMap.clear(); m_untranslatedIdfObjects.clear(); m_logSink.resetStringStream(); m_logSink.setThreadId(QThread::currentThread()); m_logSink.setChannelRegex(boost::regex("openstudio\\.IdfFile")); //load idf and convert to a workspace boost::optional<openstudio::IdfFile> idfFile = IdfFile::load(path, IddFileType::EnergyPlus, progressBar); m_logSink.setChannelRegex(boost::regex("openstudio\\.energyplus\\.ReverseTranslator")); // energyplus idfs may not be draft level strictness, eventually need a fixer if (!idfFile){ LOG(Error, "Could not read idf file at path ='" << toString(path) << "'"); }else{ if (!idfFile->isValid(StrictnessLevel::Draft)){ LOG(Error, "Idf file at path ='" << toString(path) << "' is not valid to draft strictness"); LOG(Error, idfFile->validityReport(StrictnessLevel::Draft)); return boost::none; } if (progressBar){ progressBar->setWindowTitle(toString("Creating EnergyPlus Workspace")); } Workspace workspace(StrictnessLevel::None, IddFileType(IddFileType::EnergyPlus)); if (progressBar){ workspace.connectProgressBar(progressBar); } workspace.addObjects(idfFile->objects()); if (progressBar){ workspace.disconnectProgressBar(progressBar); } return this->translateWorkspace(workspace, progressBar); } return boost::none; }