@code4broke : In response to your statement about furniture,
I'm writing overly complex sets of rules for each individual type of furniture and it has me wondering if there's a better way
There would need to be more information to see how you're actually doing things (some specific examples of furniture, as used in your system, would be nice here). However, going on the very little you've said about this problem, I can take a stab at it. . . I'd suggest that if, you are writing an “overly complex set of rules for each individual type of item,” then you are probably doing something wrong (IMO of course). I would recommend using a more generalized rule set, which can be flexible, based on various stats that a given item of furniture might possess.