コード例 #1
0
        public void Initialize(IArgument[] properties)
        {
            MsheOrg.Initialize(properties);

            string mshefilename = System.IO.Path.Combine(properties.First(a => a.Key == "SetupPath").Value, properties.First(a => a.Key == "SetupFileName").Value);

            Model mshe = new Model(mshefilename);

            List <double> InnerXValues = new List <double>();
            List <double> InnerYValues = new List <double>();

            int k = 0;

            for (int j = 0; j < mshe.GridInfo.NumberOfColumns; j++)
            {
                for (int i = 0; i < mshe.GridInfo.NumberOfRows; i++)
                {
                    if (mshe.GridInfo.ModelDomainAndGrid.Data[i, j] == 1)
                    {
                        InnerXValues.Add(mshe.GridInfo.GetXCenter(j));
                        InnerYValues.Add(mshe.GridInfo.GetYCenter(i));
                        InnerIdeces.Add(k);
                        k++;
                    }
                    else if (mshe.GridInfo.ModelDomainAndGrid.Data[i, j] == 2)
                    {
                        k++;
                    }
                }
            }


            DHI.OpenMI.MikeShe.BaseGridElementSet NewBaseGrid = new DHI.OpenMI.MikeShe.BaseGridElementSet(new DHI.MikeShe.Engine.BaseGrid(InnerXValues.Count, InnerXValues.ToArray(), InnerYValues.ToArray(), mshe.GridInfo.GridSize, 0));

            mshe.Dispose();
            for (int i = 0; i < MsheOrg.OutputExchangeItemCount; i++)
            {
                var org = MsheOrg.GetOutputExchangeItem(i);

                if (org.ElementSet.ID == "BaseGrid")
                {
                    OutputExchangeItem onew = new OutputExchangeItem();
                    onew.Quantity   = org.Quantity;
                    onew.ElementSet = NewBaseGrid;
                    for (int j = 0; j < org.DataOperationCount; j++)
                    {
                        onew.AddDataOperation(org.GetDataOperation(j));
                    }
                    OutputExchangeItems.Add(onew);
                }
                else
                {
                    OutputExchangeItems.Add(org);
                }
            }
        }
コード例 #2
0
     public void Initialize(IArgument[] properties)
    {
      MsheOrg.Initialize(properties);

      string mshefilename = System.IO.Path.Combine(properties.First(a => a.Key == "SetupPath").Value, properties.First(a => a.Key == "SetupFileName").Value);

      Model mshe = new Model(mshefilename);

      List<double> InnerXValues= new List<double>();
      List<double> InnerYValues = new List<double>();

      int k=0;
        for(int j=0;j<mshe.GridInfo.NumberOfColumns;j++)
          for (int i = 0; i < mshe.GridInfo.NumberOfRows; i++)
          {
          if (mshe.GridInfo.ModelDomainAndGrid.Data[i, j] == 1)
          {
            InnerXValues.Add(mshe.GridInfo.GetXCenter(j));
            InnerYValues.Add(mshe.GridInfo.GetYCenter(i));
            InnerIdeces.Add(k);
            k++;
          }
          else if (mshe.GridInfo.ModelDomainAndGrid.Data[i, j] == 2)
            k++;
        }


        DHI.OpenMI.MikeShe.BaseGridElementSet NewBaseGrid = new DHI.OpenMI.MikeShe.BaseGridElementSet(new DHI.MikeShe.Engine.BaseGrid(InnerXValues.Count, InnerXValues.ToArray(), InnerYValues.ToArray(), mshe.GridInfo.GridSize,0));

      mshe.Dispose();
      for (int i = 0; i < MsheOrg.OutputExchangeItemCount; i++)
      {
        var org = MsheOrg.GetOutputExchangeItem(i);

        if (org.ElementSet.ID == "BaseGrid")
        {
          OutputExchangeItem onew = new OutputExchangeItem();
          onew.Quantity = org.Quantity;
          onew.ElementSet = NewBaseGrid;
          for (int j = 0; j < org.DataOperationCount; j++)
          {
            onew.AddDataOperation(org.GetDataOperation(j));
          }
          OutputExchangeItems.Add(onew);
        }
        else
        {
          OutputExchangeItems.Add(org);
        }
      }
    }