code: def get_available_types_for_scene(self, element):
          
          available = []
          for typ, inter in self.types.items():
              if inter(self).is_available_for_scene(element):
                  available.append(typ)
          return available
docs: Return a list of types that can be used in combination with the given element
          to add new reftracks to the scene.
  
          This allows for example the user, to add new reftracks (aliens) to the scene.
          So e.g. for a shader, it wouldn't make sense to make it available to be added to the scene, because
          one would use them only as children of let's say an asset or cache.
          Some types might only be available for shots or assets etc.
  
          :param element: the element that could be used in conjuction with the returned types to create new reftracks.
          :type element: :class:`jukeboxcore.djadapter.models.Asset` | :class:`jukeboxcore.djadapter.models.Shot`
          :returns: a list of types
          :rtype: :class:`list`
          :raises: None