narsdani

Getting newly created parcels from a parcel job

Discussion created by narsdani on Feb 9, 2011
Latest reply on Mar 30, 2011 by narsdani
At the moment a parcel job is finished in Parcel Editor, I'm attempting to automate the creation of a map that shows the parcels involved before the job (generally a split or combination) and another map that shows the parcels after the job.  One of the many problems I'm encountering is that neither the ICadastralJob::JobParcels or the ICadastralJob::EditParcels properties return FIDs for the newly created parcels. They both contain -1, and maybe that's what I'm looking for, but . . .

Neither the ICadastralEditor::CadastralFabric::get_CadastralTable() or the ICadastralEditor::CadastralFabricLayer.CadastralFabricLayer.get_CadastralSubLayer() methods return a feature class that contains the new parcels either.  How do I get ahold of those polygons so I can put them in another map?  I've tried going through the ICadastralPacketManager::EditLayer & ::JobLayer properties as well, but can't QI to anything useful.

Any help would be greatly appreciated.  Thanks in advance.  Below is a smattering of my code smashed together from a couple different functions. You may find syntactical issues below, but when the code builds & works when it's where it's supposed to be in my spaghetti--it just doesn't give me all the parcels I expect it to.

string JobName = m_ceditor.CurrentJob;
ICadastralPacketManager PacketManager = m_ceditor as ICadastralPacketManager;
ICadastralFabric pFab = m_ceditor.CadastralFabric;
ICadastralJob Job = pFab.GetJob(JobName);

IFIDSet ParcelFIDs = Job.JobParcels;
int eachID;
for (int i = 0; i <= ParcelFIDs.Count(); i++)
{
     ParcelFIDs.Next(out eachID);
     AllEditIDs.Add(eachID);
     ParcelDef = ParcelDef + "OBJECTID = '" + eachID.ToString() + "' OR ";
}
char[] chars = (" OR ").ToCharArray();
ParcelDef = ParcelDef.TrimEnd(chars);

IFeatureClass pParcelFC = pFab.get_CadastralTable(esriCadastralFabricTable.esriCFTParcels) as IFeatureClass;
IDatasetName pDName = (pParcelFC as IDataset).FullName as IDatasetName;

Outcomes