/*------------------------------------------------------------------------------------**/
            /// <summary>
            /// CheckConnectivity
            /// </summary>
            /// <param name="unparsed"></param>
            /*--------------+---------------+---------------+---------------+---------------+------*/
            public static void CheckConnectivity
            (
                string unparsed
            )
            {
                BMECApi        MechnanicalAPI = BMECApi.Instance;
                ECInstanceList ComponentList  = null;

                DgnUtilities dgnUtil = DgnUtilities.GetInstance();

                if (unparsed.ToUpper() == "HVAC")
                {
                    PipelineManagerMode.Mode = PipelineManagerAvailableModes.HVAC;
                    ComponentList            = dgnUtil.GetAllInstancesFromDgn("HVAC_COMPONENT", true);
                }
                else if (unparsed.ToUpper() == "TRAY")
                {
                    PipelineManagerMode.Mode = PipelineManagerAvailableModes.CableTray;
                    ComponentList            = dgnUtil.GetAllInstancesFromDgn("CABLETRAY_COMPONENT", true);
                }
                else
                {
                    PipelineManagerMode.Mode = PipelineManagerAvailableModes.Piping;
                    ComponentList            = dgnUtil.GetAllInstancesFromDgn("PIPING_COMPONENT", true);
                }

                if (unparsed.ToUpper() == "FIXDISCONNECTS")
                {
                    if (ComponentList.Count == 0)
                    {
                        return;
                    }

                    s_ConnectivityLog = new LogConnectivityReport();
                    s_ConnectivityLog.AutoConnectivityCheck();
                    s_ConnectivityLog.AutoDisconnectFix();
                    PipelineUtilities.IsConnectivityCheckerRunning = false;
                }
                else
                {
                    if (ComponentList.Count == 0)
                    {
                        MechnanicalAPI.SendToMessageCenterD(DgnPlatformNET.OutputMessagePriority.Information, LocalizableStrings.NoComponentinDgn);
                    }

                    if (s_ConnectivityDialog != null)
                    {
                        s_ConnectivityDialog.ExamineAndShow(true);
                    }

                    if (s_ConnectivityDialog == null)
                    {
                        s_ConnectivityDialog             = new DlgConnetivtyReport();
                        s_ConnectivityDialog.FormClosed += new FormClosedEventHandler(ConnectivityDialog_FormClosed);
                    }
                    s_ConnectivityDialog.Show();
                }
            }
            /*------------------------------------------------------------------------------------**/
            /// <summary>
            /// ReplaceComponents
            /// </summary>
            /// <param name="unparsed"></param>
            /*--------------+---------------+---------------+---------------+---------------+------*/
            public static void ReplaceComponents
            (
                string unparsed
            )
            {
                if (PipelineUtilities.IsReplaceDialogRunning)
                {
                    return;
                }

                BMECApi MechnanicalAPI = BMECApi.Instance;

                // Don't proceed for readonly files
                if (MechnanicalAPI.IsActiveModelReadOnly())
                {
                    MechnanicalAPI.SendToMessageCenterD(Bentley.DgnPlatformNET.OutputMessagePriority.Information, LocalizableStrings.DgnReadonly);
                    return;
                }

                ECInstanceList ecList = MechnanicalAPI.GetSelectedInstances();

                int count = 0;

                for (int i = 0; i < ecList.Count; i++)
                {
                    IECInstance ecInstanceTemp = ecList[i] as IECInstance;
                    if (ecInstanceTemp == null)
                    {
                        continue;
                    }

                    // Skip anything other than piping components or valve operators
                    if (!(SchemaUtilities.IsPipingComponent(ecInstanceTemp) || SchemaUtilities.IsComponentOfType(ecInstanceTemp, ClassNames.VALVE_OPERATING_DEVICE)))
                    {
                        continue;
                    }
                    //You can't replace fasteners
                    if (SchemaUtilities.IsComponentOfType(ecInstanceTemp, ClassNames.FASTENER))
                    {
                        continue;
                    }
                    //You can't replace seals
                    if (SchemaUtilities.IsComponentOfType(ecInstanceTemp, ClassNames.SEAL))
                    {
                        continue;
                    }

                    count++;
                }

                ECInstanceList nozzleList         = new ECInstanceList();
                bool           bHasFreeformNozzle = false;

                if (count == 0)
                {
                    for (int i = 0; i < ecList.Count; i++)
                    {
                        IECInstance ecInstanceTemp = ecList[i] as IECInstance;
                        if (ecInstanceTemp.ClassDefinition.Name == "NOZZLE")
                        {
                            IECPropertyValue propVal = ecInstanceTemp["TYPE_FOR_DATUM"];
                            if (propVal != null && propVal.StringValue == "Freeform")
                            {
                                bHasFreeformNozzle = true;
                                nozzleList.Add(ecInstanceTemp);
                            }
                        }
                    }
                }

                if (count == 0 && !bHasFreeformNozzle)
                {
                    MechnanicalAPI.SendToMessageCenterD(DgnPlatformNET.OutputMessagePriority.Information, LocalizableStrings.NoComponentsSelectedinDgn);
                    return;
                }

                for (int i = 0; i < ecList.Count; i++)
                {
                    DgnUtilities dgnUtil = DgnUtilities.GetInstance();
                    IECInstance  ecInst  = ecList[i];
                    if (dgnUtil.IsECInstanceFromReferenceFile(ecInst) || dgnUtil.IsECInstanceReferencedOut(ecInst))
                    {
                        MechnanicalAPI.SendToMessageCenterD(DgnPlatformNET.OutputMessagePriority.Information, LocalizableStrings.ReadonlyComps);
                        return;
                    }
                }

                if (s_ReplaceCompDialog == null)
                {
                    if (nozzleList.Count <= 0)
                    {
                        s_ReplaceCompDialog             = new DlgReplaceComponent(ecList, ReplaceDialogMode.SimpleReplace, true);
                        s_ReplaceCompDialog.FormClosed += new FormClosedEventHandler(ReplaceCompDialog_FormClosed);
                    }
                    else
                    {
                        s_ReplaceCompDialog             = new DlgReplaceComponent(nozzleList, ReplaceDialogMode.ChangeSpecSize, false);
                        s_ReplaceCompDialog.FormClosed += new FormClosedEventHandler(ReplaceCompDialog_FormClosed);
                    }
                }
                s_ReplaceCompDialog.Show();
            }