Folder Operations

Folder Operations#

This example demonstrates how to work with folders in the Flow360 cloud platform using the Python API. It shows how to create a parent folder and subfolders, how to search for a folder by name within a folder tree, and how to submit a project directly into a specific folder.

The workflow is as follows:

  • Create a root (parent) folder in your account.

  • Create a child folder inside this parent folder.

  • Define a helper function that walks the folder tree and returns the first folder whose name matches a given target.

  • Use this helper to locate a folder by name starting from the root folder.

  • Submit a new project from a geometry file into the located folder.

import flow360 as fl

# Creating folders in a parent folder
root_folder = fl.Folder.create(name="ParentFolder").submit()
new_folder= fl.Folder.create(name="new_folder",parent_folder=root_folder).submit()

# Looking for folders: find the folder from the name
def find_folder_by_name(root, target_name):
    """Walk the folder tree starting at `root` and return the first Folder
    object whose name matches `target_name`. Returns None if not found.
    """
    tree = root.get_folder_tree()

    def _recurse(node: dict):
        if node.get("name") == target_name:
            return fl.Folder(node["id"])
        for sub in node.get("subfolders", []):
            found = _recurse(sub)
            if found:
                return found
        return None

    return _recurse(tree)

# Example usage:
found_folder = find_folder_by_name(root_folder, "new_folder")
print(f"A folder was found by the name of:{found_folder.name}, and id={ found_folder.id}")

# Once you have created your structure you can use:
fl.Project.from_geometry("geometry.STEP", name="Example", folder=new_folder)