public IRepresentationClass CreateRepClass(IFeatureClass ifeatureClass_0) { IDataset dataset = ifeatureClass_0 as IDataset; IRepresentationWorkspaceExtension repWSExt = GetRepWSExt(dataset.Workspace); if (repWSExt != null) { IRepresentationRules rules = new RepresentationRulesClass(); return(repWSExt.CreateRepresentationClass(ifeatureClass_0, ifeatureClass_0.AliasName + "_Rep", "My_RuleID", "My_Override", false, rules, null)); } return(null); }
private void btnConvert_Click(object sender, EventArgs e) { if (this.txtRepresentationName.Text.Trim().Length == 0) { MessageBox.Show("名字不能为空!"); } else if (this.txtruleIDFldName.Text.Trim().Length == 0) { MessageBox.Show("RuleID字段不能为空!"); } else if (this.txtoverrideFldName.Text.Trim().Length == 0) { MessageBox.Show("Override字段不能为空!"); } else { try { IFeatureClass featureClass = this.ifeatureLayer_0.FeatureClass; IRepresentationWorkspaceExtension repWSExtFromFClass = RepresentationAssist.GetRepWSExtFromFClass(featureClass); if (repWSExtFromFClass != null) { IRepresentationRule repRule = RepresentationAssist.CreateRepresentationRule(featureClass); IRepresentationRules rules = new RepresentationRulesClass(); rules.Add(repRule); IRepresentationClass class3 = repWSExtFromFClass.CreateRepresentationClass(featureClass, this.txtRepresentationName.Text, this.txtruleIDFldName.Text, this.txtoverrideFldName.Text, this.rdoRequireShapeOverride.Checked, rules, null); if ((this.imap_0 != null) && this.chkAddLayer.Checked) { IFeatureLayer layer = new FeatureLayerClass { FeatureClass = featureClass }; IFeatureRenderer renderer = new RepresentationRendererClass(); (renderer as IRepresentationRenderer).RepresentationClass = class3; (layer as IGeoFeatureLayer).Renderer = renderer; this.imap_0.AddLayer(layer); (this.imap_0 as IActiveView).Refresh(); } base.DialogResult = DialogResult.OK; } else { base.DialogResult = DialogResult.OK; } } catch (COMException exception) { switch (exception.ErrorCode) { case -2147218682: MessageBox.Show(exception.Message); return; case -2147218675: MessageBox.Show("该要素类中已存在同名的制图表现"); break; case -2147218674: MessageBox.Show("该要素类中已存在同名RuleID字段或Override字段"); break; } } catch (Exception) { } } }