<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Getting newly created parcels from a parcel job in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/getting-newly-created-parcels-from-a-parcel-job/m-p/392962#M10488</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Alternatively, at what point (read, what event can I listen for) will the job and the fabric contain the new parcels?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 10 Feb 2011 14:05:04 GMT</pubDate>
    <dc:creator>DanNarsavage</dc:creator>
    <dc:date>2011-02-10T14:05:04Z</dc:date>
    <item>
      <title>Getting newly created parcels from a parcel job</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/getting-newly-created-parcels-from-a-parcel-job/m-p/392961#M10487</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;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.&amp;nbsp; 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 . . .&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Neither the ICadastralEditor::CadastralFabric::get_CadastralTable() or the ICadastralEditor::CadastralFabricLayer.CadastralFabricLayer.get_CadastralSubLayer() methods return a feature class that contains the new parcels either.&amp;nbsp; How do I get ahold of those polygons so I can put them in another map?&amp;nbsp; I've tried going through the ICadastralPacketManager::EditLayer &amp;amp; ::JobLayer properties as well, but can't QI to anything useful.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Any help would be greatly appreciated.&amp;nbsp; Thanks in advance.&amp;nbsp; 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 &amp;amp; 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.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
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 &amp;lt;= ParcelFIDs.Count(); i++)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ParcelFIDs.Next(out eachID);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AllEditIDs.Add(eachID);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 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;
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 09 Feb 2011 19:54:02 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/getting-newly-created-parcels-from-a-parcel-job/m-p/392961#M10487</guid>
      <dc:creator>DanNarsavage</dc:creator>
      <dc:date>2011-02-09T19:54:02Z</dc:date>
    </item>
    <item>
      <title>Re: Getting newly created parcels from a parcel job</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/getting-newly-created-parcels-from-a-parcel-job/m-p/392962#M10488</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Alternatively, at what point (read, what event can I listen for) will the job and the fabric contain the new parcels?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Feb 2011 14:05:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/getting-newly-created-parcels-from-a-parcel-job/m-p/392962#M10488</guid>
      <dc:creator>DanNarsavage</dc:creator>
      <dc:date>2011-02-10T14:05:04Z</dc:date>
    </item>
    <item>
      <title>Re: Getting newly created parcels from a parcel job</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/getting-newly-created-parcels-from-a-parcel-job/m-p/392963#M10489</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Dan,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Did you ever find a solution for this? I would be interested in having this functionality as well. Thanks.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Mar 2011 18:03:42 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/getting-newly-created-parcels-from-a-parcel-job/m-p/392963#M10489</guid>
      <dc:creator>JohnFell</dc:creator>
      <dc:date>2011-03-30T18:03:42Z</dc:date>
    </item>
    <item>
      <title>Re: Getting newly created parcels from a parcel job</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/getting-newly-created-parcels-from-a-parcel-job/m-p/392964#M10490</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Well . . . I sorta got things to work.&amp;nbsp; The logic that follows is about as rigorous as the process for getting my GISP was, but it's seemed to work so far . . .&amp;nbsp;&amp;nbsp; Selecting the &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;&lt;STRONG&gt;parent&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; parcels isn't much of a problem, so I do that by constructing a query from the FIDSet returned by ICadastralJob::EditParcels, thusly (note that there are some values of "-1" in this FIDSet that represent the prodigal child parcels (and that don't select anything) but I only anticipate finding the parent parcels anyway):&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
private string ParcelDefinitionQuery(IFIDSet ParcelFIDs)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; try
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string ParDef = "";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int eachID;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char[] chars = (" OR ").ToCharArray();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt;= ParcelFIDs.Count(); i++)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ParcelFIDs.Next(out eachID);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (eachID &amp;gt; 0)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ParDef = ParDef + "OBJECTID = " + eachID.ToString() + " OR ";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ParDef = ParDef.TrimEnd(chars);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ParDef;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch (Exception ex)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throw ex;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Note that the above must be done &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;&lt;STRONG&gt;before the job is committed&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; (before the job object loses its reference to all its parcels)--it gets done when the user clicks "Finish Job." The stuff below must be done later (after those new parcels have appeared in the polygon feature class &amp;amp; been given real FIDs)--I listen for the user to stop editing (which actually happens even when the user clicks "Save Edits" as well as "Stop Editing").&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Then I create a GeometryBag &amp;amp; fill it with all those parcels, &amp;amp; then use that to perform a spatial filter to find all &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;&lt;STRONG&gt;non-historical&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; parcels whose interiors intersect those of the parents, thusly:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
ISpatialFilter pSF = new SpatialFilterClass();
pSF.Geometry = pTotalParent;
pSF.SearchOrder = esriSearchOrder.esriSearchOrderSpatial;
pSF.SpatialRel = esriSpatialRelEnum.esriSpatialRelRelation;
pSF.SpatialRelDescription = "T********";&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Sel parcels whose interiors touch parents' interiors
pSF.WhereClause = "Historical = 0";
pFCursor = tempFC.Search(pSF, false);
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And there you have it. I'm still trying to finish debugging this stuff, but I &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;&lt;STRONG&gt;THINK&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN&gt; that the code here works. Like I said, it's not very rigorous, and it might not work if your parcel editing workflow is different from ours. My advice to you is to get out of the parcel mapping business. &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Have fun,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Dan&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 18:00:39 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/getting-newly-created-parcels-from-a-parcel-job/m-p/392964#M10490</guid>
      <dc:creator>DanNarsavage</dc:creator>
      <dc:date>2021-12-11T18:00:39Z</dc:date>
    </item>
  </channel>
</rss>

