private void PropagateDynamicFlagRec(GME.MGA.MgaModel ca)
        {
            foreach (GME.MGA.MgaModel child in ca.GetChildrenOfKind(typeof(CyPhy.ComponentAssembly).Name))
            {
                if (this.GetDynamicModelFlag(child))
                {
                    this.PropagateDynamicFlagRec(child);
                }
                else
                {
                    var filter = this.MainParameters.Project.CreateFilter();
                    filter.Kind = typeof(CyPhy.Component).Name;
                    foreach (GME.MGA.IMgaFCO c in child.GetDescendantFCOs(filter))
                    {
                        this.SetDynamicModelFlag(c, false);
                    }

                    filter.Kind = typeof(CyPhy.ComponentAssembly).Name;
                    foreach (GME.MGA.IMgaFCO c in child.GetDescendantFCOs(filter))
                    {
                        this.SetDynamicModelFlag(c, false);
                    }
                }
            }
        }
        private void PrintDynamicFlagStatusRec(GME.MGA.MgaModel ca, int level = 1)
        {
            foreach (GME.MGA.MgaModel child in ca.GetChildrenOfKind(typeof(CyPhy.ComponentAssembly).Name))
            {
                if (this.GetDynamicModelFlag(child))
                {
                    this.Logger.WriteDebug("<b>{0} {1}</b>", new String('-', level), child.Name);
                }
                else
                {
                    this.Logger.WriteDebug("{0} {1}", new String('-', level), child.Name);
                }

                this.PrintDynamicFlagStatusRec(child, level + 1);
            }

            foreach (GME.MGA.MgaModel child in ca.GetChildrenOfKind(typeof(CyPhy.Component).Name))
            {
                if (this.GetDynamicModelFlag(child))
                {
                    this.Logger.WriteDebug("<b>{0} {1}</b>", new String('-', level), child.Name);
                }
                else
                {
                    this.Logger.WriteDebug("{0} {1}", new String('-', level), child.Name);
                }
            }
        }