public bool CadastralTableAddField(ICadastralFabric pCadaFab, esriCadastralFabricTable eTable, esriFieldType FieldType, string FieldName, string FieldAlias, int FieldLength) { ITable pTable = pCadaFab.get_CadastralTable(eTable); // First check to see if a field with this name already exists if (pTable.FindField(FieldName) > -1) { if (pTable != null) { Marshal.ReleaseComObject(pTable); } return(false); } IField2 pField = null; try { //Create a new Field pField = new FieldClass(); //QI for IFieldEdit IFieldEdit2 pFieldEdit = (IFieldEdit2)pField; pFieldEdit.Type_2 = FieldType; pFieldEdit.Editable_2 = true; pFieldEdit.IsNullable_2 = true; pFieldEdit.Name_2 = FieldName; pFieldEdit.AliasName_2 = FieldAlias; pFieldEdit.Length_2 = FieldLength; //'.RasterDef_2 = pRasterDef pTable.AddField(pField); if (pField != null) { Marshal.ReleaseComObject(pField); } } catch (COMException ex) { if (pField != null) { Marshal.ReleaseComObject(pField); } MessageBox.Show(ex.Message); return(false); } return(true); }
private bool GetFabricSubLayers(IMap Map, esriCadastralFabricTable FabricSubClass, bool ExcludeNonTargetFabrics, ICadastralFabric TargetFabric, out IArray CFParcelFabSubLayers) { ICadastralFabricSubLayer pCFSubLyr = null; IArray CFParcelFabricSubLayers2 = new ArrayClass(); IFeatureLayer pParcelFabricSubLayer = null; UID pId = new UIDClass(); pId.Value = "{E156D7E5-22AF-11D3-9F99-00C04F6BC78E}"; IEnumLayer pEnumLayer = Map.get_Layers(pId, true); pEnumLayer.Reset(); ILayer pLayer = pEnumLayer.Next(); while (pLayer != null) { if (pLayer is ICadastralFabricSubLayer) { pCFSubLyr = (ICadastralFabricSubLayer)pLayer; if (pCFSubLyr.CadastralTableType == FabricSubClass) { pParcelFabricSubLayer = (IFeatureLayer)pCFSubLyr; ICadastralFabric ThisLayersFabric = pCFSubLyr.CadastralFabric; bool bIsTargetFabricLayer = ThisLayersFabric.Equals(TargetFabric); if (!ExcludeNonTargetFabrics || (ExcludeNonTargetFabrics && bIsTargetFabricLayer)) { CFParcelFabricSubLayers2.Add(pParcelFabricSubLayer); } } } pLayer = pEnumLayer.Next(); } CFParcelFabSubLayers = CFParcelFabricSubLayers2; if (CFParcelFabricSubLayers2.Count > 0) { return(true); } else { return(false); } }
public bool GetFabricSubLayersByClass(esriCadastralFabricTable FabricSubClass, out IArray CFParcelFabSubLayers) { ICadastralFabricSubLayer pCFSubLyr = null; IArray CFParcelFabricSubLayers2 = new ArrayClass(); IFeatureLayer pParcelFabricSubLayer = null; UID pId = new UIDClass(); //pId.Value = "{E156D7E5-22AF-11D3-9F99-00C04F6BC78E}";//IGeoFeatureLayer pId.Value = "{BA381F2B-F621-4F45-8F78-101F65B5BBE6}"; //ICadastralFabricSubLayer IEnumLayer pEnumLayer = ArcMap.Editor.Map.get_Layers(pId, true); pEnumLayer.Reset(); ILayer pLayer = pEnumLayer.Next(); while (pLayer != null) { pCFSubLyr = (ICadastralFabricSubLayer)pLayer; if (pCFSubLyr.CadastralTableType == FabricSubClass) { pParcelFabricSubLayer = (IFeatureLayer)pCFSubLyr; IDataset pDS = (IDataset)pParcelFabricSubLayer.FeatureClass; if (pDS.Workspace.Equals(ArcMap.Editor.EditWorkspace)) { CFParcelFabricSubLayers2.Add(pParcelFabricSubLayer); } } pLayer = pEnumLayer.Next(); } CFParcelFabSubLayers = CFParcelFabricSubLayers2; if (CFParcelFabricSubLayers2.Count > 0) { return(true); } else { return(false); } }
public bool GetFabricSubLayers(IMap Map, esriCadastralFabricTable FabricSubClass, out IArray CFParcelFabSubLayers) { ICadastralFabricSubLayer pCFSubLyr = null; IArray CFParcelFabricSubLayers2 = new ArrayClass(); IFeatureLayer pParcelFabricSubLayer = null; UID pId = new UIDClass(); pId.Value = "{E156D7E5-22AF-11D3-9F99-00C04F6BC78E}"; IEnumLayer pEnumLayer = Map.get_Layers(pId, true); pEnumLayer.Reset(); ILayer pLayer = pEnumLayer.Next(); while (pLayer != null) { if (pLayer is ICadastralFabricSubLayer) { pCFSubLyr = (ICadastralFabricSubLayer)pLayer; if (pCFSubLyr.CadastralTableType == FabricSubClass) { pParcelFabricSubLayer = (IFeatureLayer)pCFSubLyr; CFParcelFabricSubLayers2.Add(pParcelFabricSubLayer); } } pLayer = pEnumLayer.Next(); } CFParcelFabSubLayers = CFParcelFabricSubLayers2; if (CFParcelFabricSubLayers2.Count > 0) { return(true); } else { return(false); } }
public bool GetFabricSubLayersByClass(esriCadastralFabricTable FabricSubClass, out IArray CFParcelFabSubLayers) { ICadastralFabricSubLayer pCFSubLyr = null; IArray CFParcelFabricSubLayers2 = new ArrayClass(); IFeatureLayer pParcelFabricSubLayer = null; UID pId = new UIDClass(); //pId.Value = "{E156D7E5-22AF-11D3-9F99-00C04F6BC78E}";//IGeoFeatureLayer pId.Value = "{BA381F2B-F621-4F45-8F78-101F65B5BBE6}"; //ICadastralFabricSubLayer IMap pMap = AAState._editor.Map; IEnumLayer pEnumLayer = pMap.get_Layers(pId, true); pEnumLayer.Reset(); ILayer pLayer = pEnumLayer.Next(); while (pLayer != null) { pCFSubLyr = (ICadastralFabricSubLayer)pLayer; if (pCFSubLyr.CadastralTableType == FabricSubClass) { pParcelFabricSubLayer = (IFeatureLayer)pCFSubLyr; IDataset pDS = (IDataset)pParcelFabricSubLayer.FeatureClass; if (pDS.Workspace.Equals(AAState._editor.EditWorkspace)) CFParcelFabricSubLayers2.Add(pParcelFabricSubLayer); } pLayer = pEnumLayer.Next(); } CFParcelFabSubLayers = CFParcelFabricSubLayers2; if (CFParcelFabricSubLayers2.Count > 0) return true; else return false; }
public bool GetFabricSubLayers(IMap Map, esriCadastralFabricTable FabricSubClass, out IArray CFParcelFabSubLayers) { ICadastralFabricSubLayer pCFSubLyr = null; IArray CFParcelFabricSubLayers2 = new ArrayClass(); IFeatureLayer pParcelFabricSubLayer = null; UID pId = new UIDClass(); pId.Value = "{E156D7E5-22AF-11D3-9F99-00C04F6BC78E}"; IEnumLayer pEnumLayer = Map.get_Layers(pId, true); pEnumLayer.Reset(); ILayer pLayer = pEnumLayer.Next(); while (pLayer != null) { if (pLayer is ICadastralFabricSubLayer) { pCFSubLyr = (ICadastralFabricSubLayer)pLayer; if (pCFSubLyr.CadastralTableType == FabricSubClass) { pParcelFabricSubLayer = (IFeatureLayer)pCFSubLyr; CFParcelFabricSubLayers2.Add(pParcelFabricSubLayer); } } pLayer = pEnumLayer.Next(); } CFParcelFabSubLayers = CFParcelFabricSubLayers2; if (CFParcelFabricSubLayers2.Count > 0) return true; else return false; }
public bool CadastralTableAddFieldV1(ICadastralFabric pCadaFab, esriCadastralFabricTable eTable, esriFieldType FieldType, string FieldName, string FieldAlias, int FieldLength) { ITable pTable = pCadaFab.get_CadastralTable(eTable); // First check to see if a field with this name already exists if (pTable.FindField(FieldName) > -1) { if (pTable != null) { Marshal.ReleaseComObject(pTable); } return(false); } IDatasetComponent pDSComponent = (IDatasetComponent)pCadaFab; IDEDataset pDEDS = pDSComponent.DataElement; IDECadastralFabric pDECadaFab = (IDECadastralFabric)pDEDS; IField2 pField = null; try { //Create a new Field pField = new FieldClass(); //QI for IFieldEdit IFieldEdit2 pFieldEdit = (IFieldEdit2)pField; pFieldEdit.Type_2 = FieldType; pFieldEdit.Editable_2 = true; pFieldEdit.IsNullable_2 = true; pFieldEdit.Name_2 = FieldName; pFieldEdit.AliasName_2 = FieldAlias; pFieldEdit.Length_2 = FieldLength; //'.RasterDef_2 = pRasterDef } catch (COMException ex) { if (pField != null) { Marshal.ReleaseComObject(pField); } MessageBox.Show(ex.Message); return(false); } IArray pArr = pDECadaFab.CadastralTableFieldEdits; bool found = false; int cnt = pArr.Count; ICadastralTableFieldEdits pCadaTableFldEdits = null; IFields pFields = null; for (int i = 0; i <= (cnt - 1); i++) { pCadaTableFldEdits = (ICadastralTableFieldEdits)pArr.get_Element(i); IFieldsEdit pNewFields = new FieldsClass(); int fldCnt = 0; if (pCadaTableFldEdits.CadastralTable == eTable) { pFields = pCadaTableFldEdits.ExtendedAttributeFields; //Copy existing fields if (pFields != null) { fldCnt = pFields.FieldCount; pNewFields.FieldCount_2 = fldCnt + 1; for (int j = 0; j <= (fldCnt - 1); j++) { pNewFields.Field_2[j] = pFields.get_Field(j); } } else { pNewFields.FieldCount_2 = 1; } //Add the new field pNewFields.Field_2[fldCnt] = pField; //reset extended attribute fields pCadaTableFldEdits.ExtendedAttributeFields = pNewFields; found = true; break; } } if (!found) { pCadaTableFldEdits = new CadastralTableFieldEditsClass(); pCadaTableFldEdits.CadastralTable = eTable; //add the field to the table pFields = new FieldsClass(); int fldCnt = pFields.FieldCount; IFieldsEdit pFieldsEdit = (IFieldsEdit)pFields; pFieldsEdit.FieldCount_2 = fldCnt + 1; pFieldsEdit.Field_2[fldCnt] = pField; pCadaTableFldEdits.ExtendedAttributeFields = pFields; pArr.Add(pCadaTableFldEdits); Marshal.ReleaseComObject(pFields); } //Set the CadastralTableFieldEdits property on the DE to the array pDECadaFab.CadastralTableFieldEdits = pArr; // Update the schema ICadastralFabricSchemaEdit pSchemaEd = (ICadastralFabricSchemaEdit)pCadaFab; pSchemaEd.UpdateSchema(pDECadaFab); Marshal.ReleaseComObject(pField); return(true); }