private void Handle_Form_Load(object sender, EventArgs e)
        {
            _document = AdnInventorUtilities.InvApplication.ActiveDocument;

            this.KeyPreview = true;
            this.KeyDown   += new KeyEventHandler(LinkParametersForm_KeyDown);

            this.Text = "Link Parameters  [Rule: " + _ruleName + "]";

            _ruleOptionsForm = new RuleOptionsForm();

            //Retrieve rule properties if rule exists
            IiLogicAutomation ruleApi = iLogicUtilities.GetiLogicAutomation();

            iLogicRule rule = ruleApi.GetRule(_document, _ruleName);

            if (rule != null)
            {
                _ruleOptionsForm.FireDep     = rule.FireDependentImmediately;
                _ruleOptionsForm.DontRunAuto = !rule.AutomaticOnParamChange;
                //_ruleOptionsForm.UpdateWhenDone =
            }

            _sourceParameterDict = new Dictionary <Parameter, ListViewItem>();
            _targetParameterDict = new Dictionary <Parameter, ListViewItem>();

            _currentParamFilter = ParamFilterEnum.kAll;

            Command.SourceComponent = null;
            Command.TargetComponent = null;

            _mappings = ParameterMappingInfo.GetMappings(_document, _ruleName);
        }
        void ParamFilterRenamed_Click(object sender, EventArgs e)
        {
            _currentParamFilter = ParamFilterEnum.kRenamed;

            _ctxMenuParamFilter.MenuItems[0].Checked = false;
            _ctxMenuParamFilter.MenuItems[2].Checked = false;
            _ctxMenuParamFilter.MenuItems[3].Checked = false;
            _ctxMenuParamFilter.MenuItems[4].Checked = true;

            ApplyParametersFilter(_sourceParameterDict, _sourceParameterList, _currentParamFilter);
            ApplyParametersFilter(_targetParameterDict, _targetParameterList, _currentParamFilter);

            _bFilters.BackgroundImage = Properties.Resources.Filter_On;
        }
        void ApplyParametersFilter(
            Dictionary <Parameter, ListViewItem> paramDict,
            ListView listView,
            ParamFilterEnum filter)
        {
            foreach (Parameter parameter in paramDict.Keys)
            {
                switch (filter)
                {
                case ParamFilterEnum.kAll:
                    break;

                case ParamFilterEnum.kKey:
                    if (!parameter.IsKey)
                    {
                        if (paramDict[parameter].ListView != null)
                        {
                            paramDict[parameter].Remove();
                        }
                        continue;
                    }
                    break;

                case ParamFilterEnum.kNonKey:
                    if (parameter.IsKey)
                    {
                        if (paramDict[parameter].ListView != null)
                        {
                            paramDict[parameter].Remove();
                        }
                        continue;
                    }
                    break;

                case ParamFilterEnum.kRenamed:
                    if (parameter.Type != ObjectTypeEnum.kModelParameterObject)
                    {
                        if (paramDict[parameter].ListView != null)
                        {
                            paramDict[parameter].Remove();
                        }
                        continue;
                    }

                    ModelParameter mparameter = parameter as ModelParameter;

                    if (!mparameter.Renamed)
                    {
                        if (paramDict[parameter].ListView != null)
                        {
                            paramDict[parameter].Remove();
                        }
                        continue;
                    }
                    break;

                default:
                    break;
                }

                if (paramDict[parameter].ListView == null)
                {
                    ListViewItem item = paramDict[parameter];
                    listView.Items.Add(item);
                }
            }
        }