La idea está cerca de lo que define el modelo ER extendido: Te has topado con la
herencia, caso que no suele verse demasiado seguido y que es mucho más habitual en programación orientada a objetos.
El esquema básico es correcto: Tienes una entidad principal que es la que contiene los atributos base (Propiedad, en este caso), y las entidades hija que son Departamento, Casa, Oficina, Terreno, Etc, de una atomización que surja de la comparación de atributos.
Lo que suele decirse es que si una entidad tiene herencia, la entidad que hereda debe tener un atributo que no se repita en las otras entidades hijas.
Si se repite entre dos, se trata de la misma entidad con un valor dIferenciador de identidad, pero no de dos entidades.
Se trata en definitiva de una clase primaria propiedades y dos tablas dependientes cuya PK es FK de la tabla primaria:
PROPIEDADES(
propiedad_id, tipo, direcicon ,barrio, precio)
DEPARTAMENTO(
propiedad_id, tipo_edificio, categoria, cant_pisos)
OFICINA(
propiedad_id, recepcion, despachos, sala_reuniones)