Hello,
There are several things going on here. Most importantly, the constraint shown on page 185 is a preferred external uniqueness constraint, not an equality constraint. You'll need to delete the equality constraint from your model and add a uniqueness constraint in its place. Note that the constraint editor behaves differently for set constraints (Uniqueness, Mandatory, Frequency, Ring) than set comparison constraints (Equality, Exclusion, Subset). You can see directions for different types in the tooltip that is visible over the constraint when a constraint editor is active. Once you've added the external uniqueness constraint, you can set the constraint's IsPreferredIdentifier property in the Properties Window to get the graphic shown in the book.
The verbalization for the next drop (coming before the end of the week) will correctly handle column compabitility and join paths on set comparison constraints. The verbalization now reads:
For each Building, all or none of the following hold:
some Room is in that Building;
some Room has some SerialNr that is that Building;
some Room has some FloorNr that is that Building.
This makes it obvious that the constraint is poorly formed and backs up the error text indicating incompatible types. The older verbalization uses a dangling 'that' back reference for FloorNr and SerialNr, which is structurally poorly formed (although subtle). It is more obvious that the constraint is bogus for the new verbalization because a Building is neither a SerialNr nor a FloorNr.
I don't know why this is generating two equivalent errors. I'll look into it. It should be an easy fix for new errors (removing existing duplicates on load would be a lot more work and isn't worth the effort).
-Matt