IfcDoc.Program.ExportMvdTemplate C# (CSharp) Method

ExportMvdTemplate() static private method

static private ExportMvdTemplate ( ConceptTemplate mvdTemplate, DocTemplateDefinition docTemplateDef, bool>.Dictionary included, bool documentation ) : void
mvdTemplate IfcDoc.Schema.MVD.ConceptTemplate
docTemplateDef DocTemplateDefinition
included bool>.Dictionary
documentation bool
return void
        internal static void ExportMvdTemplate(ConceptTemplate mvdTemplate, DocTemplateDefinition docTemplateDef, Dictionary<DocObject, bool> included, bool documentation)
        {
            ExportMvdObject(mvdTemplate, docTemplateDef, documentation);
            mvdTemplate.ApplicableEntity = docTemplateDef.Type;

            if (docTemplateDef.Rules != null && docTemplateDef.Rules.Count > 0)
            {
                mvdTemplate.Rules = new List<AttributeRule>();

                foreach (DocModelRule docRule in docTemplateDef.Rules)
                {
                    AttributeRule mvdAttr = new AttributeRule();
                    mvdTemplate.Rules.Add(mvdAttr);
                    ExportMvdRule(mvdAttr, docRule);
                }
            }

            // recurse through sub-templates
            if (docTemplateDef.Templates != null && docTemplateDef.Templates.Count > 0)
            {

                foreach (DocTemplateDefinition docSub in docTemplateDef.Templates)
                {
                    if (included == null || included.ContainsKey(docSub))
                    {
                        if (mvdTemplate.SubTemplates == null)
                        {
                            mvdTemplate.SubTemplates = new List<ConceptTemplate>();
                        }

                        ConceptTemplate mvdSub = new ConceptTemplate();
                        mvdTemplate.SubTemplates.Add(mvdSub);
                        ExportMvdTemplate(mvdSub, docSub, included, documentation);
                    }
                }
            }
        }