diff --git a/src/ifcopenshell-python/ifcopenshell/express/express_parser.py b/src/ifcopenshell-python/ifcopenshell/express/express_parser.py index 9616ec66fc..7e447a43c6 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/express_parser.py +++ b/src/ifcopenshell-python/ifcopenshell/express/express_parser.py @@ -153,7 +153,7 @@ def parse(fn: str) -> mapping.Mapping: special = ((not_paren_star_quote_special | CaselessLiteral("(") | CaselessLiteral(")") | CaselessLiteral("*") | CaselessLiteral("\"\""))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="special"))("special") binary_literal = ((CaselessLiteral("%") + bit + ZeroOrMore(bit))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="binary_literal"))("binary_literal") integer_literal = (digits)("integer_literal") - simple_id = ~CaselessKeyword("format") + ~CaselessKeyword("loindex") + ~CaselessKeyword("in") + ~CaselessKeyword("where") + ~CaselessKeyword("by") + ~CaselessKeyword("subtype") + ~CaselessKeyword("local") + ~CaselessKeyword("sin") + ~CaselessKeyword("case") + ~CaselessKeyword("false") + ~CaselessKeyword("entity") + ~CaselessKeyword("exp") + ~CaselessKeyword("hiindex") + ~CaselessKeyword("generic_entity") + ~CaselessKeyword("number") + ~CaselessKeyword("end_rule") + ~CaselessKeyword("schema") + ~CaselessKeyword("from") + ~CaselessKeyword("length") + ~CaselessKeyword("insert") + ~CaselessKeyword("real") + ~CaselessKeyword("like") + ~CaselessKeyword("hibound") + ~CaselessKeyword("if") + ~CaselessKeyword("end_schema") + ~CaselessKeyword("generic") + ~CaselessKeyword("extensible") + ~CaselessKeyword("pi") + ~CaselessKeyword("of") + ~CaselessKeyword("logical") + ~CaselessKeyword("rolesof") + ~CaselessKeyword("log") + ~CaselessKeyword("integer") + ~CaselessKeyword("or") + ~CaselessKeyword("odd") + ~CaselessKeyword("list") + ~CaselessKeyword("procedure") + ~CaselessKeyword("renamed") + ~CaselessKeyword("optional") + ~CaselessKeyword("log10") + ~CaselessKeyword("end_function") + ~CaselessKeyword("value_unique") + ~CaselessKeyword("fixed") + ~CaselessKeyword("repeat") + ~CaselessKeyword("rule") + ~CaselessKeyword("mod") + ~CaselessKeyword("exists") + ~CaselessKeyword("with") + ~CaselessKeyword("nvl") + ~CaselessKeyword("end_repeat") + ~CaselessKeyword("not") + ~CaselessKeyword("type") + ~CaselessKeyword("otherwise") + ~CaselessKeyword("lobound") + ~CaselessKeyword("query") + ~CaselessKeyword("function") + ~CaselessKeyword("reference") + ~CaselessKeyword("enumeration") + ~CaselessKeyword("oneof") + ~CaselessKeyword("bag") + ~CaselessKeyword("then") + ~CaselessKeyword("end_if") + ~CaselessKeyword("sizeof") + ~CaselessKeyword("end_procedure") + ~CaselessKeyword("end_type") + ~CaselessKeyword("string") + ~CaselessKeyword("end_case") + ~CaselessKeyword("return") + ~CaselessKeyword("end_entity") + ~CaselessKeyword("log2") + ~CaselessKeyword("end_alias") + ~CaselessKeyword("inverse") + ~CaselessKeyword("derive") + ~CaselessKeyword("select") + ~CaselessKeyword("for") + ~CaselessKeyword("set") + ~CaselessKeyword("aggregate") + ~CaselessKeyword("self") + ~CaselessKeyword("array") + ~CaselessKeyword("abs") + ~CaselessKeyword("tan") + ~CaselessKeyword("subtype_constraint") + ~CaselessKeyword("remove") + ~CaselessKeyword("to") + ~CaselessKeyword("acos") + ~CaselessKeyword("xor") + ~CaselessKeyword("skip") + ~CaselessKeyword("end_subtype_constraint") + ~CaselessKeyword("end_local") + ~CaselessKeyword("use") + ~CaselessKeyword("abstract") + ~CaselessKeyword("sqrt") + ~CaselessKeyword("var") + ~CaselessKeyword("until") + ~CaselessKeyword("while") + ~CaselessKeyword("end") + ~CaselessKeyword("typeof") + ~CaselessKeyword("supertype") + ~CaselessKeyword("based_on") + ~CaselessKeyword("true") + ~CaselessKeyword("alias") + ~CaselessKeyword("total_over") + ~CaselessKeyword("andor") + ~CaselessKeyword("cos") + ~CaselessKeyword("div") + ~CaselessKeyword("and") + ~CaselessKeyword("const_e") + ~CaselessKeyword("unique") + ~CaselessKeyword("as") + ~CaselessKeyword("boolean") + ~CaselessKeyword("constant") + ~CaselessKeyword("escape") + ~CaselessKeyword("atan") + ~CaselessKeyword("unknown") + ~CaselessKeyword("asin") + ~CaselessKeyword("usedin") + ~CaselessKeyword("else") + ~CaselessKeyword("blength") + ~CaselessKeyword("value_in") + ~CaselessKeyword("value") + ~CaselessKeyword("begin") + ~CaselessKeyword("binary") + ~CaselessKeyword("end_constant") + originalTextFor(Combine((letter + ZeroOrMore((letter | digit | CaselessLiteral("_"))))))("simple_id") + simple_id = ~CaselessKeyword("format") + ~CaselessKeyword("loindex") + ~CaselessKeyword("in") + ~CaselessKeyword("where") + ~CaselessKeyword("by") + ~CaselessKeyword("subtype") + ~CaselessKeyword("local") + ~CaselessKeyword("sin") + ~CaselessKeyword("case") + ~CaselessKeyword("false") + ~CaselessKeyword("entity") + ~CaselessKeyword("exp") + ~CaselessKeyword("hiindex") + ~CaselessKeyword("generic_entity") + ~CaselessKeyword("number") + ~CaselessKeyword("end_rule") + ~CaselessKeyword("schema") + ~CaselessKeyword("from") + ~CaselessKeyword("length") + ~CaselessKeyword("insert") + ~CaselessKeyword("real") + ~CaselessKeyword("like") + ~CaselessKeyword("hibound") + ~CaselessKeyword("if") + ~CaselessKeyword("end_schema") + ~CaselessKeyword("generic") + ~CaselessKeyword("extensible") + ~CaselessKeyword("pi") + ~CaselessKeyword("of") + ~CaselessKeyword("logical") + ~CaselessKeyword("rolesof") + ~CaselessKeyword("log") + ~CaselessKeyword("integer") + ~CaselessKeyword("or") + ~CaselessKeyword("odd") + ~CaselessKeyword("list") + ~CaselessKeyword("procedure") + ~CaselessKeyword("renamed") + ~CaselessKeyword("optional") + ~CaselessKeyword("log10") + ~CaselessKeyword("end_function") + ~CaselessKeyword("value_unique") + ~CaselessKeyword("fixed") + ~CaselessKeyword("repeat") + ~CaselessKeyword("rule") + ~CaselessKeyword("mod") + ~CaselessKeyword("exists") + ~CaselessKeyword("with") + ~CaselessKeyword("nvl") + ~CaselessKeyword("end_repeat") + ~CaselessKeyword("not") + ~CaselessKeyword("type") + ~CaselessKeyword("otherwise") + ~CaselessKeyword("lobound") + ~CaselessKeyword("query") + ~CaselessKeyword("function") + ~CaselessKeyword("reference") + ~CaselessKeyword("enumeration") + ~CaselessKeyword("oneof") + ~CaselessKeyword("bag") + ~CaselessKeyword("then") + ~CaselessKeyword("end_if") + ~CaselessKeyword("sizeof") + ~CaselessKeyword("end_procedure") + ~CaselessKeyword("end_type") + ~CaselessKeyword("string") + ~CaselessKeyword("end_case") + ~CaselessKeyword("return") + ~CaselessKeyword("end_entity") + ~CaselessKeyword("log2") + ~CaselessKeyword("end_alias") + ~CaselessKeyword("inverse") + ~CaselessKeyword("derive") + ~CaselessKeyword("select") + ~CaselessKeyword("for") + ~CaselessKeyword("set") + ~CaselessKeyword("aggregate") + ~CaselessKeyword("self") + ~CaselessKeyword("array") + ~CaselessKeyword("abs") + ~CaselessKeyword("tan") + ~CaselessKeyword("subtype_constraint") + ~CaselessKeyword("remove") + ~CaselessKeyword("to") + ~CaselessKeyword("acos") + ~CaselessKeyword("skip") + ~CaselessKeyword("end_subtype_constraint") + ~CaselessKeyword("end_local") + ~CaselessKeyword("use") + ~CaselessKeyword("abstract") + ~CaselessKeyword("sqrt") + ~CaselessKeyword("var") + ~CaselessKeyword("until") + ~CaselessKeyword("while") + ~CaselessKeyword("end") + ~CaselessKeyword("typeof") + ~CaselessKeyword("supertype") + ~CaselessKeyword("based_on") + ~CaselessKeyword("true") + ~CaselessKeyword("alias") + ~CaselessKeyword("total_over") + ~CaselessKeyword("andor") + ~CaselessKeyword("cos") + ~CaselessKeyword("div") + ~CaselessKeyword("and") + ~CaselessKeyword("const_e") + ~CaselessKeyword("unique") + ~CaselessKeyword("as") + ~CaselessKeyword("boolean") + ~CaselessKeyword("constant") + ~CaselessKeyword("escape") + ~CaselessKeyword("atan") + ~CaselessKeyword("unknown") + ~CaselessKeyword("asin") + ~CaselessKeyword("usedin") + ~CaselessKeyword("xor") + ~CaselessKeyword("else") + ~CaselessKeyword("blength") + ~CaselessKeyword("value_in") + ~CaselessKeyword("value") + ~CaselessKeyword("begin") + ~CaselessKeyword("binary") + ~CaselessKeyword("end_constant") + originalTextFor(Combine((letter + ZeroOrMore((letter | digit | CaselessLiteral("_"))))))("simple_id") simple_string_literal = (originalTextFor((CaselessLiteral("'") + ZeroOrMore(((CaselessLiteral("'") + CaselessLiteral("'")) | not_quote)) + CaselessLiteral("'")))).addParseAction(tokenMap(str.lower))("simple_string_literal") abstract_entity_declaration = (ABSTRACT)("abstract_entity_declaration") abstract_supertype = ((ABSTRACT + SUPERTYPE + CaselessLiteral(";"))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="abstract_supertype"))("abstract_supertype") @@ -251,224 +251,224 @@ def parse(fn: str) -> mapping.Mapping: constructed_types = ((enumeration_type | select_type)).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="constructed_types"))("constructed_types") reference_clause = ((REFERENCE + FROM + schema_ref + Optional((CaselessLiteral("(") + resource_or_rename + ZeroOrMore((CaselessLiteral(",") + resource_or_rename)) + CaselessLiteral(")"))) + CaselessLiteral(";"))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="reference_clause"))("reference_clause") interface_specification = ((reference_clause | use_clause)).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="interface_specification"))("interface_specification") - parameter_type = Forward()("parameter_type") - qualifier = Forward()("qualifier") - primary = Forward()("primary") - string_type = Forward()("string_type") - where_clause = Forward()("where_clause") - subtype_constraint = Forward()("subtype_constraint") - if_stmt = Forward()("if_stmt") - supertype_factor = Forward()("supertype_factor") - procedure_call_stmt = Forward()("procedure_call_stmt") - repeat_control = Forward()("repeat_control") - until_control = Forward()("until_control") - entity_decl = Forward()("entity_decl") - function_call = Forward()("function_call") - increment = Forward()("increment") - index = Forward()("index") - supertype_expression = Forward()("supertype_expression") - inverse_attr = Forward()("inverse_attr") - function_decl = Forward()("function_decl") - domain_rule = Forward()("domain_rule") - abstract_supertype_declaration = Forward()("abstract_supertype_declaration") - procedure_decl = Forward()("procedure_decl") - constant_decl = Forward()("constant_decl") rule_decl = Forward()("rule_decl") - formal_parameter = Forward()("formal_parameter") - subtype_constraint_decl = Forward()("subtype_constraint_decl") - bound_2 = Forward()("bound_2") - parameter = Forward()("parameter") - schema_body = Forward()("schema_body") - generalized_types = Forward()("generalized_types") - repeat_stmt = Forward()("repeat_stmt") - stmt = Forward()("stmt") - index_qualifier = Forward()("index_qualifier") - expression = Forward()("expression") - logical_expression = Forward()("logical_expression") - case_stmt = Forward()("case_stmt") - case_action = Forward()("case_action") - algorithm_head = Forward()("algorithm_head") - interval_low = Forward()("interval_low") - increment_control = Forward()("increment_control") - supertype_constraint = Forward()("supertype_constraint") - constant_body = Forward()("constant_body") - underlying_type = Forward()("underlying_type") - interval_item = Forward()("interval_item") - assignment_stmt = Forward()("assignment_stmt") - one_of = Forward()("one_of") - actual_parameter_list = Forward()("actual_parameter_list") - inverse_clause = Forward()("inverse_clause") - remark = Forward()("remark") - declaration = Forward()("declaration") - factor = Forward()("factor") - entity_constructor = Forward()("entity_constructor") - alias_stmt = Forward()("alias_stmt") - interval_high = Forward()("interval_high") - repetition = Forward()("repetition") - syntax = Forward()("syntax") - general_aggregation_types = Forward()("general_aggregation_types") - simple_factor = Forward()("simple_factor") - general_bag_type = Forward()("general_bag_type") - index_2 = Forward()("index_2") - general_set_type = Forward()("general_set_type") - local_decl = Forward()("local_decl") - instantiable_type = Forward()("instantiable_type") - return_stmt = Forward()("return_stmt") - derive_clause = Forward()("derive_clause") - compound_stmt = Forward()("compound_stmt") - explicit_attr = Forward()("explicit_attr") - interval = Forward()("interval") - numeric_expression = Forward()("numeric_expression") - qualifiable_factor = Forward()("qualifiable_factor") - derived_attr = Forward()("derived_attr") - aggregate_initializer = Forward()("aggregate_initializer") - set_type = Forward()("set_type") - simple_expression = Forward()("simple_expression") - entity_body = Forward()("entity_body") - subtype_constraint_body = Forward()("subtype_constraint_body") - width_spec = Forward()("width_spec") - schema_decl = Forward()("schema_decl") - element = Forward()("element") - subsuper = Forward()("subsuper") - simple_types = Forward()("simple_types") - bound_spec = Forward()("bound_spec") - selector = Forward()("selector") - bag_type = Forward()("bag_type") - query_expression = Forward()("query_expression") - embedded_remark = Forward()("embedded_remark") - entity_head = Forward()("entity_head") - while_control = Forward()("while_control") - procedure_head = Forward()("procedure_head") - list_type = Forward()("list_type") - concrete_types = Forward()("concrete_types") - width = Forward()("width") - real_type = Forward()("real_type") - aggregation_types = Forward()("aggregation_types") - precision_spec = Forward()("precision_spec") - type_decl = Forward()("type_decl") - general_list_type = Forward()("general_list_type") supertype_term = Forward()("supertype_term") + alias_stmt = Forward()("alias_stmt") + subtype_constraint_decl = Forward()("subtype_constraint_decl") + real_type = Forward()("real_type") + until_control = Forward()("until_control") + remark = Forward()("remark") + syntax = Forward()("syntax") + derived_attr = Forward()("derived_attr") + subtype_constraint = Forward()("subtype_constraint") + aggregation_types = Forward()("aggregation_types") + width = Forward()("width") + simple_expression = Forward()("simple_expression") + explicit_attr = Forward()("explicit_attr") + precision_spec = Forward()("precision_spec") + general_list_type = Forward()("general_list_type") + concrete_types = Forward()("concrete_types") + while_control = Forward()("while_control") aggregate_type = Forward()("aggregate_type") - general_array_type = Forward()("general_array_type") - index_1 = Forward()("index_1") - bound_1 = Forward()("bound_1") - local_variable = Forward()("local_variable") - aggregate_source = Forward()("aggregate_source") - term = Forward()("term") - array_type = Forward()("array_type") + increment_control = Forward()("increment_control") + index_qualifier = Forward()("index_qualifier") supertype_rule = Forward()("supertype_rule") - binary_type = Forward()("binary_type") + subsuper = Forward()("subsuper") + interval_low = Forward()("interval_low") + bound_2 = Forward()("bound_2") + index_1 = Forward()("index_1") + return_stmt = Forward()("return_stmt") + type_decl = Forward()("type_decl") + increment = Forward()("increment") + factor = Forward()("factor") + underlying_type = Forward()("underlying_type") + declaration = Forward()("declaration") + function_decl = Forward()("function_decl") + entity_constructor = Forward()("entity_constructor") + derive_clause = Forward()("derive_clause") + interval_item = Forward()("interval_item") + stmt = Forward()("stmt") + repeat_control = Forward()("repeat_control") + abstract_supertype_declaration = Forward()("abstract_supertype_declaration") + bound_spec = Forward()("bound_spec") + entity_decl = Forward()("entity_decl") + bound_1 = Forward()("bound_1") + inverse_clause = Forward()("inverse_clause") + logical_expression = Forward()("logical_expression") + numeric_expression = Forward()("numeric_expression") + string_type = Forward()("string_type") + formal_parameter = Forward()("formal_parameter") + generalized_types = Forward()("generalized_types") function_head = Forward()("function_head") + constant_decl = Forward()("constant_decl") + actual_parameter_list = Forward()("actual_parameter_list") + subtype_constraint_body = Forward()("subtype_constraint_body") + procedure_decl = Forward()("procedure_decl") + case_action = Forward()("case_action") + term = Forward()("term") + general_aggregation_types = Forward()("general_aggregation_types") + function_call = Forward()("function_call") + where_clause = Forward()("where_clause") + local_variable = Forward()("local_variable") + aggregate_initializer = Forward()("aggregate_initializer") + binary_type = Forward()("binary_type") + index = Forward()("index") + case_stmt = Forward()("case_stmt") + general_set_type = Forward()("general_set_type") + procedure_call_stmt = Forward()("procedure_call_stmt") + instantiable_type = Forward()("instantiable_type") + general_array_type = Forward()("general_array_type") + set_type = Forward()("set_type") + supertype_factor = Forward()("supertype_factor") + index_2 = Forward()("index_2") + qualifiable_factor = Forward()("qualifiable_factor") + algorithm_head = Forward()("algorithm_head") + parameter_type = Forward()("parameter_type") + one_of = Forward()("one_of") + compound_stmt = Forward()("compound_stmt") + primary = Forward()("primary") + schema_decl = Forward()("schema_decl") + embedded_remark = Forward()("embedded_remark") + width_spec = Forward()("width_spec") + assignment_stmt = Forward()("assignment_stmt") + element = Forward()("element") + schema_body = Forward()("schema_body") + procedure_head = Forward()("procedure_head") + general_bag_type = Forward()("general_bag_type") + entity_head = Forward()("entity_head") + entity_body = Forward()("entity_body") + list_type = Forward()("list_type") + expression = Forward()("expression") + parameter = Forward()("parameter") + simple_types = Forward()("simple_types") + bag_type = Forward()("bag_type") + repetition = Forward()("repetition") + constant_body = Forward()("constant_body") + if_stmt = Forward()("if_stmt") + inverse_attr = Forward()("inverse_attr") + interval = Forward()("interval") + query_expression = Forward()("query_expression") + array_type = Forward()("array_type") + simple_factor = Forward()("simple_factor") case_label = Forward()("case_label") - parameter_type << (((generalized_types | simple_types | named_types))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="parameter_type")) - qualifier << (((attribute_qualifier | group_qualifier | index_qualifier))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="qualifier")) - primary << (((literal | (qualifiable_factor + ZeroOrMore(qualifier))))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="primary")) - string_type << (((STRING + Optional(width_spec)))).setParseAction(StringType) - where_clause << (((WHERE + domain_rule + CaselessLiteral(";") + ZeroOrMore((domain_rule + CaselessLiteral(";")))))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="where_clause")) - subtype_constraint << (((OF + CaselessLiteral("(") + supertype_expression + CaselessLiteral(")")))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="subtype_constraint")) - if_stmt << (((IF + logical_expression + THEN + stmt + ZeroOrMore(stmt) + Optional((ELSE + stmt + ZeroOrMore(stmt))) + END_IF + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="if_stmt")) - supertype_factor << (((supertype_term + ZeroOrMore((AND + supertype_term))))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="supertype_factor")) - procedure_call_stmt << ((((built_in_procedure | procedure_ref) + actual_parameter_list + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="procedure_call_stmt")) - repeat_control << (((Optional(increment_control) + Optional(while_control) + Optional(until_control)))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="repeat_control")) - until_control << (((UNTIL + logical_expression))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="until_control")) - entity_decl << (((entity_head + entity_body + END_ENTITY + CaselessLiteral(";")))).setParseAction(EntityDeclaration) - function_call << ((((built_in_function | function_ref) + actual_parameter_list))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="function_call")) - increment << (numeric_expression) - index << (numeric_expression) - supertype_expression << (((supertype_factor + ZeroOrMore((ANDOR + supertype_factor))))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="supertype_expression")) - inverse_attr << (((attribute_decl + CaselessLiteral(":") + Optional(((SET | BAG) + Optional(bound_spec) + OF)) + entity_ref + FOR + Optional((entity_ref + CaselessLiteral("."))) + attribute_ref + CaselessLiteral(";")))).setParseAction(InverseAttribute) - function_decl << (((function_head + algorithm_head + stmt + ZeroOrMore(stmt) + END_FUNCTION + CaselessLiteral(";")))).setParseAction(FunctionDeclaration) - domain_rule << (((Optional((rule_label_id + CaselessLiteral(":"))) + expression))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="domain_rule")) - abstract_supertype_declaration << (((ABSTRACT + SUPERTYPE + Optional(subtype_constraint)))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="abstract_supertype_declaration")) - procedure_decl << (((procedure_head + algorithm_head + ZeroOrMore(stmt) + END_PROCEDURE + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="procedure_decl")) - constant_decl << (((CONSTANT + constant_body + ZeroOrMore(constant_body) + END_CONSTANT + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="constant_decl")) + domain_rule = Forward()("domain_rule") + repeat_stmt = Forward()("repeat_stmt") + supertype_expression = Forward()("supertype_expression") + supertype_constraint = Forward()("supertype_constraint") + interval_high = Forward()("interval_high") + local_decl = Forward()("local_decl") + selector = Forward()("selector") + aggregate_source = Forward()("aggregate_source") + qualifier = Forward()("qualifier") rule_decl << (((rule_head + algorithm_head + ZeroOrMore(stmt) + where_clause + END_RULE + CaselessLiteral(";")))).setParseAction(RuleDeclaration) - formal_parameter << (((parameter_id + ZeroOrMore((CaselessLiteral(",") + parameter_id)) + CaselessLiteral(":") + parameter_type))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="formal_parameter")) - subtype_constraint_decl << (((subtype_constraint_head + subtype_constraint_body + END_SUBTYPE_CONSTRAINT + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="subtype_constraint_decl")) - bound_2 << (numeric_expression) - parameter << (expression) - schema_body << (((ZeroOrMore(interface_specification) + Optional(constant_decl) + ZeroOrMore((declaration | rule_decl))))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="schema_body")) - generalized_types << (((aggregate_type | general_aggregation_types | generic_entity_type | generic_type))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="generalized_types")) - repeat_stmt << (((REPEAT + repeat_control + CaselessLiteral(";") + stmt + ZeroOrMore(stmt) + END_REPEAT + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="repeat_stmt")) - stmt << (((alias_stmt | assignment_stmt | case_stmt | compound_stmt | escape_stmt | if_stmt | null_stmt | procedure_call_stmt | repeat_stmt | return_stmt | skip_stmt))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="stmt")) - index_qualifier << (((CaselessLiteral("[") + index_1 + Optional((CaselessLiteral(":") + index_2)) + CaselessLiteral("]")))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="index_qualifier")) - expression << (((simple_expression + Optional((rel_op_extended + simple_expression))))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="expression")) - logical_expression << (expression) - case_stmt << (((CASE + selector + OF + ZeroOrMore(case_action) + Optional((OTHERWISE + CaselessLiteral(":") + stmt)) + END_CASE + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="case_stmt")) - case_action << (((case_label + ZeroOrMore((CaselessLiteral(",") + case_label)) + CaselessLiteral(":") + stmt))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="case_action")) - algorithm_head << (((ZeroOrMore(declaration) + Optional(constant_decl) + Optional(local_decl)))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="algorithm_head")) - interval_low << (simple_expression) - increment_control << (((variable_id + CaselessLiteral(":=") + bound_1 + TO + bound_2 + Optional((BY + increment))))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="increment_control")) - supertype_constraint << (((abstract_supertype_declaration | abstract_entity_declaration | supertype_rule))).setParseAction(SuperTypeExpression) - constant_body << (((constant_id + CaselessLiteral(":") + instantiable_type + CaselessLiteral(":=") + expression + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="constant_body")) - underlying_type << (((constructed_types | concrete_types))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="underlying_type")) - interval_item << (simple_expression) - assignment_stmt << (((general_ref + ZeroOrMore(qualifier) + CaselessLiteral(":=") + expression + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="assignment_stmt")) - one_of << (((ONEOF + CaselessLiteral("(") + supertype_expression + ZeroOrMore((CaselessLiteral(",") + supertype_expression)) + CaselessLiteral(")")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="one_of")) - actual_parameter_list << (((CaselessLiteral("(") + Optional(parameter) + ZeroOrMore((CaselessLiteral(",") + parameter)) + CaselessLiteral(")")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="actual_parameter_list")) - inverse_clause << (((INVERSE + inverse_attr + ZeroOrMore(inverse_attr)))).setParseAction(AttributeList) - remark << (((embedded_remark | tail_remark))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="remark")) - declaration << (((entity_decl | function_decl | procedure_decl | subtype_constraint_decl | type_decl))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="declaration")) - factor << (((simple_factor + Optional((CaselessLiteral("**") + simple_factor))))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="factor")) - entity_constructor << (((entity_ref + CaselessLiteral("(") + Optional((expression + ZeroOrMore((CaselessLiteral(",") + expression)))) + CaselessLiteral(")")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="entity_constructor")) - alias_stmt << (((ALIAS + variable_id + FOR + general_ref + ZeroOrMore(qualifier) + CaselessLiteral(";") + stmt + ZeroOrMore(stmt) + END_ALIAS + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="alias_stmt")) - interval_high << (simple_expression) - repetition << (numeric_expression) - syntax << (((schema_decl + ZeroOrMore(schema_decl)))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="syntax")) - general_aggregation_types << (((general_array_type | general_bag_type | general_list_type | general_set_type))).setParseAction(AggregationType) - simple_factor << (((aggregate_initializer | interval | query_expression | (Optional(unary_op) + ((CaselessLiteral("(") + expression + CaselessLiteral(")")) | primary)) | entity_constructor | enumeration_reference))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="simple_factor")) - general_bag_type << (((BAG + Optional(bound_spec) + OF + parameter_type))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="general_bag_type")) - index_2 << (index) - general_set_type << (((SET + Optional(bound_spec) + OF + parameter_type))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="general_set_type")) - local_decl << (((LOCAL + local_variable + ZeroOrMore(local_variable) + END_LOCAL + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="local_decl")) - instantiable_type << (((concrete_types | entity_ref))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="instantiable_type")) - return_stmt << (((RETURN + Optional((CaselessLiteral("(") + expression + CaselessLiteral(")"))) + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="return_stmt")) - derive_clause << (((DERIVE + derived_attr + ZeroOrMore(derived_attr)))).setParseAction(AttributeList) - compound_stmt << (((BEGIN + stmt + ZeroOrMore(stmt) + END + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="compound_stmt")) - explicit_attr << (((attribute_decl + ZeroOrMore((CaselessLiteral(",") + attribute_decl)) + CaselessLiteral(":") + Optional(OPTIONAL) + parameter_type + CaselessLiteral(";")))).setParseAction(ExplicitAttribute) - interval << (((CaselessLiteral("{") + interval_low + interval_op + interval_item + interval_op + interval_high + CaselessLiteral("}")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="interval")) - numeric_expression << (simple_expression) - qualifiable_factor << (((function_call | attribute_ref | constant_factor | general_ref | population))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="qualifiable_factor")) - derived_attr << (((attribute_decl + CaselessLiteral(":") + parameter_type + CaselessLiteral(":=") + expression + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="derived_attr")) - aggregate_initializer << (((CaselessLiteral("[") + Optional((element + ZeroOrMore((CaselessLiteral(",") + element)))) + CaselessLiteral("]")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="aggregate_initializer")) - set_type << (((SET + Optional(bound_spec) + OF + instantiable_type))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="set_type")) - simple_expression << (((term + ZeroOrMore((add_like_op + term))))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="simple_expression")) - entity_body << (((ZeroOrMore(explicit_attr) + Optional(derive_clause) + Optional(inverse_clause) + Optional(unique_clause) + Optional(where_clause)))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="entity_body")) - subtype_constraint_body << (((Optional(abstract_supertype) + Optional(total_over) + Optional((supertype_expression + CaselessLiteral(";")))))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="subtype_constraint_body")) - width_spec << (((CaselessLiteral("(") + width + CaselessLiteral(")") + Optional(FIXED)))).setParseAction(WidthSpec) - schema_decl << (((SCHEMA + schema_id + Optional(schema_version_id) + CaselessLiteral(";") + schema_body + END_SCHEMA + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="schema_decl")) - element << (((expression + Optional((CaselessLiteral(":") + repetition))))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="element")) - subsuper << (((Optional(supertype_constraint) + Optional(subtype_declaration)))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="subsuper")) - simple_types << (((binary_type | boolean_type | integer_type | logical_type | number_type | real_type | string_type))).setParseAction(SimpleType) - bound_spec << (((CaselessLiteral("[") + bound_1 + CaselessLiteral(":") + bound_2 + CaselessLiteral("]")))).setParseAction(BoundSpecification) - selector << (expression) - bag_type << (((BAG + Optional(bound_spec) + OF + instantiable_type))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="bag_type")) - query_expression << (((QUERY + CaselessLiteral("(") + variable_id + CaselessLiteral("<*") + aggregate_source + CaselessLiteral("|") + logical_expression + CaselessLiteral(")")))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="query_expression")) - embedded_remark << (((CaselessLiteral("(*") + Optional(remark_tag) + ZeroOrMore(((not_paren_star + ZeroOrMore(not_paren_star)) | lparen_then_not_lparen_star | (CaselessLiteral("*") + ZeroOrMore(CaselessLiteral("*"))) | not_rparen_star_then_rparen | embedded_remark)) + CaselessLiteral("*)")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="embedded_remark")) - entity_head << (((ENTITY + entity_id + subsuper + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="entity_head")) - while_control << (((WHILE + logical_expression))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="while_control")) - procedure_head << (((PROCEDURE + procedure_id + Optional((CaselessLiteral("(") + Optional(VAR) + formal_parameter + ZeroOrMore((CaselessLiteral(";") + Optional(VAR) + formal_parameter)) + CaselessLiteral(")"))) + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="procedure_head")) - list_type << (((LIST + Optional(bound_spec) + OF + Optional(UNIQUE) + instantiable_type))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="list_type")) - concrete_types << (((aggregation_types | simple_types | type_ref))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="concrete_types")) - width << (numeric_expression) - real_type << (((REAL + Optional((CaselessLiteral("(") + precision_spec + CaselessLiteral(")")))))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="real_type")) - aggregation_types << (((array_type | bag_type | list_type | set_type))).setParseAction(AggregationType) - precision_spec << (numeric_expression) - type_decl << (((TYPE + type_id + CaselessLiteral("=") + underlying_type + CaselessLiteral(";") + Optional(where_clause) + END_TYPE + CaselessLiteral(";")))).setParseAction(TypeDeclaration) - general_list_type << (((LIST + Optional(bound_spec) + OF + Optional(UNIQUE) + parameter_type))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="general_list_type")) supertype_term << (((one_of | (CaselessLiteral("(") + supertype_expression + CaselessLiteral(")")) | entity_ref))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="supertype_term")) + alias_stmt << (((ALIAS + variable_id + FOR + general_ref + ZeroOrMore(qualifier) + CaselessLiteral(";") + stmt + ZeroOrMore(stmt) + END_ALIAS + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="alias_stmt")) + subtype_constraint_decl << (((subtype_constraint_head + subtype_constraint_body + END_SUBTYPE_CONSTRAINT + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="subtype_constraint_decl")) + real_type << (((REAL + Optional((CaselessLiteral("(") + precision_spec + CaselessLiteral(")")))))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="real_type")) + until_control << (((UNTIL + logical_expression))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="until_control")) + remark << (((embedded_remark | tail_remark))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="remark")) + syntax << (((schema_decl + ZeroOrMore(schema_decl)))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="syntax")) + derived_attr << (((attribute_decl + CaselessLiteral(":") + parameter_type + CaselessLiteral(":=") + expression + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="derived_attr")) + subtype_constraint << (((OF + CaselessLiteral("(") + supertype_expression + CaselessLiteral(")")))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="subtype_constraint")) + aggregation_types << (((array_type | bag_type | list_type | set_type))).setParseAction(AggregationType) + width << (numeric_expression) + simple_expression << (((term + ZeroOrMore((add_like_op + term))))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="simple_expression")) + explicit_attr << (((attribute_decl + ZeroOrMore((CaselessLiteral(",") + attribute_decl)) + CaselessLiteral(":") + Optional(OPTIONAL) + parameter_type + CaselessLiteral(";")))).setParseAction(ExplicitAttribute) + precision_spec << (numeric_expression) + general_list_type << (((LIST + Optional(bound_spec) + OF + Optional(UNIQUE) + parameter_type))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="general_list_type")) + concrete_types << (((aggregation_types | simple_types | type_ref))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="concrete_types")) + while_control << (((WHILE + logical_expression))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="while_control")) aggregate_type << (((AGGREGATE + Optional((CaselessLiteral(":") + type_label)) + OF + parameter_type))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="aggregate_type")) - general_array_type << (((ARRAY + Optional(bound_spec) + OF + Optional(OPTIONAL) + Optional(UNIQUE) + parameter_type))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="general_array_type")) - index_1 << (index) - bound_1 << (numeric_expression) - local_variable << (((variable_id + ZeroOrMore((CaselessLiteral(",") + variable_id)) + CaselessLiteral(":") + parameter_type + Optional((CaselessLiteral(":=") + expression)) + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="local_variable")) - aggregate_source << (simple_expression) - term << (((factor + ZeroOrMore((multiplication_like_op + factor))))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="term")) - array_type << (((ARRAY + bound_spec + OF + Optional(OPTIONAL) + Optional(UNIQUE) + instantiable_type))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="array_type")) + increment_control << (((variable_id + CaselessLiteral(":=") + bound_1 + TO + bound_2 + Optional((BY + increment))))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="increment_control")) + index_qualifier << (((CaselessLiteral("[") + index_1 + Optional((CaselessLiteral(":") + index_2)) + CaselessLiteral("]")))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="index_qualifier")) supertype_rule << (((SUPERTYPE + subtype_constraint))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="supertype_rule")) - binary_type << (((BINARY + Optional(width_spec)))).setParseAction(BinaryType) + subsuper << (((Optional(supertype_constraint) + Optional(subtype_declaration)))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="subsuper")) + interval_low << (simple_expression) + bound_2 << (numeric_expression) + index_1 << (index) + return_stmt << (((RETURN + Optional((CaselessLiteral("(") + expression + CaselessLiteral(")"))) + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="return_stmt")) + type_decl << (((TYPE + type_id + CaselessLiteral("=") + underlying_type + CaselessLiteral(";") + Optional(where_clause) + END_TYPE + CaselessLiteral(";")))).setParseAction(TypeDeclaration) + increment << (numeric_expression) + factor << (((simple_factor + Optional((CaselessLiteral("**") + simple_factor))))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="factor")) + underlying_type << (((constructed_types | concrete_types))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="underlying_type")) + declaration << (((entity_decl | function_decl | procedure_decl | subtype_constraint_decl | type_decl))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="declaration")) + function_decl << (((function_head + algorithm_head + stmt + ZeroOrMore(stmt) + END_FUNCTION + CaselessLiteral(";")))).setParseAction(FunctionDeclaration) + entity_constructor << (((entity_ref + CaselessLiteral("(") + Optional((expression + ZeroOrMore((CaselessLiteral(",") + expression)))) + CaselessLiteral(")")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="entity_constructor")) + derive_clause << (((DERIVE + derived_attr + ZeroOrMore(derived_attr)))).setParseAction(AttributeList) + interval_item << (simple_expression) + stmt << (((alias_stmt | assignment_stmt | case_stmt | compound_stmt | escape_stmt | if_stmt | null_stmt | procedure_call_stmt | repeat_stmt | return_stmt | skip_stmt))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="stmt")) + repeat_control << (((Optional(increment_control) + Optional(while_control) + Optional(until_control)))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="repeat_control")) + abstract_supertype_declaration << (((ABSTRACT + SUPERTYPE + Optional(subtype_constraint)))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="abstract_supertype_declaration")) + bound_spec << (((CaselessLiteral("[") + bound_1 + CaselessLiteral(":") + bound_2 + CaselessLiteral("]")))).setParseAction(BoundSpecification) + entity_decl << (((entity_head + entity_body + END_ENTITY + CaselessLiteral(";")))).setParseAction(EntityDeclaration) + bound_1 << (numeric_expression) + inverse_clause << (((INVERSE + inverse_attr + ZeroOrMore(inverse_attr)))).setParseAction(AttributeList) + logical_expression << (expression) + numeric_expression << (simple_expression) + string_type << (((STRING + Optional(width_spec)))).setParseAction(StringType) + formal_parameter << (((parameter_id + ZeroOrMore((CaselessLiteral(",") + parameter_id)) + CaselessLiteral(":") + parameter_type))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="formal_parameter")) + generalized_types << (((aggregate_type | general_aggregation_types | generic_entity_type | generic_type))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="generalized_types")) function_head << (((FUNCTION + function_id + Optional((CaselessLiteral("(") + formal_parameter + ZeroOrMore((CaselessLiteral(";") + formal_parameter)) + CaselessLiteral(")"))) + CaselessLiteral(":") + parameter_type + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="function_head")) + constant_decl << (((CONSTANT + constant_body + ZeroOrMore(constant_body) + END_CONSTANT + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="constant_decl")) + actual_parameter_list << (((CaselessLiteral("(") + Optional(parameter) + ZeroOrMore((CaselessLiteral(",") + parameter)) + CaselessLiteral(")")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="actual_parameter_list")) + subtype_constraint_body << (((Optional(abstract_supertype) + Optional(total_over) + Optional((supertype_expression + CaselessLiteral(";")))))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="subtype_constraint_body")) + procedure_decl << (((procedure_head + algorithm_head + ZeroOrMore(stmt) + END_PROCEDURE + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="procedure_decl")) + case_action << (((case_label + ZeroOrMore((CaselessLiteral(",") + case_label)) + CaselessLiteral(":") + stmt))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="case_action")) + term << (((factor + ZeroOrMore((multiplication_like_op + factor))))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="term")) + general_aggregation_types << (((general_array_type | general_bag_type | general_list_type | general_set_type))).setParseAction(AggregationType) + function_call << ((((built_in_function | function_ref) + actual_parameter_list))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="function_call")) + where_clause << (((WHERE + domain_rule + CaselessLiteral(";") + ZeroOrMore((domain_rule + CaselessLiteral(";")))))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="where_clause")) + local_variable << (((variable_id + ZeroOrMore((CaselessLiteral(",") + variable_id)) + CaselessLiteral(":") + parameter_type + Optional((CaselessLiteral(":=") + expression)) + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="local_variable")) + aggregate_initializer << (((CaselessLiteral("[") + Optional((element + ZeroOrMore((CaselessLiteral(",") + element)))) + CaselessLiteral("]")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="aggregate_initializer")) + binary_type << (((BINARY + Optional(width_spec)))).setParseAction(BinaryType) + index << (numeric_expression) + case_stmt << (((CASE + selector + OF + ZeroOrMore(case_action) + Optional((OTHERWISE + CaselessLiteral(":") + stmt)) + END_CASE + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="case_stmt")) + general_set_type << (((SET + Optional(bound_spec) + OF + parameter_type))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="general_set_type")) + procedure_call_stmt << ((((built_in_procedure | procedure_ref) + actual_parameter_list + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="procedure_call_stmt")) + instantiable_type << (((concrete_types | entity_ref))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="instantiable_type")) + general_array_type << (((ARRAY + Optional(bound_spec) + OF + Optional(OPTIONAL) + Optional(UNIQUE) + parameter_type))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="general_array_type")) + set_type << (((SET + Optional(bound_spec) + OF + instantiable_type))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="set_type")) + supertype_factor << (((supertype_term + ZeroOrMore((AND + supertype_term))))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="supertype_factor")) + index_2 << (index) + qualifiable_factor << (((function_call | attribute_ref | constant_factor | general_ref | population))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="qualifiable_factor")) + algorithm_head << (((ZeroOrMore(declaration) + Optional(constant_decl) + Optional(local_decl)))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="algorithm_head")) + parameter_type << (((generalized_types | simple_types | named_types))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="parameter_type")) + one_of << (((ONEOF + CaselessLiteral("(") + supertype_expression + ZeroOrMore((CaselessLiteral(",") + supertype_expression)) + CaselessLiteral(")")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="one_of")) + compound_stmt << (((BEGIN + stmt + ZeroOrMore(stmt) + END + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="compound_stmt")) + primary << (((literal | (qualifiable_factor + ZeroOrMore(qualifier))))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="primary")) + schema_decl << (((SCHEMA + schema_id + Optional(schema_version_id) + CaselessLiteral(";") + schema_body + END_SCHEMA + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="schema_decl")) + embedded_remark << (((CaselessLiteral("(*") + Optional(remark_tag) + ZeroOrMore(((not_paren_star + ZeroOrMore(not_paren_star)) | lparen_then_not_lparen_star | (CaselessLiteral("*") + ZeroOrMore(CaselessLiteral("*"))) | not_rparen_star_then_rparen | embedded_remark)) + CaselessLiteral("*)")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="embedded_remark")) + width_spec << (((CaselessLiteral("(") + width + CaselessLiteral(")") + Optional(FIXED)))).setParseAction(WidthSpec) + assignment_stmt << (((general_ref + ZeroOrMore(qualifier) + CaselessLiteral(":=") + expression + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="assignment_stmt")) + element << (((expression + Optional((CaselessLiteral(":") + repetition))))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="element")) + schema_body << (((ZeroOrMore(interface_specification) + Optional(constant_decl) + ZeroOrMore((declaration | rule_decl))))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="schema_body")) + procedure_head << (((PROCEDURE + procedure_id + Optional((CaselessLiteral("(") + Optional(VAR) + formal_parameter + ZeroOrMore((CaselessLiteral(";") + Optional(VAR) + formal_parameter)) + CaselessLiteral(")"))) + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="procedure_head")) + general_bag_type << (((BAG + Optional(bound_spec) + OF + parameter_type))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="general_bag_type")) + entity_head << (((ENTITY + entity_id + subsuper + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="entity_head")) + entity_body << (((ZeroOrMore(explicit_attr) + Optional(derive_clause) + Optional(inverse_clause) + Optional(unique_clause) + Optional(where_clause)))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="entity_body")) + list_type << (((LIST + Optional(bound_spec) + OF + Optional(UNIQUE) + instantiable_type))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="list_type")) + expression << (((simple_expression + Optional((rel_op_extended + simple_expression))))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="expression")) + parameter << (expression) + simple_types << (((binary_type | boolean_type | integer_type | logical_type | number_type | real_type | string_type))).setParseAction(SimpleType) + bag_type << (((BAG + Optional(bound_spec) + OF + instantiable_type))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="bag_type")) + repetition << (numeric_expression) + constant_body << (((constant_id + CaselessLiteral(":") + instantiable_type + CaselessLiteral(":=") + expression + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="constant_body")) + if_stmt << (((IF + logical_expression + THEN + stmt + ZeroOrMore(stmt) + Optional((ELSE + stmt + ZeroOrMore(stmt))) + END_IF + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="if_stmt")) + inverse_attr << (((attribute_decl + CaselessLiteral(":") + Optional(((SET | BAG) + Optional(bound_spec) + OF)) + entity_ref + FOR + Optional((entity_ref + CaselessLiteral("."))) + attribute_ref + CaselessLiteral(";")))).setParseAction(InverseAttribute) + interval << (((CaselessLiteral("{") + interval_low + interval_op + interval_item + interval_op + interval_high + CaselessLiteral("}")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="interval")) + query_expression << (((QUERY + CaselessLiteral("(") + variable_id + CaselessLiteral("<*") + aggregate_source + CaselessLiteral("|") + logical_expression + CaselessLiteral(")")))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="query_expression")) + array_type << (((ARRAY + bound_spec + OF + Optional(OPTIONAL) + Optional(UNIQUE) + instantiable_type))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="array_type")) + simple_factor << (((aggregate_initializer | interval | query_expression | (Optional(unary_op) + ((CaselessLiteral("(") + expression + CaselessLiteral(")")) | primary)) | entity_constructor | enumeration_reference))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="simple_factor")) case_label << (expression) + domain_rule << (((Optional((rule_label_id + CaselessLiteral(":"))) + expression))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="domain_rule")) + repeat_stmt << (((REPEAT + repeat_control + CaselessLiteral(";") + stmt + ZeroOrMore(stmt) + END_REPEAT + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="repeat_stmt")) + supertype_expression << (((supertype_factor + ZeroOrMore((ANDOR + supertype_factor))))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="supertype_expression")) + supertype_constraint << (((abstract_supertype_declaration | abstract_entity_declaration | supertype_rule))).setParseAction(SuperTypeExpression) + interval_high << (simple_expression) + local_decl << (((LOCAL + local_variable + ZeroOrMore(local_variable) + END_LOCAL + CaselessLiteral(";")))).setParseAction(lambda s, loc, t: ListNode(s, loc, t, rule="local_decl")) + selector << (expression) + aggregate_source << (simple_expression) + qualifier << (((attribute_qualifier | group_qualifier | index_qualifier))).setParseAction(lambda s, loc, t: Node(s, loc, t, rule="qualifier")) syntax.ignore("--" + restOfLine) syntax.ignore(Regex(r"\((?:\*(?:[^*]*\*+)+?\))")) diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC2X3.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC2X3.py index 7198964e52..bf18bf959d 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC2X3.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC2X3.py @@ -95,12 +95,12 @@ EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): if not inst: return express_set([]) - schema_name = inst.is_a(True).split('.')[0].upper() + schema_name = inst.is_a(True).split('.')[0].lower() def inner(): decl = ifcopenshell.ifcopenshell_wrapper.schema_by_name(schema_name).declaration_by_name(inst.is_a()) while decl: - yield '.'.join((schema_name, decl.name().upper())) + yield '.'.join((schema_name, decl.name().lower())) if isinstance(decl, ifcopenshell.ifcopenshell_wrapper.entity): decl = decl.supertype() else: @@ -3592,7 +3592,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCompoundPlaneAngleMeasure_WR1: SCOPE = 'type' @@ -3655,7 +3655,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'italic', 'oblique'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -3664,7 +3664,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -3673,7 +3673,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -3781,7 +3781,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['left', 'right', 'center', 'justify'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -3790,7 +3790,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['none', 'underline', 'overline', 'line-through', 'blink'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -3799,7 +3799,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['capitalize', 'uppercase', 'lowercase', 'none'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class Ifc2DCompositeCurve_WR1: SCOPE = 'entity' @@ -4150,7 +4150,7 @@ class IfcBlobTexture_WR11: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['BMP', 'JPG', 'GIF', 'PNG'])) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['BMP', 'JPG', 'GIF', 'PNG']) is not False class IfcBoilerType_WR1: SCOPE = 'entity' @@ -4749,7 +4749,7 @@ class IfcDimensionCalloutRelationship_WR11: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['primary', 'secondary'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['primary', 'secondary']) is not False class IfcDimensionCalloutRelationship_WR12: SCOPE = 'entity' @@ -4832,7 +4832,7 @@ class IfcDimensionPair_WR11: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['chained', 'parallel'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['chained', 'parallel']) is not False class IfcDimensionPair_WR12: SCOPE = 'entity' @@ -4947,7 +4947,7 @@ class IfcDraughtingPreDefinedColour_WR31: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer']) is not False class IfcDraughtingPreDefinedCurveFont_WR31: SCOPE = 'entity' @@ -4956,7 +4956,7 @@ class IfcDraughtingPreDefinedCurveFont_WR31: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer']) is not False class IfcDraughtingPreDefinedTextFont_WR31: SCOPE = 'entity' @@ -4965,7 +4965,7 @@ class IfcDraughtingPreDefinedTextFont_WR31: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['ISO 3098-1 font A', 'ISO 3098-1 font B'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['ISO 3098-1 font A', 'ISO 3098-1 font B']) is not False class IfcDuctFittingType_WR2: SCOPE = 'entity' @@ -5795,7 +5795,7 @@ class IfcPreDefinedDimensionSymbol_WR31: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['arc length', 'conical taper', 'counterbore', 'countersink', 'depth', 'diameter', 'plus minus', 'radius', 'slope', 'spherical diameter', 'spherical radius', 'square'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['arc length', 'conical taper', 'counterbore', 'countersink', 'depth', 'diameter', 'plus minus', 'radius', 'slope', 'spherical diameter', 'spherical radius', 'square']) is not False class IfcPreDefinedPointMarkerSymbol_WR31: SCOPE = 'entity' @@ -5804,7 +5804,7 @@ class IfcPreDefinedPointMarkerSymbol_WR31: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['asterisk', 'circle', 'dot', 'plus', 'square', 'triangle', 'x'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['asterisk', 'circle', 'dot', 'plus', 'square', 'triangle', 'x']) is not False class IfcPreDefinedTerminatorSymbol_WR31: SCOPE = 'entity' @@ -5813,7 +5813,7 @@ class IfcPreDefinedTerminatorSymbol_WR31: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['blanked arrow', 'blanked box', 'blanked dot', 'dimension origin', 'filled arrow', 'filled box', 'filled dot', 'integral symbol', 'open arrow', 'slash', 'unfilled arrow'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['blanked arrow', 'blanked box', 'blanked dot', 'dimension origin', 'filled arrow', 'filled box', 'filled dot', 'integral symbol', 'open arrow', 'slash', 'unfilled arrow']) is not False class IfcProcedure_WR1: SCOPE = 'entity' @@ -6799,7 +6799,7 @@ class IfcStructuredDimensionCallout_WR31: @staticmethod def __call__(self): contents = express_getattr(self, 'Contents', INDETERMINATE) - assert (sizeof([ato for ato in [con for con in express_getattr(self, 'contents', INDETERMINATE) if 'IFC2X3.IFCANNOTATIONTEXTOCCURRENCE' in typeof(con)] if not express_getattr(express_getattr(ato, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['dimension value', 'tolerance value', 'unit text', 'prefix text', 'suffix text'])]) == 0) is not False + assert (sizeof([ato for ato in [con for con in express_getattr(self, 'contents', INDETERMINATE) if 'IFC2X3.IFCANNOTATIONTEXTOCCURRENCE' in typeof(con)] if not express_getattr(express_getattr(ato, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['dimension value', 'tolerance value', 'unit text', 'prefix text', 'suffix text']]) == 0) is not False class IfcStyledItem_WR11: SCOPE = 'entity' diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4.py index 59f66094f5..d0cec54d3b 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4.py @@ -95,12 +95,12 @@ EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): if not inst: return express_set([]) - schema_name = inst.is_a(True).split('.')[0].upper() + schema_name = inst.is_a(True).split('.')[0].lower() def inner(): decl = ifcopenshell.ifcopenshell_wrapper.schema_by_name(schema_name).declaration_by_name(inst.is_a()) while decl: - yield '.'.join((schema_name, decl.name().upper())) + yield '.'.join((schema_name, decl.name().lower())) if isinstance(decl, ifcopenshell.ifcopenshell_wrapper.entity): decl = decl.supertype() else: @@ -4326,7 +4326,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -4407,7 +4407,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'italic', 'oblique'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -4416,7 +4416,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -4425,7 +4425,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -4524,7 +4524,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['left', 'right', 'center', 'justify'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -4533,7 +4533,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['none', 'underline', 'overline', 'line-through', 'blink'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -4542,7 +4542,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['capitalize', 'uppercase', 'lowercase', 'none'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -5191,7 +5191,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['BMP', 'JPG', 'GIF', 'PNG'])) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['BMP', 'JPG', 'GIF', 'PNG']) is not False class IfcBlobTexture_RasterCodeByteStream: SCOPE = 'entity' @@ -6593,7 +6593,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -6602,7 +6602,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X1.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X1.py index c3591ce6d6..cee2b993a9 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X1.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X1.py @@ -95,12 +95,12 @@ EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): if not inst: return express_set([]) - schema_name = inst.is_a(True).split('.')[0].upper() + schema_name = inst.is_a(True).split('.')[0].lower() def inner(): decl = ifcopenshell.ifcopenshell_wrapper.schema_by_name(schema_name).declaration_by_name(inst.is_a()) while decl: - yield '.'.join((schema_name, decl.name().upper())) + yield '.'.join((schema_name, decl.name().lower())) if isinstance(decl, ifcopenshell.ifcopenshell_wrapper.entity): decl = decl.supertype() else: @@ -4417,7 +4417,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -4498,7 +4498,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'italic', 'oblique'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -4507,7 +4507,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -4516,7 +4516,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -4615,7 +4615,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['left', 'right', 'center', 'justify'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -4624,7 +4624,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['none', 'underline', 'overline', 'line-through', 'blink'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -4633,7 +4633,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['capitalize', 'uppercase', 'lowercase', 'none'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -5282,7 +5282,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['BMP', 'JPG', 'GIF', 'PNG'])) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['BMP', 'JPG', 'GIF', 'PNG']) is not False class IfcBlobTexture_RasterCodeByteStream: SCOPE = 'entity' @@ -6684,7 +6684,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -6693,7 +6693,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X2.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X2.py index 7fed99e8cd..9a5ba324f9 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X2.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X2.py @@ -95,12 +95,12 @@ EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): if not inst: return express_set([]) - schema_name = inst.is_a(True).split('.')[0].upper() + schema_name = inst.is_a(True).split('.')[0].lower() def inner(): decl = ifcopenshell.ifcopenshell_wrapper.schema_by_name(schema_name).declaration_by_name(inst.is_a()) while decl: - yield '.'.join((schema_name, decl.name().upper())) + yield '.'.join((schema_name, decl.name().lower())) if isinstance(decl, ifcopenshell.ifcopenshell_wrapper.entity): decl = decl.supertype() else: @@ -4568,7 +4568,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -4649,7 +4649,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'italic', 'oblique'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -4658,7 +4658,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -4667,7 +4667,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -4766,7 +4766,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['left', 'right', 'center', 'justify'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -4775,7 +4775,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['none', 'underline', 'overline', 'line-through', 'blink'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -4784,7 +4784,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['capitalize', 'uppercase', 'lowercase', 'none'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -5463,7 +5463,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['BMP', 'JPG', 'GIF', 'PNG'])) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['BMP', 'JPG', 'GIF', 'PNG']) is not False class IfcBlobTexture_RasterCodeByteStream: SCOPE = 'entity' @@ -6905,7 +6905,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -6914,7 +6914,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3.py index 11a43dd8dc..43835163a0 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3.py @@ -95,12 +95,12 @@ EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): if not inst: return express_set([]) - schema_name = inst.is_a(True).split('.')[0].upper() + schema_name = inst.is_a(True).split('.')[0].lower() def inner(): decl = ifcopenshell.ifcopenshell_wrapper.schema_by_name(schema_name).declaration_by_name(inst.is_a()) while decl: - yield '.'.join((schema_name, decl.name().upper())) + yield '.'.join((schema_name, decl.name().lower())) if isinstance(decl, ifcopenshell.ifcopenshell_wrapper.entity): decl = decl.supertype() else: @@ -5193,7 +5193,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -5274,7 +5274,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'italic', 'oblique'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -5283,7 +5283,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -5292,7 +5292,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -5391,7 +5391,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['left', 'right', 'center', 'justify'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -5400,7 +5400,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['none', 'underline', 'overline', 'line-through', 'blink'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -5409,7 +5409,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['capitalize', 'uppercase', 'lowercase', 'none'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -6136,7 +6136,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['BMP', 'JPG', 'GIF', 'PNG'])) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['BMP', 'JPG', 'GIF', 'PNG']) is not False class IfcBoiler_CorrectPredefinedType: SCOPE = 'entity' @@ -7725,7 +7725,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -7734,7 +7734,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD1.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD1.py index 33e79b8fa3..3a5d002954 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD1.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD1.py @@ -95,12 +95,12 @@ EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): if not inst: return express_set([]) - schema_name = inst.is_a(True).split('.')[0].upper() + schema_name = inst.is_a(True).split('.')[0].lower() def inner(): decl = ifcopenshell.ifcopenshell_wrapper.schema_by_name(schema_name).declaration_by_name(inst.is_a()) while decl: - yield '.'.join((schema_name, decl.name().upper())) + yield '.'.join((schema_name, decl.name().lower())) if isinstance(decl, ifcopenshell.ifcopenshell_wrapper.entity): decl = decl.supertype() else: @@ -5143,7 +5143,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -5224,7 +5224,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'italic', 'oblique'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -5233,7 +5233,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -5242,7 +5242,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -5341,7 +5341,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['left', 'right', 'center', 'justify'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -5350,7 +5350,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['none', 'underline', 'overline', 'line-through', 'blink'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -5359,7 +5359,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['capitalize', 'uppercase', 'lowercase', 'none'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -6086,7 +6086,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['BMP', 'JPG', 'GIF', 'PNG'])) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['BMP', 'JPG', 'GIF', 'PNG']) is not False class IfcBoiler_CorrectPredefinedType: SCOPE = 'entity' @@ -7674,7 +7674,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -7683,7 +7683,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD2.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD2.py index 0640df9d10..8af2b54a25 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD2.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD2.py @@ -95,12 +95,12 @@ EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): if not inst: return express_set([]) - schema_name = inst.is_a(True).split('.')[0].upper() + schema_name = inst.is_a(True).split('.')[0].lower() def inner(): decl = ifcopenshell.ifcopenshell_wrapper.schema_by_name(schema_name).declaration_by_name(inst.is_a()) while decl: - yield '.'.join((schema_name, decl.name().upper())) + yield '.'.join((schema_name, decl.name().lower())) if isinstance(decl, ifcopenshell.ifcopenshell_wrapper.entity): decl = decl.supertype() else: @@ -5147,7 +5147,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -5228,7 +5228,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'italic', 'oblique'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -5237,7 +5237,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -5246,7 +5246,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -5345,7 +5345,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['left', 'right', 'center', 'justify'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -5354,7 +5354,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['none', 'underline', 'overline', 'line-through', 'blink'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -5363,7 +5363,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['capitalize', 'uppercase', 'lowercase', 'none'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -6090,7 +6090,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['BMP', 'JPG', 'GIF', 'PNG'])) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['BMP', 'JPG', 'GIF', 'PNG']) is not False class IfcBoiler_CorrectPredefinedType: SCOPE = 'entity' @@ -7678,7 +7678,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -7687,7 +7687,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC1.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC1.py index 953496027f..c24ab79c5e 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC1.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC1.py @@ -95,12 +95,12 @@ EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): if not inst: return express_set([]) - schema_name = inst.is_a(True).split('.')[0].upper() + schema_name = inst.is_a(True).split('.')[0].lower() def inner(): decl = ifcopenshell.ifcopenshell_wrapper.schema_by_name(schema_name).declaration_by_name(inst.is_a()) while decl: - yield '.'.join((schema_name, decl.name().upper())) + yield '.'.join((schema_name, decl.name().lower())) if isinstance(decl, ifcopenshell.ifcopenshell_wrapper.entity): decl = decl.supertype() else: @@ -5128,7 +5128,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -5209,7 +5209,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'italic', 'oblique'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -5218,7 +5218,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -5227,7 +5227,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -5326,7 +5326,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['left', 'right', 'center', 'justify'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -5335,7 +5335,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['none', 'underline', 'overline', 'line-through', 'blink'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -5344,7 +5344,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['capitalize', 'uppercase', 'lowercase', 'none'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -6023,7 +6023,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['BMP', 'JPG', 'GIF', 'PNG'])) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['BMP', 'JPG', 'GIF', 'PNG']) is not False class IfcBlobTexture_RasterCodeByteStream: SCOPE = 'entity' @@ -7577,7 +7577,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -7586,7 +7586,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC2.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC2.py index 132d65c79c..bb1193d2ed 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC2.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC2.py @@ -95,12 +95,12 @@ EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): if not inst: return express_set([]) - schema_name = inst.is_a(True).split('.')[0].upper() + schema_name = inst.is_a(True).split('.')[0].lower() def inner(): decl = ifcopenshell.ifcopenshell_wrapper.schema_by_name(schema_name).declaration_by_name(inst.is_a()) while decl: - yield '.'.join((schema_name, decl.name().upper())) + yield '.'.join((schema_name, decl.name().lower())) if isinstance(decl, ifcopenshell.ifcopenshell_wrapper.entity): decl = decl.supertype() else: @@ -5169,7 +5169,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -5250,7 +5250,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'italic', 'oblique'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -5259,7 +5259,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -5268,7 +5268,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -5367,7 +5367,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['left', 'right', 'center', 'justify'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -5376,7 +5376,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['none', 'underline', 'overline', 'line-through', 'blink'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -5385,7 +5385,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['capitalize', 'uppercase', 'lowercase', 'none'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -6111,7 +6111,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['BMP', 'JPG', 'GIF', 'PNG'])) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['BMP', 'JPG', 'GIF', 'PNG']) is not False class IfcBlobTexture_RasterCodeByteStream: SCOPE = 'entity' @@ -7665,7 +7665,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -7674,7 +7674,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC3.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC3.py index 07f5c32400..afb04e0316 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC3.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC3.py @@ -95,12 +95,12 @@ EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): if not inst: return express_set([]) - schema_name = inst.is_a(True).split('.')[0].upper() + schema_name = inst.is_a(True).split('.')[0].lower() def inner(): decl = ifcopenshell.ifcopenshell_wrapper.schema_by_name(schema_name).declaration_by_name(inst.is_a()) while decl: - yield '.'.join((schema_name, decl.name().upper())) + yield '.'.join((schema_name, decl.name().lower())) if isinstance(decl, ifcopenshell.ifcopenshell_wrapper.entity): decl = decl.supertype() else: @@ -5158,7 +5158,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -5239,7 +5239,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'italic', 'oblique'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -5248,7 +5248,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -5257,7 +5257,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -5356,7 +5356,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['left', 'right', 'center', 'justify'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -5365,7 +5365,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['none', 'underline', 'overline', 'line-through', 'blink'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -5374,7 +5374,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['capitalize', 'uppercase', 'lowercase', 'none'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -6100,7 +6100,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['BMP', 'JPG', 'GIF', 'PNG'])) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['BMP', 'JPG', 'GIF', 'PNG']) is not False class IfcBlobTexture_RasterCodeByteStream: SCOPE = 'entity' @@ -7698,7 +7698,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -7707,7 +7707,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC4.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC4.py index ef692c6a20..3373713ed5 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC4.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC4.py @@ -95,12 +95,12 @@ EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): if not inst: return express_set([]) - schema_name = inst.is_a(True).split('.')[0].upper() + schema_name = inst.is_a(True).split('.')[0].lower() def inner(): decl = ifcopenshell.ifcopenshell_wrapper.schema_by_name(schema_name).declaration_by_name(inst.is_a()) while decl: - yield '.'.join((schema_name, decl.name().upper())) + yield '.'.join((schema_name, decl.name().lower())) if isinstance(decl, ifcopenshell.ifcopenshell_wrapper.entity): decl = decl.supertype() else: @@ -5174,7 +5174,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -5255,7 +5255,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'italic', 'oblique'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -5264,7 +5264,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -5273,7 +5273,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -5372,7 +5372,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['left', 'right', 'center', 'justify'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -5381,7 +5381,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['none', 'underline', 'overline', 'line-through', 'blink'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -5390,7 +5390,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['capitalize', 'uppercase', 'lowercase', 'none'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -6116,7 +6116,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['BMP', 'JPG', 'GIF', 'PNG'])) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['BMP', 'JPG', 'GIF', 'PNG']) is not False class IfcBlobTexture_RasterCodeByteStream: SCOPE = 'entity' @@ -7714,7 +7714,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -7723,7 +7723,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity' diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_TC1.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_TC1.py index 58a63f7211..aa0fa20a31 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_TC1.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_TC1.py @@ -95,12 +95,12 @@ EXPRESS_ONE_BASED_INDEXING = 1 def typeof(inst): if not inst: return express_set([]) - schema_name = inst.is_a(True).split('.')[0].upper() + schema_name = inst.is_a(True).split('.')[0].lower() def inner(): decl = ifcopenshell.ifcopenshell_wrapper.schema_by_name(schema_name).declaration_by_name(inst.is_a()) while decl: - yield '.'.join((schema_name, decl.name().upper())) + yield '.'.join((schema_name, decl.name().lower())) if isinstance(decl, ifcopenshell.ifcopenshell_wrapper.entity): decl = decl.supertype() else: @@ -5131,7 +5131,7 @@ class IfcBoxAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['top-left', 'top-middle', 'top-right', 'middle-left', 'center', 'middle-right', 'bottom-left', 'bottom-middle', 'bottom-right']) is not False class IfcCardinalPointReference_GreaterThanZero: SCOPE = 'type' @@ -5212,7 +5212,7 @@ class IfcFontStyle_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'italic', 'oblique'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'italic', 'oblique']) is not False class IfcFontVariant_WR1: SCOPE = 'type' @@ -5221,7 +5221,7 @@ class IfcFontVariant_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps']) is not False class IfcFontWeight_WR1: SCOPE = 'type' @@ -5230,7 +5230,7 @@ class IfcFontWeight_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['normal', 'small-caps', '100', '200', '300', '400', '500', '600', '700', '800', '900']) is not False class IfcHeatingValueMeasure_WR1: SCOPE = 'type' @@ -5329,7 +5329,7 @@ class IfcTextAlignment_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['left', 'right', 'center', 'justify'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['left', 'right', 'center', 'justify']) is not False class IfcTextDecoration_WR1: SCOPE = 'type' @@ -5338,7 +5338,7 @@ class IfcTextDecoration_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['none', 'underline', 'overline', 'line-through', 'blink'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['none', 'underline', 'overline', 'line-through', 'blink']) is not False class IfcTextTransformation_WR1: SCOPE = 'type' @@ -5347,7 +5347,7 @@ class IfcTextTransformation_WR1: @staticmethod def __call__(self): - assert (express_getattr(self, 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['capitalize', 'uppercase', 'lowercase', 'none'])) is not False + assert (express_getattr(self, 'lower', INDETERMINATE)() in ['capitalize', 'uppercase', 'lowercase', 'none']) is not False class IfcActorRole_WR1: SCOPE = 'entity' @@ -6074,7 +6074,7 @@ class IfcBlobTexture_SupportedRasterFormat: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['BMP', 'JPG', 'GIF', 'PNG'])) is not False + assert (express_getattr(express_getattr(self, 'RasterFormat', INDETERMINATE), 'lower', INDETERMINATE)() in ['BMP', 'JPG', 'GIF', 'PNG']) is not False class IfcBoiler_CorrectPredefinedType: SCOPE = 'entity' @@ -7651,7 +7651,7 @@ class IfcDraughtingPreDefinedColour_PreDefinedColourNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['black', 'red', 'green', 'blue', 'yellow', 'magenta', 'cyan', 'white', 'by layer']) is not False class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: SCOPE = 'entity' @@ -7660,7 +7660,7 @@ class IfcDraughtingPreDefinedCurveFont_PreDefinedCurveFontNames: @staticmethod def __call__(self): - assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in map(express_getattr(str, 'lower', INDETERMINATE), ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer'])) is not False + assert (express_getattr(express_getattr(self, 'Name', INDETERMINATE), 'lower', INDETERMINATE)() in ['continuous', 'chain', 'chain double dash', 'dashed', 'dotted', 'by layer']) is not False class IfcDuctFitting_CorrectPredefinedType: SCOPE = 'entity'