TEST_F(EnergyPlusFixture,ForwardTranslator_Surface_Zone) { Model model; ThermalZone thermalZone(model); Space space(model); space.setThermalZone(thermalZone); Point3dVector points; points.push_back(Point3d(0, 1, 0)); points.push_back(Point3d(0, 0, 0)); points.push_back(Point3d(1, 0, 0)); points.push_back(Point3d(1, 1, 0)); Surface surface(points, model); surface.setSpace(space); ForwardTranslator forwardTranslator; Workspace workspace = forwardTranslator.translateModel(model); EXPECT_EQ(0u, forwardTranslator.errors().size()); EXPECT_EQ(0u, forwardTranslator.warnings().size()); ASSERT_EQ(1u, workspace.getObjectsByType(IddObjectType::BuildingSurface_Detailed).size()); ASSERT_EQ(1u, workspace.getObjectsByType(IddObjectType::Zone).size()); WorkspaceObject surfaceObject = workspace.getObjectsByType(IddObjectType::BuildingSurface_Detailed)[0]; WorkspaceObject zoneObject = workspace.getObjectsByType(IddObjectType::Zone)[0]; ASSERT_TRUE(surfaceObject.getTarget(BuildingSurface_DetailedFields::ZoneName)); EXPECT_EQ(zoneObject.handle(), surfaceObject.getTarget(BuildingSurface_DetailedFields::ZoneName)->handle()); }
void WorkspaceWatcher::objectAdd(const WorkspaceObject& addedObject, const openstudio::IddObjectType& type, const openstudio::UUID& uuid) { // Note: Args 2 & 3 are simply to comply with Nano::Signal template parameters // let change() handle m_dirty and onChangeWorkspace(); m_objectAdded = true; if (enabled()){ if (!addedObject.handle().isNull()){ this->onObjectAdd(addedObject); } } }
BOOST_FOREACH(const WorkspaceObject& object,objectsInNewOrder) { if (!oMaterial && (object.iddObject().type() == IddObjectType::Material)) { oMaterial = object; EXPECT_FALSE(oConstruction); OptionalUnsigned oIndex = wsOrder.indexInOrder(object.handle()); EXPECT_FALSE(oIndex); } if (!oConstruction && (object.iddObject().type() == IddObjectType::Construction)) { oConstruction = object; } if (oMaterial && oConstruction) { break; } }
TEST_F(EnergyPlusFixture,ForwardTranslator_Surface_DefaultConstruction) { Model model; Construction construction(model); DefaultSurfaceConstructions defaultSurfaceConstructions(model); defaultSurfaceConstructions.setRoofCeilingConstruction(construction); DefaultConstructionSet defaultConstructionSet(model); defaultConstructionSet.setDefaultExteriorSurfaceConstructions(defaultSurfaceConstructions); Building building = model.getUniqueModelObject<Building>(); building.setDefaultConstructionSet(defaultConstructionSet); Space space(model); ThermalZone zone(model); EXPECT_TRUE(space.setThermalZone(zone)); Point3dVector points; points.push_back(Point3d(0, 1, 0)); points.push_back(Point3d(0, 0, 0)); points.push_back(Point3d(1, 0, 0)); points.push_back(Point3d(1, 1, 0)); Surface surface(points, model); surface.setSpace(space); EXPECT_EQ("RoofCeiling", surface.surfaceType()); EXPECT_EQ("Outdoors", surface.outsideBoundaryCondition()); EXPECT_FALSE(surface.adjacentSurface()); ASSERT_TRUE(surface.construction()); EXPECT_TRUE(surface.isConstructionDefaulted()); EXPECT_EQ(construction.handle(), surface.construction()->handle()); ForwardTranslator forwardTranslator; Workspace workspace = forwardTranslator.translateModel(model); EXPECT_EQ(0u, forwardTranslator.errors().size()); EXPECT_EQ(0u, forwardTranslator.warnings().size()); ASSERT_EQ(1u, workspace.getObjectsByType(IddObjectType::BuildingSurface_Detailed).size()); ASSERT_EQ(1u, workspace.getObjectsByType(IddObjectType::Construction).size()); WorkspaceObject surfaceObject = workspace.getObjectsByType(IddObjectType::BuildingSurface_Detailed)[0]; WorkspaceObject constructionObject = workspace.getObjectsByType(IddObjectType::Construction)[0]; ASSERT_TRUE(surfaceObject.getTarget(BuildingSurface_DetailedFields::ConstructionName)); EXPECT_EQ(constructionObject.handle(), surfaceObject.getTarget(BuildingSurface_DetailedFields::ConstructionName)->handle()); }
OptionalModelObject ReverseTranslator::translateBuildingSurfaceDetailed( const WorkspaceObject & workspaceObject ) { if( workspaceObject.iddObject().type() != IddObjectType::BuildingSurface_Detailed ){ LOG(Error, "WorkspaceObject is not IddObjectType: BuildingSurface:Detailed"); return boost::none; } openstudio::Point3dVector vertices = getVertices(BuildingSurface_DetailedFields::NumberofVertices + 1, workspaceObject); boost::optional<Surface> surface; try{ surface = Surface(vertices, m_model); }catch(const std::exception&){ LOG(Error, "Cannot create Surface for object: " << workspaceObject); return boost::none; } OptionalString s = workspaceObject.name(); if(s) { surface->setName(*s); } OptionalWorkspaceObject target = workspaceObject.getTarget(openstudio::BuildingSurface_DetailedFields::ConstructionName); if (target){ OptionalModelObject modelObject = translateAndMapWorkspaceObject(*target); if (modelObject){ if (modelObject->optionalCast<ConstructionBase>()){ surface->setConstruction(modelObject->cast<ConstructionBase>()); } } } target = workspaceObject.getTarget(openstudio::BuildingSurface_DetailedFields::ZoneName); if (target){ OptionalModelObject modelObject = translateAndMapWorkspaceObject(*target); if (modelObject){ if (modelObject->optionalCast<Space>()){ surface->setSpace(modelObject->cast<Space>()); } } } s = workspaceObject.getString(BuildingSurface_DetailedFields::SurfaceType); if (s) { if (istringEqual("Roof", *s) || istringEqual("Ceiling", *s)){ s = "RoofCeiling"; } surface->setSurfaceType(*s); } //std::string surfaceType = surface->surfaceType(); s = workspaceObject.getString(BuildingSurface_DetailedFields::SunExposure); if (s) { surface->setSunExposure(*s); } s = workspaceObject.getString(BuildingSurface_DetailedFields::WindExposure); if (s) { surface->setWindExposure(*s); } OptionalDouble d = workspaceObject.getDouble(BuildingSurface_DetailedFields::ViewFactortoGround); if (d) { surface->setViewFactortoGround(*d); } target = workspaceObject.getTarget(openstudio::BuildingSurface_DetailedFields::OutsideBoundaryConditionObject); if (target){ if (target->iddObject().type() == IddObjectType::Zone){ // Zone boundary condition OptionalModelObject modelObject = translateAndMapWorkspaceObject(*target); if(modelObject->optionalCast<Space>()){ Space adjacentSpace = modelObject->cast<Space>(); if (surface->space()){ // insert this surface in the map so subsurface translation can find it m_workspaceToModelMap.insert(std::make_pair(workspaceObject.handle(), surface.get())); // need to translate all sub surfaces here so they will be in adjacent space for (const WorkspaceObject& workspaceSubSurface : workspaceObject.getSources(IddObjectType::FenestrationSurface_Detailed)){ translateAndMapWorkspaceObject(workspaceSubSurface); } // create adjacent surface in other space surface->createAdjacentSurface(adjacentSpace); return surface.get(); } } }else if (target->iddObject().type() == IddObjectType::BuildingSurface_Detailed){ // Surface boundary condition // see if we have already mapped other surface, don't do it here because that is circular if (target->handle() == workspaceObject.handle() ){ // these objects are the same, set boundary condition to adiabatic surface->setOutsideBoundaryCondition("Adiabatic"); return surface.get(); }else{ auto it = m_workspaceToModelMap.find(target->handle()); if( it != m_workspaceToModelMap.end()){ if (it->second.optionalCast<Surface>()){ // this will set other side boundary object on both surfaces Surface adjacentSurface = it->second.cast<Surface>(); surface->setAdjacentSurface(adjacentSurface); return surface.get(); } } } }else{ LOG(Error, "OutsideBoundaryConditionObject not yet mapped for object of type " << target->iddObject().name()); } } s = workspaceObject.getString(BuildingSurface_DetailedFields::OutsideBoundaryCondition); if (s) { surface->setOutsideBoundaryCondition(*s); } return surface.get(); }
boost::optional<ModelObject> ReverseTranslator::translateAndMapWorkspaceObject(const WorkspaceObject & workspaceObject) { auto i = m_workspaceToModelMap.find(workspaceObject.handle()); boost::optional<ModelObject> modelObject; if( i != m_workspaceToModelMap.end()) { return boost::optional<ModelObject>(i->second); } LOG(Trace,"Translating " << workspaceObject.briefDescription() << "."); // DLM: the scope of this translator is being changed, we now only import objects from idf // in the geometry, loads, resources, and general simulation control portions of the model. // Users can add idf objects to their model using idf measures. Only objects viewable in the // current GUIs should be imported, I am making an exception for curves. bool addToUntranslated = true; switch(workspaceObject.iddObject().type().value()) { case openstudio::IddObjectType::AirLoopHVAC : { //modelObject = translateAirLoopHVAC(workspaceObject); break; } case openstudio::IddObjectType::AirLoopHVAC_ControllerList : { break; // no-op } case openstudio::IddObjectType::AirLoopHVAC_OutdoorAirSystem : { //modelObject = translateAirLoopHVACOutdoorAirSystem(workspaceObject ); break; } case openstudio::IddObjectType::AirLoopHVAC_OutdoorAirSystem_EquipmentList : { break; // no-op } case openstudio::IddObjectType::AirLoopHVAC_ReturnPath : { break; // no-op } case openstudio::IddObjectType::CoilSystem_Cooling_DX : { //modelObject = translateCoilSystemCoolingDX(workspaceObject); break; } case openstudio::IddObjectType::AirLoopHVAC_ZoneSplitter : { break; // no-op } case openstudio::IddObjectType::AirTerminal_SingleDuct_ConstantVolume_Reheat : { modelObject = translateAirTerminalSingleDuctConstantVolumeReheat(workspaceObject ); break; } case openstudio::IddObjectType::AirTerminal_SingleDuct_Uncontrolled : { //modelObject = translateAirTerminalSingleDuctUncontrolled(workspaceObject ); break; } case openstudio::IddObjectType::AirTerminal_SingleDuct_VAV_NoReheat : { modelObject = translateAirTerminalSingleDuctVAVNoReheat(workspaceObject ); break; } case openstudio::IddObjectType::AirTerminal_SingleDuct_VAV_Reheat : { //modelObject = translateAirTerminalSingleDuctVAVReheat(workspaceObject ); break; } case openstudio::IddObjectType::AvailabilityManagerAssignmentList : { break; // no-op } case openstudio::IddObjectType::Branch : { break; // no-op } case openstudio::IddObjectType::BranchList : { break; // no-op } case openstudio::IddObjectType::BuildingSurface_Detailed : { modelObject = translateBuildingSurfaceDetailed(workspaceObject ); break; } case openstudio::IddObjectType::Building : { modelObject = translateBuilding(workspaceObject ); break; } case openstudio::IddObjectType::Coil_Heating_Fuel : { //modelObject = translateCoilHeatingGas(workspaceObject ); break; } case openstudio::IddObjectType::Coil_Cooling_DX_SingleSpeed : { //modelObject = translateCoilCoolingDXSingleSpeed(workspaceObject ); break; } case openstudio::IddObjectType::CommentOnly : { break; // no-op } case openstudio::IddObjectType::ComponentCost_LineItem : { break; // no-op } case openstudio::IddObjectType::Connector_Mixer : { break; // no-op } case openstudio::IddObjectType::Connector_Splitter : { break; // no-op } case openstudio::IddObjectType::ConnectorList : { break; // no-op } case openstudio::IddObjectType::Construction : { modelObject = translateConstruction(workspaceObject); break; } case openstudio::IddObjectType::Controller_OutdoorAir : { //modelObject = translateControllerOutdoorAir(workspaceObject); break; } case openstudio::IddObjectType::ConvergenceLimits : { modelObject = translateConvergenceLimits(workspaceObject); break; } case openstudio::IddObjectType::Curve_Bicubic : { modelObject = translateCurveBicubic(workspaceObject); break; } case openstudio::IddObjectType::Curve_Biquadratic : { modelObject = translateCurveBiquadratic(workspaceObject); break; } case openstudio::IddObjectType::Curve_Cubic : { modelObject = translateCurveCubic(workspaceObject); break; } case openstudio::IddObjectType::Curve_DoubleExponentialDecay : { modelObject = translateCurveDoubleExponentialDecay(workspaceObject); break; } case openstudio::IddObjectType::Curve_ExponentialSkewNormal : { modelObject = translateCurveExponentialSkewNormal(workspaceObject); break; } case openstudio::IddObjectType::Curve_FanPressureRise : { modelObject = translateCurveFanPressureRise(workspaceObject); break; } case openstudio::IddObjectType::Curve_Functional_PressureDrop : { modelObject = translateCurveFunctionalPressureDrop(workspaceObject); break; } case openstudio::IddObjectType::Curve_Linear : { modelObject = translateCurveLinear(workspaceObject); break; } case openstudio::IddObjectType::Curve_Quadratic : { modelObject = translateCurveQuadratic(workspaceObject); break; } case openstudio::IddObjectType::Curve_QuadraticLinear : { modelObject = translateCurveQuadraticLinear(workspaceObject); break; } case openstudio::IddObjectType::Curve_Quartic : { modelObject = translateCurveQuartic(workspaceObject); break; } case openstudio::IddObjectType::Curve_RectangularHyperbola1 : { modelObject = translateCurveRectangularHyperbola1(workspaceObject); break; } case openstudio::IddObjectType::Curve_RectangularHyperbola2 : { modelObject = translateCurveRectangularHyperbola2(workspaceObject); break; } case openstudio::IddObjectType::Curve_Sigmoid : { modelObject = translateCurveSigmoid(workspaceObject); break; } case openstudio::IddObjectType::Curve_Triquadratic : { modelObject = translateCurveTriquadratic(workspaceObject); break; } case openstudio::IddObjectType::Daylighting_Controls : { modelObject = translateDaylightingControls(workspaceObject ); break; } case openstudio::IddObjectType::DesignSpecification_OutdoorAir : { // Call this directly because we don't want to translate all of them // only those that are connected to the SizingZone object //modelObject = translateDesignSpecificationOutdoorAir(workspaceObject); break; } case openstudio::IddObjectType::ElectricEquipment : { modelObject = translateElectricEquipment(workspaceObject ); break; } case openstudio::IddObjectType::Exterior_Lights : { //modelObject = translateExteriorLights(workspaceObject); break; } case openstudio::IddObjectType::ElectricLoadCenter_Storage_Simple : { modelObject = translateElectricLoadCenterStorageSimple(workspaceObject); break; } case openstudio::IddObjectType::ElectricLoadCenter_Storage_Converter : { modelObject = translateElectricLoadCenterStorageConverter(workspaceObject); break; } case openstudio::IddObjectType::EvaporativeCooler_Direct_ResearchSpecial : { //modelObject = translateEvaporativeCoolerDirectResearchSpecial(workspaceObject); break; } case openstudio::IddObjectType::EvaporativeFluidCooler_SingleSpeed : { modelObject = translateEvaporativeFluidCoolerSingleSpeed(workspaceObject); break; } case openstudio::IddObjectType::Fan_ConstantVolume : { //modelObject = translateFanConstantVolume(workspaceObject ); break; } case openstudio::IddObjectType::FenestrationSurface_Detailed : { modelObject = translateFenestrationSurfaceDetailed(workspaceObject); break; } case openstudio::IddObjectType::Generator_MicroTurbine : { modelObject = translateGeneratorMicroTurbine(workspaceObject); break; } case openstudio::IddObjectType::GlobalGeometryRules : { // added by geometry translator, do not add to untranslated objects addToUntranslated = false; break; // no-op } case openstudio::IddObjectType::GasEquipment : { modelObject = translateGasEquipment(workspaceObject ); break; } case openstudio::IddObjectType::GroundHeatExchanger_Vertical : { //modelObject = translateGroundHeatExchangerVertical(workspaceObject ); break; } case openstudio::IddObjectType::HeatBalanceAlgorithm : { modelObject = translateHeatBalanceAlgorithm(workspaceObject); break; } case openstudio::IddObjectType::HotWaterEquipment : { modelObject = translateHotWaterEquipment(workspaceObject ); break; } case openstudio::IddObjectType::HVACTemplate_Thermostat : { break; // no-op } case openstudio::IddObjectType::InternalMass : { modelObject = translateInternalMass(workspaceObject ); break; } case openstudio::IddObjectType::Lights : { modelObject = translateLights(workspaceObject ); break; } case openstudio::IddObjectType::Material : { modelObject = translateMaterial(workspaceObject); break; } case openstudio::IddObjectType::Material_AirGap : { modelObject = translateMaterialAirGap(workspaceObject); break; } case openstudio::IddObjectType::Material_NoMass : { modelObject = translateMaterialNoMass(workspaceObject); break; } case openstudio::IddObjectType::Meter_Custom : { modelObject = translateMeterCustom(workspaceObject); break; } case openstudio::IddObjectType::Meter_CustomDecrement : { modelObject = translateMeterCustomDecrement(workspaceObject); break; } case openstudio::IddObjectType::OtherEquipment : { modelObject = translateOtherEquipment(workspaceObject); break; } case openstudio::IddObjectType::OutdoorAir_Mixer : { break; // no-op } case openstudio::IddObjectType::OutdoorAir_Node : { break; // no-op } case openstudio::IddObjectType::OutdoorAir_NodeList : { break; // no-op } case openstudio::IddObjectType::Output_IlluminanceMap : { modelObject = translateOutputIlluminanceMap(workspaceObject); break; } case openstudio::IddObjectType::Output_Meter : { modelObject = translateOutputMeter(workspaceObject); break; } case openstudio::IddObjectType::Output_Meter_Cumulative : { modelObject = translateOutputMeterCumulative(workspaceObject); break; } case openstudio::IddObjectType::Output_Meter_Cumulative_MeterFileOnly : { modelObject = translateOutputMeterCumulativeMeterFileOnly(workspaceObject); break; } case openstudio::IddObjectType::Output_Meter_MeterFileOnly : { modelObject = translateOutputMeterMeterFileOnly(workspaceObject); break; } case openstudio::IddObjectType::Output_SQLite : { break; // no-op } case openstudio::IddObjectType::Output_Table_Monthly : { break; // no-op } case openstudio::IddObjectType::Output_Table_SummaryReports : { break; // no-op } case openstudio::IddObjectType::Output_Variable : { modelObject = translateOutputVariable(workspaceObject); break; } case openstudio::IddObjectType::OutputControl_Table_Style : { break; // no-op } case openstudio::IddObjectType::People : { modelObject = translatePeople(workspaceObject); break; } case openstudio::IddObjectType::Refrigeration_Case : { // modelObject = translateRefrigerationCase(workspaceObject); break; } case openstudio::IddObjectType::Refrigeration_Compressor : { // modelObject = translateRefrigerationCompressor(workspaceObject); break; } case openstudio::IddObjectType::RunPeriod : { modelObject = translateRunPeriod(workspaceObject); break; } case openstudio::IddObjectType::RunPeriodControl_DaylightSavingTime : { modelObject = translateRunPeriodControlDaylightSavingTime(workspaceObject); break; } case openstudio::IddObjectType::RunPeriodControl_SpecialDays : { //modelObject = translateRunPeriodControlSpecialDays(workspaceObject); break; } case openstudio::IddObjectType::Schedule_Compact : { modelObject = translateScheduleCompact(workspaceObject); break; } case openstudio::IddObjectType::Schedule_Constant : { modelObject = translateScheduleConstant(workspaceObject); break; } case openstudio::IddObjectType::Schedule_Day_Hourly : { modelObject = translateScheduleDayHourly(workspaceObject); break; } case openstudio::IddObjectType::Schedule_Day_Interval : { modelObject = translateScheduleDayInterval(workspaceObject); break; } case openstudio::IddObjectType::ScheduleTypeLimits : { modelObject = translateScheduleTypeLimits(workspaceObject); break; } case openstudio::IddObjectType::Schedule_Week_Daily : { modelObject = translateScheduleWeekDaily(workspaceObject); break; } case openstudio::IddObjectType::Schedule_Year : { modelObject = translateScheduleYear(workspaceObject); break; } case openstudio::IddObjectType::SetpointManager_MixedAir : { //modelObject = translateSetpointManagerMixedAir(workspaceObject); break; } case openstudio::IddObjectType::SetpointManager_Scheduled : { //modelObject = translateSetpointManagerScheduled(workspaceObject); break; } case openstudio::IddObjectType::SetpointManager_SingleZone_Reheat : { //modelObject = translateSetpointManagerSingleZoneReheat(workspaceObject); break; } case openstudio::IddObjectType::Shading_Building_Detailed : { modelObject = translateShadingBuildingDetailed(workspaceObject); break; } case openstudio::IddObjectType::Shading_Site_Detailed : { modelObject = translateShadingSiteDetailed(workspaceObject); break; } case openstudio::IddObjectType::Shading_Zone_Detailed : { modelObject = translateShadingZoneDetailed(workspaceObject); break; } case openstudio::IddObjectType::ShadowCalculation : { modelObject = translateShadowCalculation(workspaceObject); break; } case openstudio::IddObjectType::SimulationControl : { modelObject = translateSimulationControl(workspaceObject ); break; } case openstudio::IddObjectType::Site_Location : { modelObject = translateSiteLocation(workspaceObject); break; } case openstudio::IddObjectType::Site_GroundReflectance : { //modelObject = translateSiteGroundReflectance(workspaceObject); break; } case openstudio::IddObjectType::Site_GroundTemperature_BuildingSurface : { //modelObject = translateSiteGroundTemperatureBuildingSurface(workspaceObject); break; } case openstudio::IddObjectType::Site_WaterMainsTemperature : { //modelObject = translateSiteWaterMainsTemperature(workspaceObject); break; } case openstudio::IddObjectType::Sizing_Parameters : { modelObject = translateSizingParameters(workspaceObject ); break; } case openstudio::IddObjectType::SizingPeriod_DesignDay : { modelObject = translateSizingPeriodDesignDay(workspaceObject ); break; } case openstudio::IddObjectType::Sizing_System : { //modelObject = translateSizingSystem(workspaceObject ); break; } case openstudio::IddObjectType::Sizing_Zone : { modelObject = translateSizingZone(workspaceObject ); break; } case openstudio::IddObjectType::SteamEquipment : { modelObject = translateSteamEquipment(workspaceObject); break; } case openstudio::IddObjectType::SurfaceConvectionAlgorithm_Inside : { //modelObject = translateSurfaceConvectionAlgorithmInside(workspaceObject); break; } case openstudio::IddObjectType::SurfaceConvectionAlgorithm_Outside : { //modelObject = translateSurfaceConvectionAlgorithmOutside(workspaceObject); break; } case openstudio::IddObjectType::ThermostatSetpoint_DualSetpoint : { modelObject = translateThermostatSetpointDualSetpoint(workspaceObject); break; } case openstudio::IddObjectType::Timestep : { modelObject = translateTimestep(workspaceObject); break; } case openstudio::IddObjectType::UtilityCost_Charge_Simple : { break; // no-op } case openstudio::IddObjectType::UtilityCost_Qualify : { break; // no-op } case openstudio::IddObjectType::Version : { modelObject = translateVersion(workspaceObject ); break; } case openstudio::IddObjectType::WindowMaterial_Gas: { modelObject = translateWindowMaterialGas(workspaceObject); break; } case openstudio::IddObjectType::WindowMaterial_Glazing: { modelObject = translateWindowMaterialGlazing(workspaceObject); break; } case openstudio::IddObjectType::WindowMaterial_SimpleGlazingSystem: { modelObject = translateWindowMaterialSimpleGlazingSystem(workspaceObject); break; } case openstudio::IddObjectType::WindowProperty_FrameAndDivider: { modelObject = translateWindowPropertyFrameAndDivider(workspaceObject); break; } case openstudio::IddObjectType::Zone: { modelObject = translateZone(workspaceObject); break; } case openstudio::IddObjectType::ZoneAirHeatBalanceAlgorithm: { // DLM: why is this commented out? //modelObject = translateZoneAirHeatBalanceAlgorithm(workspaceObject); break; } case openstudio::IddObjectType::ZoneAirMassFlowConservation: { modelObject = translateZoneAirMassFlowConservation(workspaceObject); break; } case openstudio::IddObjectType::ZoneControl_Thermostat : { break; // no-op } case openstudio::IddObjectType::ZoneCrossMixing: { modelObject = translateZoneCrossMixing(workspaceObject); break; } case openstudio::IddObjectType::ZoneHVAC_EquipmentList : { //modelObject = translateZoneHVACEquipmentList(workspaceObject); break; } case openstudio::IddObjectType::ZoneHVAC_IdealLoadsAirSystem : { //modelObject = translateZoneHVACIdealLoadsAirSystem(workspaceObject); break; } case openstudio::IddObjectType::ZoneInfiltration_DesignFlowRate : { modelObject = translateZoneInfiltrationDesignFlowRate(workspaceObject); break; } case openstudio::IddObjectType::ZoneInfiltration_EffectiveLeakageArea : { modelObject = translateZoneInfiltrationEffectiveLeakageArea(workspaceObject); break; } case openstudio::IddObjectType::ZoneList: { modelObject = translateZone(workspaceObject); break; } case openstudio::IddObjectType::ZoneMixing: { modelObject = translateZoneMixing(workspaceObject); break; } case openstudio::IddObjectType::ZoneVentilation_DesignFlowRate : { modelObject = translateZoneVentilationDesignFlowRate(workspaceObject); break; } default: { break; // no-op } } if( modelObject ) { LOG(Trace,"Adding " << modelObject.get().briefDescription() << " to map."); m_workspaceToModelMap.insert(make_pair(workspaceObject.handle(), modelObject.get())); }else{ if (addToUntranslated){ if (std::find_if(m_untranslatedIdfObjects.begin(), m_untranslatedIdfObjects.end(), IdfObjectEqual(workspaceObject.idfObject())) == m_untranslatedIdfObjects.end()){ LOG(Trace,"Ignoring " << workspaceObject.briefDescription() << "."); m_untranslatedIdfObjects.push_back(workspaceObject.idfObject()); } } } if (m_progressBar){ m_progressBar->setValue(m_untranslatedIdfObjects.size() + m_workspaceToModelMap.size()); } return modelObject; }
std::vector<Handle>::const_iterator WorkspaceObjectOrder_Impl::getIterator( const WorkspaceObject& object) const { OS_ASSERT(m_directOrder); return std::find(m_directOrder->begin(),m_directOrder->end(),object.handle()); }
void WorkspaceWatcher::onObjectRemove(const WorkspaceObject& removedObject) { OS_ASSERT(removedObject.initialized()); OS_ASSERT(removedObject.workspace().isMember(removedObject.handle())); }
void WorkspaceWatcher::onObjectAdd(const WorkspaceObject& addedObject) { OS_ASSERT(addedObject.initialized()); OS_ASSERT(addedObject.workspace().isMember(addedObject.handle())); }