En ese caso si, debes cambiar la logica de funcionamiento. En principio los asensores comunes tienen un solo boton de llamada en el piso, entonces no sabes si el que lo presiona quiere ir para arriba o para abajo..
Primera modificacion.. un boton de subida y otro de bajada. Con ese cambio por piso ya tienes identificado cual es el requerimiento y habra que almacenarlo segun la logica que quieras aplicar... si esta en bajada la cabina o detenida y queres ir para abajo desde la cabina o desde afuera, que baje. cual es el problema..
Si viene con pasajeros y pasa por ese piso y presionan para bajar, que pare, dado que el que va adentro y el que presiono el boton quieren ir para abajo..
En una palabra, primero hay que crear las reglas logicas y despues analizar en cada caso que pasaria si la cabina esta parada, si esta en viaje para arriba, para abajo.. como interactua con las reglas.. recien cuando tengas todo ese analisis de funcionamiento, podes pasar a ver como hacerlo!..