I think you're thinking "one level up". So things that are one level up from the object you're reporting on, is no problem. Think of it in this way: usually the thing that is one level up from your thing is a unique thing. Your project can only have one portfolio and one program, so it's pretty easy to report such things.
Your project can have many tasks and many files, so it's going to be a bit harder to filter these "things that are one level down". Things one level down may require either a collections filter or expression, or an exists filter, depending on what you're trying for.