Exemple #1
0
        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);
        }
Exemple #2
0
        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)
                {
                }
            }
        }