示例#1
0
        public override string WhereRule()
        {
            if (!_relatedObjectsType.HasValue)
            {
                return("");
            }
            int    relCount = _relatedObjects.Count;
            string err      =
                "WR1 RelAssigns: Assigned related objects must comply with the contraint given by the RelatedObjectsType.\n";

            switch (RelatedObjectsType.Value)
            {
            case IfcObjectType.Product:
                return(_relatedObjects.OfType <IfcProduct>().Count() == relCount ? "" : err);

            case IfcObjectType.Process:
                return(_relatedObjects.OfType <IfcProcess>().Count() == relCount ? "" : err);

            case IfcObjectType.Control:
                return(_relatedObjects.OfType <IfcControl>().Count() == relCount ? "" : err);

            case IfcObjectType.Resource:
                return(_relatedObjects.OfType <IfcResource>().Count() == relCount ? "" : err);

            case IfcObjectType.Actor:
                return(_relatedObjects.OfType <IfcActor>().Count() == relCount ? "" : err);

            case IfcObjectType.Group:
                return(_relatedObjects.OfType <IfcGroup>().Count() == relCount ? "" : err);

            case IfcObjectType.Project:
                return(_relatedObjects.OfType <IfcProject>().Count() == relCount ? "" : err);

            case IfcObjectType.NotDefined:
                return("");

            default:
                return("WR1 RelAssigns: Unknown ObjectType\n");
            }
        }