close Warning: Can't synchronize with repository "(default)" (/var/svn/mms does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 13 years ago

Last modified 13 years ago

#799 new enhancement

Eliminar de un modelo los objetos o componentes inactivos

Reported by: Pedro Gea Owned by: Pedro Gea
Priority: major Milestone: Next
Component: Models Keywords:
Cc: libarra@…

Description

Se solicita la creación de un método que permita eliminar de un modelo los objetos o componentes inactivos. De esto modo se puede aligerar el modelo manteniendo sólo lo que está activo.

Change History (1)

comment:1 Changed 13 years ago by libarra

Buenas tardes Pedro, te adjunto el código que tengo para ir eliminando los objetos o componentes inactivos.

NameBlock model_du = (MMS::Container::GetModel(1)::Duplicate(?))::GetModel(2);
// Borrando MCombinations
Set mComb = model_du::GetMCombinations(?);
Set del_mCom =
{
  Set mComb_null = Select(mComb, Real(NameBlock nb)
  {
    Not(nb::IsActive(?))
  });
  Set EvalSet(mComb_null, Real(NameBlock nb)
  {
    nb::Delete(?)
  })
};
 // Desactivando expterms nulos en la estimacion
Set exp_act = model_du::GetSubmodel(output)::GetExpTerms_Active(?);

Set exp_act_no = EvalSet(exp_act, Real(NameBlock nb)
{
   NameBlock nb_ = nb::GetInput(?);
  
   Serie sr_f = SubSer(nb_::GetData(?), iniEst, endEst);
   Real nulo = And(EQ(MinS(sr_f), 0), EQ(MaxS(sr_f), 0));
   Real IF(nulo, nb::SetIsActive(0), 1)      
});
 // Borrando MVariables

Set mVar = model_du::GetMVariables(?);
Set del_mVar =
{
  Set mVar_null = Select(mVar, Real(NameBlock nb)
  {
    Not(nb::IsActive(?))
  });
  Set EvalSet(mVar_null, Real(NameBlock nb)
  {
    nb::Delete(?)
   })
};
 // Borrando SubModels 
Set mMod = model_du::GetSubmodels(?);
Set mMod_del =
{
  Set mMod_null = Select(mMod, Real(NameBlock nb)
  {
    Not(nb::IsActive(?))
  });
  Set EvalSet(mMod_null, Real(NameBlock nb)
  {
    nb::Delete(?)
  })
};




Note: See TracTickets for help on using tickets.