IfcDoc.DocumentationISO.BuildExampleList C# (CSharp) Method

BuildExampleList() private static method

private static BuildExampleList ( List listExample, DocExample docExample, DocObject docObject, bool>.Dictionary included ) : void
listExample List
docExample DocExample
docObject DocObject
included bool>.Dictionary
return void
        private static void BuildExampleList(List<DocExample> listExample, DocExample docExample, DocObject docObject, Dictionary<DocObject, bool> included)
        {
            // check for view reference
            if (included != null)
            {
                bool viewref = false;
                foreach (DocModelView docView in docExample.Views)
                {
                    if (included.ContainsKey(docView))
                    {
                        viewref = true;
                        break;
                    }
                }

                if (!viewref)
                    return;
            }

            if (docExample.ApplicableType != null)
            {
                string[] types = docExample.ApplicableType.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                foreach (string type in types)
                {
                    string[] parts = type.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries);
                    if (parts.Length >= 1)
                    {
                        if (parts[0].Equals(docObject.Name))
                        {
                            listExample.Add(docExample);
                        }
                    }
                }
            }

            // templates
            if (docExample.ApplicableTemplates != null && docObject is DocTemplateDefinition)
            {
                if (docExample.ApplicableTemplates.Contains((DocTemplateDefinition)docObject))
                {
                    listExample.Add(docExample);
                }
            }

            // recurse
            foreach (DocExample docSub in docExample.Examples)
            {
                BuildExampleList(listExample, docSub, docObject, included);
            }
        }