def METHOD_NAME(
    self, category, stype="horizons", domain="depth", htype="surface"
):
    """Create one or more a Horizons/Zones... category entries.
    Args:
        category (str or list): Name(s) of category to make, either as
             a simple string or a list of strings.
        stype (str): 'Super type' in RMS (horizons or zones).
            Default is horizons
        domain (str): 'depth' (default) or 'time'
        htype (str): Horizon type: surface/lines/points
    """
    project = self.project
    categories = []
    if isinstance(category, str):
        categories.append(category)
    else:
        categories.extend(category)
    for catg in categories:
        geom = roxar.GeometryType.surface
        if htype.lower() == "lines":
            geom = roxar.GeometryType.lines
        elif htype.lower() == "points":
            geom = roxar.GeometryType.points
        dom = roxar.VerticalDomain.depth
        if domain.lower() == "time":
            dom = roxar.GeometryType.lines
        if stype.lower() == "horizons":
            if catg not in project.horizons.representations:
                try:
                    project.horizons.representations.create(catg, geom, dom)
                except Exception as exmsg:  # pylint: disable=broad-except
                    print(f"Error: {exmsg}")
            else:
                print(f"Category <{catg}> already exists")
        elif stype.lower() == "zones":
            if catg not in project.zones.representations:
                try:
                    project.zones.representations.create(catg, geom, dom)
                except Exception as exmsg:  # pylint: disable=broad-except
                    print(f"Error: {exmsg}")
            else:
                print(f"Category <{catg}> already exists")