RULE building_element_maps_into_building_section_or_space FOR (mapped_item, representation_relationship_with_transformation); WHERE wr1: SIZEOF (QUERY (mi <* mapped_item | (SIZEOF (QUERY (pdr <* USEDIN(mi.mapping_source.mapped_representation, 'LOCATION_IN_BUILDING_MIM.'+ 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | SIZEOF (TYPEOF (pdr.definition.definition) * ['LOCATION_IN_BUILDING_MIM.BUILDING_ELEMENT', 'LOCATION_IN_BUILDING_MIM.FIXTURE_EQUIPMENT_ELEMENT', 'LOCATION_IN_BUILDING_MIM.SERVICE_ELEMENT', 'LOCATION_IN_BUILDING_MIM.STRUCTURE_ENCLOSURE_ELEMENT'] ) = 1 )) >= 1) AND (SIZEOF (QUERY (r <* USEDIN (mi,'LOCATION_IN_BUILDING_MIM.REPRESENTATION.ITEMS') | SIZEOF (QUERY (pdr <* USEDIN(r,'LOCATION_IN_BUILDING_MIM.'+ 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | SIZEOF (TYPEOF (pdr.definition.definition) * ['LOCATION_IN_BUILDING_MIM.BUILDING_SECTION', 'LOCATION_IN_BUILDING_MIM.SPACE_ELEMENT'] ) >= 1 )) =1 )) = 0) )) = 0; wr2: SIZEOF (QUERY (rrwt <* representation_relationship_with_transformation | (SIZEOF (QUERY (pdr <* USEDIN(rrwt\representation_relationship.rep_2, 'LOCATION_IN_BUILDING_MIM.'+ 'PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | SIZEOF (TYPEOF (pdr.definition.definition) * ['LOCATION_IN_BUILDING_MIM.BUILDING_ELEMENT', 'LOCATION_IN_BUILDING_MIM.FIXTURE_EQUIPMENT_ELEMENT', 'LOCATION_IN_BUILDING_MIM.SERVICE_ELEMENT', 'LOCATION_IN_BUILDING_MIM.STRUCTURE_ENCLOSURE_ELEMENT']) = 1 )) >= 1) AND (SIZEOF (QUERY (pdr <* USEDIN(rrwt\representation_relationship.rep_1, 'LOCATION_IN_BUILDING_MIM.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | SIZEOF (TYPEOF (pdr.definition.definition) * ['LOCATION_IN_BUILDING_MIM.BUILDING_SECTION', 'LOCATION_IN_BUILDING_MIM.SPACE_ELEMENT'] ) >= 1 )) = 0) )) = 0; wr3: SIZEOF (QUERY (rrwt_1 <* representation_relationship_with_transformation | SIZEOF (QUERY (rrwt_2 <* representation_relationship_with_transformation | (SIZEOF (QUERY (pdr <* USEDIN(rrwt_1\representation_relationship.rep_2, 'LOCATION_IN_BUILDING_MIM.PROPERTY_DEFINITION_REPRESENTATION.USED_REPRESENTATION') | SIZEOF (TYPEOF (pdr.definition.definition) * ['LOCATION_IN_BUILDING_MIM.BUILDING_ELEMENT', 'LOCATION_IN_BUILDING_MIM.FIXTURE_EQUIPMENT_ELEMENT', 'LOCATION_IN_BUILDING_MIM.SERVICE_ELEMENT', 'LOCATION_IN_BUILDING_MIM.STRUCTURE_ENCLOSURE_ELEMENT']) = 1 )) >= 1) AND (rrwt_1\representation_relationship.rep_2 :=: rrwt_2\representation_relationship.rep_2) )) >= 1 )) = 0; END_RULE; -- building_element_maps_into_building_section_or_space |
public class RBuilding_element_maps_into_building_section_or_space public int rWr3(SdaiContext _context) public int rWr2(SdaiContext _context) public int rWr1(SdaiContext _context) public int run(SdaiContext _context, A_string violations) |