Skip to content

xzhang-wework/forge-python-wrapper

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Forge Python Wrapper

Forge API Client Wrapper for Python

Installing

WIP

Documentation

WIP

Usage Examples

"""
If the following Environment Variables are defined there is no need to explicitly provide them when constructing the ForgeApp:
    For 2-legged context:
        FORGE_HUB_ID
        FORGE_CLIENT_ID
        FORGE_CLIENT_SECRET
    Extras for 3-legged context:
        FORGE_REDIRECT_URI
        FORGE_USERNAME
        FORGE_PASSWORD
"""

# 3-legged context - Needed to work with BIM 360 Team Hubs
app = ForgeApp(
    client_id="<your_app_client_id>",
    client_secret="<your_app_client_secret>",
    three_legged=True,
    redirect_uri="<your_app_redirect_uri>",
    username="<your_autodesk_username>",
    password="<your_autodesk_password>",
)

app.get_hubs()
app.hub_id = app.hubs[0]["id"]

app.get_projects(source="docs")
project = app.find_project("<Project Name>", key="name")
project = app.find_project("<Project Id>", key="id")

project.get_top_folders()
top_folders = project.top_folders

project.project_files.get_contents()
contents = project.project_files.contents

parent_folder_id = pj.project_files.id
project.add_folder(pj.project_files.id, "New Folder Name")


# 2-legged context - Needed for methods that use the BIM 360 API
app = ForgeApp(
    client_id="<your_app_client_id>",
    client_secret="<your_app_client_secret>",
    hub_id="<your_hub_id>",
)

app.get_companies()
company = app.find_company("Company Name")

app.get_users()
admin_user = app.find_user("[email protected]")
normal_user_1 = app.find_user("[email protected]")
normal_user_2 = app.find_user("[email protected]")

app.get_projects(source="all")

new_project = app.add_project("New Project Name")

new_project.update(name="Updated Project Name", status="active")

new_project.get_roles()
roles = new_project.roles
role_id = roles[0]["id"]

new_project.x_user_id = admin_user["uid"]
new_project.add_users([admin_user], access_level="admin")
new_project.add_users([normal_user_1, normal_user_2], access_level="user", role_id=role_id)

new_role_id = roles[1]["id"]
new_project.update_user(normal_user_1, company_id=company["id"], role_id=new_role_id)

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%