IfcDoc.FormEdit.TraceRule C# (CSharp) Method

TraceRule() private method

private TraceRule ( DocTemplateDefinition template, DocModelRule rule, StringBuilder sb, SEntity ent, List population ) : bool
template DocTemplateDefinition
rule DocModelRule
sb StringBuilder
ent SEntity
population List
return bool
        private bool TraceRule(DocTemplateDefinition template, DocModelRule rule, StringBuilder sb, SEntity ent, List<SEntity> population)
        {
            bool pass = true;
            if (rule is DocModelRuleConstraint)
            {
                DocModelRuleConstraint ruleCon = (DocModelRuleConstraint)rule;
                object result = TraceOperation(template, ruleCon.Expression, sb, ent, population, 0);
                if(result is bool && !((bool)result))
                    pass = false;
            }

            foreach(DocModelRule sub in rule.Rules)
            {
                bool eachpass = TraceRule(template, sub, sb, ent, population);
                if (!eachpass)
                    pass = false;
            }

            return pass;
        }
FormEdit