diff --git a/APSToolkitPython/.gitignore b/APSToolkitPython/.gitignore
new file mode 100644
index 0000000..68bc17f
--- /dev/null
+++ b/APSToolkitPython/.gitignore
@@ -0,0 +1,160 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+*.py,cover
+.hypothesis/
+.pytest_cache/
+cover/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+db.sqlite3-journal
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+.pybuilder/
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# IPython
+profile_default/
+ipython_config.py
+
+# pyenv
+# For a library or package, you might want to ignore these files since the code is
+# intended to run in multiple environments; otherwise, check them in:
+# .python-version
+
+# pipenv
+# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
+# However, in case of collaboration, if having platform-specific dependencies or dependencies
+# having no cross-platform support, pipenv may install dependencies that don't work, or not
+# install all needed dependencies.
+#Pipfile.lock
+
+# poetry
+# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
+# This is especially recommended for binary packages to ensure reproducibility, and is more
+# commonly ignored for libraries.
+# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
+#poetry.lock
+
+# pdm
+# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
+#pdm.lock
+# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
+# in version control.
+# https://pdm.fming.dev/#use-with-ide
+.pdm.toml
+
+# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
+__pypackages__/
+
+# Celery stuff
+celerybeat-schedule
+celerybeat.pid
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+# pytype static type analyzer
+.pytype/
+
+# Cython debug symbols
+cython_debug/
+
+# PyCharm
+# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
+# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
+# and can be added to the global gitignore or merged into this file. For a more nuclear
+# option (not recommended) you can uncomment the following to ignore the entire idea folder.
+#.idea/
diff --git a/APSToolkitPython/Readme.md b/APSToolkitPython/Readme.md
new file mode 100644
index 0000000..ab6e527
--- /dev/null
+++ b/APSToolkitPython/Readme.md
@@ -0,0 +1,41 @@
+APSToolkit
+
+## Requirements
+
+- Python 3.9+
+
+
+## How to install the project
+
+```bash
+pip install aps-toolkit
+```
+
+## Get Started
+
+```python
+from aps_toolkit_python import Auth
+auth = Auth()
+token = auth.auth2leg()
+```
+
+## Tutorial
+
+Please refer to the github [tutorial](https://github.com/chuongmep/aps-toolkit)
+
+## How to build the project
+
+Install package : pip install wheel
+
+```bash
+python setup.py bdist_wheel
+python setup.py sdist
+python setup.py bdist_wheel sdist
+```
+
+## Publish the project
+
+```bash
+python -m twine check dist/*
+python -m twine upload dist/*
+```
\ No newline at end of file
diff --git a/APSToolkitPython/docs/Authentication.ipynb b/APSToolkitPython/docs/Authentication.ipynb
new file mode 100644
index 0000000..03c7df8
--- /dev/null
+++ b/APSToolkitPython/docs/Authentication.ipynb
@@ -0,0 +1,128 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Requirement already satisfied: aps-toolkit in c:\\python311\\lib\\site-packages (0.0.3)\n",
+ "Requirement already satisfied: requests in c:\\python311\\lib\\site-packages (from aps-toolkit) (2.31.0)\n",
+ "Requirement already satisfied: pandas in c:\\python311\\lib\\site-packages (from aps-toolkit) (2.2.1)\n",
+ "Requirement already satisfied: numpy<2,>=1.23.2 in c:\\python311\\lib\\site-packages (from pandas->aps-toolkit) (1.26.0)\n",
+ "Requirement already satisfied: python-dateutil>=2.8.2 in c:\\python311\\lib\\site-packages (from pandas->aps-toolkit) (2.8.2)\n",
+ "Requirement already satisfied: pytz>=2020.1 in c:\\python311\\lib\\site-packages (from pandas->aps-toolkit) (2023.3.post1)\n",
+ "Requirement already satisfied: tzdata>=2022.7 in c:\\python311\\lib\\site-packages (from pandas->aps-toolkit) (2023.3)\n",
+ "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\python311\\lib\\site-packages (from requests->aps-toolkit) (3.2.0)\n",
+ "Requirement already satisfied: idna<4,>=2.5 in c:\\python311\\lib\\site-packages (from requests->aps-toolkit) (3.4)\n",
+ "Requirement already satisfied: urllib3<3,>=1.21.1 in c:\\users\\chuongho\\appdata\\roaming\\python\\python311\\site-packages (from requests->aps-toolkit) (1.26.17)\n",
+ "Requirement already satisfied: certifi>=2017.4.17 in c:\\python311\\lib\\site-packages (from requests->aps-toolkit) (2023.7.22)\n",
+ "Requirement already satisfied: six>=1.5 in c:\\python311\\lib\\site-packages (from python-dateutil>=2.8.2->pandas->aps-toolkit) (1.16.0)\n",
+ "Note: you may need to restart the kernel to use updated packages.\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "DEPRECATION: Loading egg at c:\\python311\\lib\\site-packages\\autodesk_forge_sdk-0.1.2-py3.11.egg is deprecated. pip 24.3 will enforce this behaviour change. A possible replacement is to use pip for package installation.. Discussion can be found at https://github.com/pypa/pip/issues/12330\n"
+ ]
+ }
+ ],
+ "source": [
+ "%pip install aps-toolkit --upgrade"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from aps_toolkit_python import Auth"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "token = Auth().auth2leg()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "access_token = token.access_token"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "3599"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "token.expires_in"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'Bearer'"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "token.token_type"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.11.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/APSToolkitPython/docs/BIM360.ipynb b/APSToolkitPython/docs/BIM360.ipynb
new file mode 100644
index 0000000..521fca8
--- /dev/null
+++ b/APSToolkitPython/docs/BIM360.ipynb
@@ -0,0 +1,491 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Requirement already satisfied: aps-toolkit in c:\\python311\\lib\\site-packages (0.0.4)\n",
+ "Requirement already satisfied: requests in c:\\python311\\lib\\site-packages (from aps-toolkit) (2.31.0)\n",
+ "Requirement already satisfied: pandas in c:\\python311\\lib\\site-packages (from aps-toolkit) (2.2.1)\n",
+ "Requirement already satisfied: numpy<2,>=1.23.2 in c:\\python311\\lib\\site-packages (from pandas->aps-toolkit) (1.26.0)\n",
+ "Requirement already satisfied: python-dateutil>=2.8.2 in c:\\python311\\lib\\site-packages (from pandas->aps-toolkit) (2.8.2)\n",
+ "Requirement already satisfied: pytz>=2020.1 in c:\\python311\\lib\\site-packages (from pandas->aps-toolkit) (2023.3.post1)\n",
+ "Requirement already satisfied: tzdata>=2022.7 in c:\\python311\\lib\\site-packages (from pandas->aps-toolkit) (2023.3)\n",
+ "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\python311\\lib\\site-packages (from requests->aps-toolkit) (3.2.0)\n",
+ "Requirement already satisfied: idna<4,>=2.5 in c:\\python311\\lib\\site-packages (from requests->aps-toolkit) (3.4)\n",
+ "Requirement already satisfied: urllib3<3,>=1.21.1 in c:\\users\\chuongho\\appdata\\roaming\\python\\python311\\site-packages (from requests->aps-toolkit) (1.26.17)\n",
+ "Requirement already satisfied: certifi>=2017.4.17 in c:\\python311\\lib\\site-packages (from requests->aps-toolkit) (2023.7.22)\n",
+ "Requirement already satisfied: six>=1.5 in c:\\python311\\lib\\site-packages (from python-dateutil>=2.8.2->pandas->aps-toolkit) (1.16.0)\n",
+ "Note: you may need to restart the kernel to use updated packages.\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "DEPRECATION: Loading egg at c:\\python311\\lib\\site-packages\\autodesk_forge_sdk-0.1.2-py3.11.egg is deprecated. pip 24.3 will enforce this behaviour change. A possible replacement is to use pip for package installation.. Discussion can be found at https://github.com/pypa/pip/issues/12330\n"
+ ]
+ }
+ ],
+ "source": [
+ "%pip install aps-toolkit --upgrade"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from aps_toolkit_python import Auth"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "token = Auth().auth2leg()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "access_token = token.access_token"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "3599"
+ ]
+ },
+ "execution_count": 29,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "token.expires_in"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 30,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'Bearer'"
+ ]
+ },
+ "execution_count": 30,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "token.token_type"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 31,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from aps_toolkit_python import BIM360\n",
+ "bim360 = BIM360(token)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 32,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'"
+ ]
+ },
+ "execution_count": 32,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "hubs = bim360.get_hubs()\n",
+ "hubs_id = hubs[\"data\"][0][\"id\"]\n",
+ "hubs_id"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 33,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce'"
+ ]
+ },
+ "execution_count": 33,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "projects = bim360.get_projects(hubs_id)\n",
+ "projects_id = projects[\"data\"][0][\"id\"]\n",
+ "projects_id"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 34,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'urn:adsk.wipprod:fs.folder:co.z6qm45EyQfykBUrk1NuT7A'"
+ ]
+ },
+ "execution_count": 34,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "topfolders = bim360.get_top_folders(hubs_id,projects_id)\n",
+ "topfolders_id = topfolders[\"data\"][0][\"id\"]\n",
+ "topfolders_id"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 40,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gRhI8A'"
+ ]
+ },
+ "execution_count": 40,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "projects_id = \"b.1f7aa830-c6ef-48be-8a2d-bd554779e74b\"\n",
+ "folderId = \"urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJxxN_Mw\"\n",
+ "\n",
+ "contents = bim360.get_folder_contents(projects_id,folderId)\n",
+ "itemId = contents[\"data\"][0][\"id\"]\n",
+ "itemId"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'urn:adsk.wipprod:fs.file:vf.DjXtlXoJQyS6D1R-gRhI8A?version=5'"
+ ]
+ },
+ "execution_count": 42,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "item_versions = bim360.get_item_versions(projects_id,itemId)\n",
+ "# get fist version \n",
+ "versionId = item_versions[\"data\"][0][\"id\"]\n",
+ "versionId"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " project_id | \n",
+ " folder_id | \n",
+ " item_name | \n",
+ " item_id | \n",
+ " last_version | \n",
+ " derivative_urn | \n",
+ " last_modified_time | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " b.1f7aa830-c6ef-48be-8a2d-bd554779e74b | \n",
+ " urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... | \n",
+ " ACCKL1-EXY-C-FAC-MECH-01.rvt | \n",
+ " urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gR... | \n",
+ " 5 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG... | \n",
+ " 2024-01-31T07:24:02.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " b.1f7aa830-c6ef-48be-8a2d-bd554779e74b | \n",
+ " urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... | \n",
+ " ACCKL1-EXY-C-FAC-TOOL-01.rvt | \n",
+ " urn:adsk.wipprod:dm.lineage:udZugJG9Rc-RdeF-PQ... | \n",
+ " 4 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLnVkWnVnSk... | \n",
+ " 2024-01-31T07:23:47.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " b.1f7aa830-c6ef-48be-8a2d-bd554779e74b | \n",
+ " urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... | \n",
+ " ACCKL1-EXY-E-FAC-DATA-01.rvt | \n",
+ " urn:adsk.wipprod:dm.lineage:CWW7IlXPTU2HFiwutZ... | \n",
+ " 4 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkNXVzdJbF... | \n",
+ " 2024-01-31T07:23:47.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " b.1f7aa830-c6ef-48be-8a2d-bd554779e74b | \n",
+ " urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... | \n",
+ " ACCKL1-EXY-E-FAC-EQPT-01.rvt | \n",
+ " urn:adsk.wipprod:dm.lineage:jo9Qg-8tRTG9t0DISd... | \n",
+ " 4 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLmpvOVFnLT... | \n",
+ " 2024-01-31T07:23:48.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " b.1f7aa830-c6ef-48be-8a2d-bd554779e74b | \n",
+ " urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... | \n",
+ " ACCKL1-EXY-I-FAC-BMSP-01.rvt | \n",
+ " urn:adsk.wipprod:dm.lineage:JVchmSEmTSm0h5VzEp... | \n",
+ " 4 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkpWY2htU0... | \n",
+ " 2024-01-31T07:23:50.0000000Z | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " project_id \\\n",
+ "0 b.1f7aa830-c6ef-48be-8a2d-bd554779e74b \n",
+ "1 b.1f7aa830-c6ef-48be-8a2d-bd554779e74b \n",
+ "2 b.1f7aa830-c6ef-48be-8a2d-bd554779e74b \n",
+ "3 b.1f7aa830-c6ef-48be-8a2d-bd554779e74b \n",
+ "4 b.1f7aa830-c6ef-48be-8a2d-bd554779e74b \n",
+ "\n",
+ " folder_id \\\n",
+ "0 urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... \n",
+ "1 urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... \n",
+ "2 urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... \n",
+ "3 urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... \n",
+ "4 urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... \n",
+ "\n",
+ " item_name \\\n",
+ "0 ACCKL1-EXY-C-FAC-MECH-01.rvt \n",
+ "1 ACCKL1-EXY-C-FAC-TOOL-01.rvt \n",
+ "2 ACCKL1-EXY-E-FAC-DATA-01.rvt \n",
+ "3 ACCKL1-EXY-E-FAC-EQPT-01.rvt \n",
+ "4 ACCKL1-EXY-I-FAC-BMSP-01.rvt \n",
+ "\n",
+ " item_id last_version \\\n",
+ "0 urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gR... 5 \n",
+ "1 urn:adsk.wipprod:dm.lineage:udZugJG9Rc-RdeF-PQ... 4 \n",
+ "2 urn:adsk.wipprod:dm.lineage:CWW7IlXPTU2HFiwutZ... 4 \n",
+ "3 urn:adsk.wipprod:dm.lineage:jo9Qg-8tRTG9t0DISd... 4 \n",
+ "4 urn:adsk.wipprod:dm.lineage:JVchmSEmTSm0h5VzEp... 4 \n",
+ "\n",
+ " derivative_urn \\\n",
+ "0 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG... \n",
+ "1 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLnVkWnVnSk... \n",
+ "2 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkNXVzdJbF... \n",
+ "3 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLmpvOVFnLT... \n",
+ "4 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkpWY2htU0... \n",
+ "\n",
+ " last_modified_time \n",
+ "0 2024-01-31T07:24:02.0000000Z \n",
+ "1 2024-01-31T07:23:47.0000000Z \n",
+ "2 2024-01-31T07:23:47.0000000Z \n",
+ "3 2024-01-31T07:23:48.0000000Z \n",
+ "4 2024-01-31T07:23:50.0000000Z "
+ ]
+ },
+ "execution_count": 44,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data_frame = bim360.batch_report_items(projects_id,folderId,\".rvt\",True)\n",
+ "data_frame.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 46,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " item_id | \n",
+ " version | \n",
+ " derivative_urn | \n",
+ " last_modified_time | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gR... | \n",
+ " 5 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG... | \n",
+ " 2024-01-31T07:38:59.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gR... | \n",
+ " 4 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG... | \n",
+ " 2024-01-24T03:20:58.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gR... | \n",
+ " 3 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG... | \n",
+ " 2024-01-22T07:07:33.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gR... | \n",
+ " 2 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG... | \n",
+ " 2024-01-18T15:23:02.0000000Z | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " item_id version \\\n",
+ "0 urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gR... 5 \n",
+ "1 urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gR... 4 \n",
+ "2 urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gR... 3 \n",
+ "3 urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gR... 2 \n",
+ "\n",
+ " derivative_urn \\\n",
+ "0 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG... \n",
+ "1 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG... \n",
+ "2 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG... \n",
+ "3 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG... \n",
+ "\n",
+ " last_modified_time \n",
+ "0 2024-01-31T07:38:59.0000000Z \n",
+ "1 2024-01-24T03:20:58.0000000Z \n",
+ "2 2024-01-22T07:07:33.0000000Z \n",
+ "3 2024-01-18T15:23:02.0000000Z "
+ ]
+ },
+ "execution_count": 46,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "data_frame_item_versions = bim360.batch_report_item_versions(projects_id,itemId)\n",
+ "data_frame_item_versions"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.11.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/APSToolkitPython/docs/Explore Revit Data With APSToolkit.ipynb b/APSToolkitPython/docs/Explore Revit Data With APSToolkit.ipynb
new file mode 100644
index 0000000..39aa2c3
--- /dev/null
+++ b/APSToolkitPython/docs/Explore Revit Data With APSToolkit.ipynb
@@ -0,0 +1,1035 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Note: you may need to restart the kernel to use updated packages.Requirement already satisfied: aps-toolkit in c:\\python311\\lib\\site-packages (0.0.3)\n",
+ "Requirement already satisfied: requests in c:\\python311\\lib\\site-packages (from aps-toolkit) (2.31.0)\n",
+ "Requirement already satisfied: pandas in c:\\python311\\lib\\site-packages (from aps-toolkit) (2.2.1)\n",
+ "Requirement already satisfied: numpy<2,>=1.23.2 in c:\\python311\\lib\\site-packages (from pandas->aps-toolkit) (1.26.0)\n",
+ "Requirement already satisfied: python-dateutil>=2.8.2 in c:\\python311\\lib\\site-packages (from pandas->aps-toolkit) (2.8.2)\n",
+ "Requirement already satisfied: pytz>=2020.1 in c:\\python311\\lib\\site-packages (from pandas->aps-toolkit) (2023.3.post1)\n",
+ "Requirement already satisfied: tzdata>=2022.7 in c:\\python311\\lib\\site-packages (from pandas->aps-toolkit) (2023.3)\n",
+ "Requirement already satisfied: charset-normalizer<4,>=2 in c:\\python311\\lib\\site-packages (from requests->aps-toolkit) (3.2.0)\n",
+ "Requirement already satisfied: idna<4,>=2.5 in c:\\python311\\lib\\site-packages (from requests->aps-toolkit) (3.4)\n",
+ "Requirement already satisfied: urllib3<3,>=1.21.1 in c:\\users\\chuongho\\appdata\\roaming\\python\\python311\\site-packages (from requests->aps-toolkit) (1.26.17)\n",
+ "Requirement already satisfied: certifi>=2017.4.17 in c:\\python311\\lib\\site-packages (from requests->aps-toolkit) (2023.7.22)\n",
+ "Requirement already satisfied: six>=1.5 in c:\\python311\\lib\\site-packages (from python-dateutil>=2.8.2->pandas->aps-toolkit) (1.16.0)\n",
+ "\n"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "DEPRECATION: Loading egg at c:\\python311\\lib\\site-packages\\autodesk_forge_sdk-0.1.2-py3.11.egg is deprecated. pip 24.3 will enforce this behaviour change. A possible replacement is to use pip for package installation.. Discussion can be found at https://github.com/pypa/pip/issues/12330\n"
+ ]
+ }
+ ],
+ "source": [
+ "%pip install aps-toolkit --upgrade"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from aps_toolkit_python import Auth"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "token = Auth().auth2leg()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "urn = \"dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLjAtYnBtcEpXUWJTRUVNdUFac1VETWc_dmVyc2lvbj0yNQ\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from aps_toolkit_python import PropDbReaderRevit\n",
+ "prop_reader = PropDbReaderRevit(urn, token)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 38,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " dbid | \n",
+ " category | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 111 | \n",
+ " Materials | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 425 | \n",
+ " Elevations | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 430 | \n",
+ " Views | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 466 | \n",
+ " Primary Contours | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 480 | \n",
+ " Area Schemes | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 511 | \n",
+ " Phases | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 577 | \n",
+ " Shared Site | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 616 | \n",
+ " Work Plane Grid | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 683 | \n",
+ " Revision | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 688 | \n",
+ " Project Information | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 716 | \n",
+ " Structural Load Cases | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 761 | \n",
+ " Sun Path | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 955 | \n",
+ " Internal Origin | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 1143 | \n",
+ " Cameras | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 1148 | \n",
+ " Section Boxes | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 1255 | \n",
+ " HVAC Zones | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 1270 | \n",
+ " Color Fill Schema | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 1302 | \n",
+ " HVAC Load Schedules | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 1328 | \n",
+ " Building Type Settings | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 1362 | \n",
+ " Space Type Settings | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " dbid category\n",
+ "0 111 Materials\n",
+ "1 425 Elevations\n",
+ "2 430 Views\n",
+ "3 466 Primary Contours\n",
+ "4 480 Area Schemes\n",
+ "5 511 Phases\n",
+ "6 577 Shared Site\n",
+ "7 616 Work Plane Grid\n",
+ "8 683 Revision\n",
+ "9 688 Project Information\n",
+ "10 716 Structural Load Cases\n",
+ "11 761 Sun Path\n",
+ "12 955 Internal Origin\n",
+ "13 1143 Cameras\n",
+ "14 1148 Section Boxes\n",
+ "15 1255 HVAC Zones\n",
+ "16 1270 Color Fill Schema\n",
+ "17 1302 HVAC Load Schedules\n",
+ "18 1328 Building Type Settings\n",
+ "19 1362 Space Type Settings"
+ ]
+ },
+ "execution_count": 38,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "categories = prop_reader.get_all_categories()\n",
+ "# to dataframe with columns \"dbid,category\" from dict categories\n",
+ "df = pd.DataFrame.from_dict(categories, orient='index', columns=[\"category\"])\n",
+ "df = df.reset_index()\n",
+ "df = df.rename(columns={\"index\":\"dbid\"})\n",
+ "df.head(20)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 39,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " dbid | \n",
+ " family | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 5013 | \n",
+ " Legend | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 6716 | \n",
+ " Sheet | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 6743 | \n",
+ " Drafting View | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 8426 | \n",
+ " Schedule | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 10301 | \n",
+ " Floor Plan | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 426 | \n",
+ " Elevation | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 431 | \n",
+ " Elevation | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 10297 | \n",
+ " Floor Plan | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 10552 | \n",
+ " Section | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 579 | \n",
+ " Internal | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " dbid family\n",
+ "0 5013 Legend\n",
+ "1 6716 Sheet\n",
+ "2 6743 Drafting View\n",
+ "3 8426 Schedule\n",
+ "4 10301 Floor Plan\n",
+ "5 426 Elevation\n",
+ "6 431 Elevation\n",
+ "7 10297 Floor Plan\n",
+ "8 10552 Section\n",
+ "9 579 Internal"
+ ]
+ },
+ "execution_count": 39,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "families = prop_reader.get_all_families()\n",
+ "# to dataframe with columns \"dbid,family\" from dict families\n",
+ "df = pd.DataFrame.from_dict(families, orient='index', columns=[\"family\"])\n",
+ "df = df.reset_index()\n",
+ "df = df.rename(columns={\"index\":\"dbid\"})\n",
+ "df.head(10)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " dbid | \n",
+ " family_type | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 5015 | \n",
+ " Legend | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 6718 | \n",
+ " Sheet | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 6745 | \n",
+ " Detail | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 428 | \n",
+ " Building Elevation | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 10299 | \n",
+ " Floor Plan | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 10554 | \n",
+ " Building Section | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 579 | \n",
+ " Location Data | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 1517 | \n",
+ " Location Data | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 1146 | \n",
+ " 3D View | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 5023 | \n",
+ " Standard | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " dbid family_type\n",
+ "0 5015 Legend\n",
+ "1 6718 Sheet\n",
+ "2 6745 Detail\n",
+ "3 428 Building Elevation\n",
+ "4 10299 Floor Plan\n",
+ "5 10554 Building Section\n",
+ "6 579 Location Data\n",
+ "7 1517 Location Data\n",
+ "8 1146 3D View\n",
+ "9 5023 Standard"
+ ]
+ },
+ "execution_count": 42,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "families_types = prop_reader.get_all_families_types()\n",
+ "# to dataframe with columns \"dbid,family,type\" from dict families_types\n",
+ "df = pd.DataFrame.from_dict(families_types, orient='index', columns=[\"family_type\"])\n",
+ "df = df.reset_index()\n",
+ "df = df.rename(columns={\"index\":\"dbid\"})\n",
+ "df.head(10)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " dbId | \n",
+ " external_id | \n",
+ " Workset | \n",
+ " Edited by | \n",
+ " Line Style | \n",
+ " Detail Line | \n",
+ " Length | \n",
+ " Center Mark Visible | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 5025 | \n",
+ " fed25bcc-43b7-4a3d-9fc4-1221bb168f5d | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 5026 | \n",
+ " 4cec1bb0-afe8-449c-99b9-3cb8e6b577d6-000a4311 | \n",
+ " View \"Legend: TEMPERATURE CONTROL ZONING\" | \n",
+ " | \n",
+ " <Thin Lines> | \n",
+ " 1.0 | \n",
+ " 60.000000 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 5027 | \n",
+ " 4cec1bb0-afe8-449c-99b9-3cb8e6b577d6-000a4312 | \n",
+ " View \"Legend: TEMPERATURE CONTROL ZONING\" | \n",
+ " | \n",
+ " <Thin Lines> | \n",
+ " 1.0 | \n",
+ " 98.028473 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 5028 | \n",
+ " 4cec1bb0-afe8-449c-99b9-3cb8e6b577d6-000a4313 | \n",
+ " View \"Legend: TEMPERATURE CONTROL ZONING\" | \n",
+ " | \n",
+ " <Thin Lines> | \n",
+ " 1.0 | \n",
+ " 75.000000 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 5029 | \n",
+ " 4cec1bb0-afe8-449c-99b9-3cb8e6b577d6-000a4314 | \n",
+ " View \"Legend: TEMPERATURE CONTROL ZONING\" | \n",
+ " | \n",
+ " <Thin Lines> | \n",
+ " 1.0 | \n",
+ " 30.000000 | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " dbId external_id \\\n",
+ "0 5025 fed25bcc-43b7-4a3d-9fc4-1221bb168f5d \n",
+ "1 5026 4cec1bb0-afe8-449c-99b9-3cb8e6b577d6-000a4311 \n",
+ "2 5027 4cec1bb0-afe8-449c-99b9-3cb8e6b577d6-000a4312 \n",
+ "3 5028 4cec1bb0-afe8-449c-99b9-3cb8e6b577d6-000a4313 \n",
+ "4 5029 4cec1bb0-afe8-449c-99b9-3cb8e6b577d6-000a4314 \n",
+ "\n",
+ " Workset Edited by Line Style \\\n",
+ "0 NaN NaN NaN \n",
+ "1 View \"Legend: TEMPERATURE CONTROL ZONING\" \n",
+ "2 View \"Legend: TEMPERATURE CONTROL ZONING\" \n",
+ "3 View \"Legend: TEMPERATURE CONTROL ZONING\" \n",
+ "4 View \"Legend: TEMPERATURE CONTROL ZONING\" \n",
+ "\n",
+ " Detail Line Length Center Mark Visible \n",
+ "0 NaN NaN NaN \n",
+ "1 1.0 60.000000 NaN \n",
+ "2 1.0 98.028473 NaN \n",
+ "3 1.0 75.000000 NaN \n",
+ "4 1.0 30.000000 NaN "
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df = prop_reader.get_data_by_category(\"Lines\")\n",
+ "df.head()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 23,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " dbId | \n",
+ " external_id | \n",
+ " Workset | \n",
+ " Width | \n",
+ " Height | \n",
+ " Length | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 3 | \n",
+ " 15901 | \n",
+ " 650dac91-a97a-4182-b882-b1b294b266e3-001aaf9c | \n",
+ " ex_M_HVAC_EA | \n",
+ " 450.0 | \n",
+ " 450.0 | \n",
+ " 380.0 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 15932 | \n",
+ " 650dac91-a97a-4182-b882-b1b294b266e3-001ab1f3 | \n",
+ " ex_M_HVAC_FA | \n",
+ " 450.0 | \n",
+ " 450.0 | \n",
+ " 380.0 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 15952 | \n",
+ " 650dac91-a97a-4182-b882-b1b294b266e3-001ab4e0 | \n",
+ " ex_M_HVAC_FA | \n",
+ " 450.0 | \n",
+ " 450.0 | \n",
+ " 380.0 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 15959 | \n",
+ " 650dac91-a97a-4182-b882-b1b294b266e3-001ab4e7 | \n",
+ " ex_M_HVAC_FA | \n",
+ " 450.0 | \n",
+ " 450.0 | \n",
+ " 380.0 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 15988 | \n",
+ " 650dac91-a97a-4182-b882-b1b294b266e3-001ab9c0 | \n",
+ " ex_M_HVAC_EA | \n",
+ " 450.0 | \n",
+ " 450.0 | \n",
+ " 380.0 | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 578 | \n",
+ " 16133 | \n",
+ " 832478c1-3e5c-49fe-9776-ed1213f7a84f-001b4a50 | \n",
+ " ex_M_HVAC_EA | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 926.5 | \n",
+ "
\n",
+ " \n",
+ " 579 | \n",
+ " 23280 | \n",
+ " f8ab7cba-776d-4ddc-81ce-de3c8c293aa6-0026cbbb | \n",
+ " ex_M_HVAC_FA | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 100.0 | \n",
+ "
\n",
+ " \n",
+ " 580 | \n",
+ " 23281 | \n",
+ " f8ab7cba-776d-4ddc-81ce-de3c8c293aa6-0026cbbc | \n",
+ " ex_M_HVAC_FA | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 100.0 | \n",
+ "
\n",
+ " \n",
+ " 581 | \n",
+ " 23314 | \n",
+ " d5519659-1830-49bb-b35d-b0ba03c5399f-0026e82d | \n",
+ " ex_M_HVAC_FA | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 100.0 | \n",
+ "
\n",
+ " \n",
+ " 582 | \n",
+ " 23315 | \n",
+ " d5519659-1830-49bb-b35d-b0ba03c5399f-0026e82e | \n",
+ " ex_M_HVAC_FA | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " 100.0 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
576 rows × 6 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " dbId external_id Workset \\\n",
+ "3 15901 650dac91-a97a-4182-b882-b1b294b266e3-001aaf9c ex_M_HVAC_EA \n",
+ "4 15932 650dac91-a97a-4182-b882-b1b294b266e3-001ab1f3 ex_M_HVAC_FA \n",
+ "5 15952 650dac91-a97a-4182-b882-b1b294b266e3-001ab4e0 ex_M_HVAC_FA \n",
+ "6 15959 650dac91-a97a-4182-b882-b1b294b266e3-001ab4e7 ex_M_HVAC_FA \n",
+ "7 15988 650dac91-a97a-4182-b882-b1b294b266e3-001ab9c0 ex_M_HVAC_EA \n",
+ ".. ... ... ... \n",
+ "578 16133 832478c1-3e5c-49fe-9776-ed1213f7a84f-001b4a50 ex_M_HVAC_EA \n",
+ "579 23280 f8ab7cba-776d-4ddc-81ce-de3c8c293aa6-0026cbbb ex_M_HVAC_FA \n",
+ "580 23281 f8ab7cba-776d-4ddc-81ce-de3c8c293aa6-0026cbbc ex_M_HVAC_FA \n",
+ "581 23314 d5519659-1830-49bb-b35d-b0ba03c5399f-0026e82d ex_M_HVAC_FA \n",
+ "582 23315 d5519659-1830-49bb-b35d-b0ba03c5399f-0026e82e ex_M_HVAC_FA \n",
+ "\n",
+ " Width Height Length \n",
+ "3 450.0 450.0 380.0 \n",
+ "4 450.0 450.0 380.0 \n",
+ "5 450.0 450.0 380.0 \n",
+ "6 450.0 450.0 380.0 \n",
+ "7 450.0 450.0 380.0 \n",
+ ".. ... ... ... \n",
+ "578 NaN NaN 926.5 \n",
+ "579 NaN NaN 100.0 \n",
+ "580 NaN NaN 100.0 \n",
+ "581 NaN NaN 100.0 \n",
+ "582 NaN NaN 100.0 \n",
+ "\n",
+ "[576 rows x 6 columns]"
+ ]
+ },
+ "execution_count": 23,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "prop_reader.get_data_by_categories_and_params([\"Pipes\",\"Ducts\"], [\"Width\", \"Height\",\"Length\",\"Workset\"])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " dbId | \n",
+ " external_id | \n",
+ " System Classification | \n",
+ " System Type | \n",
+ " System Name | \n",
+ " System Abbreviation | \n",
+ " Image | \n",
+ " Free Size | \n",
+ " Overall Size | \n",
+ " Lining Thickness | \n",
+ " ... | \n",
+ " Upper End Top Elevation | \n",
+ " Middle Elevation | \n",
+ " Lower End Bottom Elevation | \n",
+ " Area | \n",
+ " Length | \n",
+ " Slope | \n",
+ " Type Name | \n",
+ " Upper End Centerline Elevation | \n",
+ " Lower End Centerline Elevation | \n",
+ " Diameter | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 15897 | \n",
+ " 90dee50f-d93e-45b7-bc25-79fdad85659a | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 15898 | \n",
+ " 9f5ab8de-4fa8-42be-abd0-ed572503e39f | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 15900 | \n",
+ " 7b428b65-e5bc-4d2f-bbd1-2e17a883b6df-00121a90 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 15901 | \n",
+ " 650dac91-a97a-4182-b882-b1b294b266e3-001aaf9c | \n",
+ " Exhaust Air | \n",
+ " HVAC - Exhaust Air | \n",
+ " EA 1 | \n",
+ " EA | \n",
+ " | \n",
+ " 450 mmx450 mm | \n",
+ " 450 mmx450 mm | \n",
+ " 0.0 | \n",
+ " ... | \n",
+ " 3605.0 | \n",
+ " 3380.0 | \n",
+ " 3155.0 | \n",
+ " 0.684 | \n",
+ " 380.0 | \n",
+ " 0.0 | \n",
+ " ex_KHVAC_Radius Elbows / Taps | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 15932 | \n",
+ " 650dac91-a97a-4182-b882-b1b294b266e3-001ab1f3 | \n",
+ " Supply Air | \n",
+ " HVAC - Fresh Air | \n",
+ " FA 1 | \n",
+ " FA | \n",
+ " | \n",
+ " 450 mmx450 mm | \n",
+ " 450 mmx450 mm | \n",
+ " 0.0 | \n",
+ " ... | \n",
+ " 3605.0 | \n",
+ " 3380.0 | \n",
+ " 3155.0 | \n",
+ " 0.684 | \n",
+ " 380.0 | \n",
+ " 0.0 | \n",
+ " ex_KHVAC_Radius Elbows / Taps | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
5 rows × 52 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " dbId external_id System Classification \\\n",
+ "0 15897 90dee50f-d93e-45b7-bc25-79fdad85659a NaN \n",
+ "1 15898 9f5ab8de-4fa8-42be-abd0-ed572503e39f NaN \n",
+ "2 15900 7b428b65-e5bc-4d2f-bbd1-2e17a883b6df-00121a90 NaN \n",
+ "3 15901 650dac91-a97a-4182-b882-b1b294b266e3-001aaf9c Exhaust Air \n",
+ "4 15932 650dac91-a97a-4182-b882-b1b294b266e3-001ab1f3 Supply Air \n",
+ "\n",
+ " System Type System Name System Abbreviation Image Free Size \\\n",
+ "0 NaN NaN NaN NaN NaN \n",
+ "1 NaN NaN NaN NaN NaN \n",
+ "2 NaN NaN NaN NaN NaN \n",
+ "3 HVAC - Exhaust Air EA 1 EA 450 mmx450 mm \n",
+ "4 HVAC - Fresh Air FA 1 FA 450 mmx450 mm \n",
+ "\n",
+ " Overall Size Lining Thickness ... Upper End Top Elevation \\\n",
+ "0 NaN NaN ... NaN \n",
+ "1 NaN NaN ... NaN \n",
+ "2 NaN NaN ... NaN \n",
+ "3 450 mmx450 mm 0.0 ... 3605.0 \n",
+ "4 450 mmx450 mm 0.0 ... 3605.0 \n",
+ "\n",
+ " Middle Elevation Lower End Bottom Elevation Area Length Slope \\\n",
+ "0 NaN NaN NaN NaN NaN \n",
+ "1 NaN NaN NaN NaN NaN \n",
+ "2 NaN NaN NaN NaN NaN \n",
+ "3 3380.0 3155.0 0.684 380.0 0.0 \n",
+ "4 3380.0 3155.0 0.684 380.0 0.0 \n",
+ "\n",
+ " Type Name Upper End Centerline Elevation \\\n",
+ "0 NaN NaN \n",
+ "1 NaN NaN \n",
+ "2 NaN NaN \n",
+ "3 ex_KHVAC_Radius Elbows / Taps NaN \n",
+ "4 ex_KHVAC_Radius Elbows / Taps NaN \n",
+ "\n",
+ " Lower End Centerline Elevation Diameter \n",
+ "0 NaN NaN \n",
+ "1 NaN NaN \n",
+ "2 NaN NaN \n",
+ "3 NaN NaN \n",
+ "4 NaN NaN \n",
+ "\n",
+ "[5 rows x 52 columns]"
+ ]
+ },
+ "execution_count": 26,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df = prop_reader.get_data_by_categories([\"Pipes\",\"Ducts\"])\n",
+ "df.head()"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.11.5"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/APSToolkitPython/requirements-dev.txt b/APSToolkitPython/requirements-dev.txt
new file mode 100644
index 0000000..ac869fc
--- /dev/null
+++ b/APSToolkitPython/requirements-dev.txt
@@ -0,0 +1,6 @@
+pylint
+build
+twine
+wheel
+setuptools
+pdoc3
\ No newline at end of file
diff --git a/APSToolkitPython/requirements.txt b/APSToolkitPython/requirements.txt
new file mode 100644
index 0000000..a94cf69
--- /dev/null
+++ b/APSToolkitPython/requirements.txt
@@ -0,0 +1,2 @@
+requests
+pandas
\ No newline at end of file
diff --git a/APSToolkitPython/setup.py b/APSToolkitPython/setup.py
new file mode 100644
index 0000000..9ab040e
--- /dev/null
+++ b/APSToolkitPython/setup.py
@@ -0,0 +1,27 @@
+import setuptools
+
+with open("README.md") as f:
+ readme = f.read()
+
+setuptools.setup(
+ name="aps-toolkit",
+ version="0.0.5",
+ author="chuong mep",
+ author_email="chuongpqvn@gmail.com",
+ description="A Toolkit Autodesk Platform Services for Python",
+ long_description=readme,
+ long_description_content_type="text/markdown",
+ url="https://github.com/chuongmep/aps-toolkit",
+ project_urls={
+ "Bug Tracker": "https://github.com/chuongmep/aps-toolkit/issues",
+ },
+ classifiers=[
+ "Programming Language :: Python :: 3",
+ "License :: OSI Approved :: MIT License",
+ "Operating System :: OS Independent",
+ ],
+ package_dir={"": "src"},
+ packages=setuptools.find_packages(where="src"),
+ python_requires=">=3.9",
+ install_requires=['requests','pandas']
+)
\ No newline at end of file
diff --git a/APSToolkitPython/src/_trial_temp-1/_trial_marker b/APSToolkitPython/src/_trial_temp-1/_trial_marker
new file mode 100644
index 0000000..e69de29
diff --git a/APSToolkitPython/src/_trial_temp.lock/symlink b/APSToolkitPython/src/_trial_temp.lock/symlink
new file mode 100644
index 0000000..5b8940a
--- /dev/null
+++ b/APSToolkitPython/src/_trial_temp.lock/symlink
@@ -0,0 +1 @@
+654048
\ No newline at end of file
diff --git a/APSToolkitPython/src/_trial_temp/_trial_marker b/APSToolkitPython/src/_trial_temp/_trial_marker
new file mode 100644
index 0000000..e69de29
diff --git a/APSToolkitPython/src/aps_toolkit_python/Auth.py b/APSToolkitPython/src/aps_toolkit_python/Auth.py
new file mode 100644
index 0000000..a3cdf80
--- /dev/null
+++ b/APSToolkitPython/src/aps_toolkit_python/Auth.py
@@ -0,0 +1,30 @@
+import os
+import requests
+from .Token import Token
+class Auth:
+ def __init__(self, client_id=None, client_secret=None):
+ if client_id and client_secret:
+ self.client_id = client_id
+ self.client_secret = client_secret
+ else:
+ self.client_id = os.environ.get('APS_CLIENT_ID')
+ self.client_secret = os.environ.get('APS_CLIENT_SECRET')
+
+ def auth2leg(self) -> Token:
+ Host = "https://developer.api.autodesk.com"
+ url = "/authentication/v2/token"
+
+ # body
+ body = {
+ "client_id": self.client_id,
+ "client_secret": self.client_secret,
+ "grant_type": "client_credentials",
+ "scope": "data:read data:write data:search data:create bucket:read bucket:create user:read"
+ }
+ response = requests.post(Host + url, data=body)
+ content = response.json()
+ access_token = content['access_token']
+ expires_in = content['expires_in']
+ token_type = content['token_type']
+ result = Token(access_token, token_type, expires_in)
+ return result
\ No newline at end of file
diff --git a/APSToolkitPython/src/aps_toolkit_python/BIM360.py b/APSToolkitPython/src/aps_toolkit_python/BIM360.py
new file mode 100644
index 0000000..67f50f7
--- /dev/null
+++ b/APSToolkitPython/src/aps_toolkit_python/BIM360.py
@@ -0,0 +1,106 @@
+import requests
+import pandas as pd
+from .Auth import Auth
+
+class BIM360:
+ def __init__(self, token=None):
+ self.token = token
+ if self.token is None:
+ auth = Auth()
+ self.token = auth.auth2leg()
+ self.host = "https://developer.api.autodesk.com"
+
+ def get_hubs(self) :
+ headers = {'Authorization': 'Bearer ' + self.token.access_token}
+ url = f"{self.host}/project/v1/hubs"
+ response = requests.get(url, headers=headers)
+ return response.json()
+
+ def get_projects(self, hub_id):
+ headers = {'Authorization': 'Bearer ' + self.token.access_token}
+ url = f"{self.host}/project/v1/hubs/{hub_id}/projects"
+ response = requests.get(url, headers=headers)
+ return response.json()
+
+ def get_top_folders(self, hub_id, project_id):
+ headers = {'Authorization': 'Bearer ' + self.token.access_token}
+ url = f"{self.host}/project/v1/hubs/{hub_id}/projects/{project_id}/topFolders"
+ response = requests.get(url, headers=headers)
+ return response.json()
+
+ def get_folder_contents(self, project_id, folder_id):
+ headers = {'Authorization': 'Bearer ' + self.token.access_token}
+ url = f"{self.host}/data/v1/projects/{project_id}/folders/{folder_id}/contents"
+ response = requests.get(url, headers=headers)
+ return response.json()
+
+ def get_item_versions(self, project_id, item_id):
+ headers = {'Authorization': 'Bearer ' + self.token.access_token}
+ url = f"{self.host}/data/v1/projects/{project_id}/items/{item_id}/versions"
+ response = requests.get(url, headers=headers)
+ return response.json()
+
+ def batch_report_item_versions(self, project_id, item_id) -> pd.DataFrame:
+ # create a dataframe to save data report with columns : item_id,version,derivative_urn,last_modified_time
+ df = pd.DataFrame(columns=['item_id', 'version', 'derivative_urn', 'last_modified_time'])
+ headers = {'Authorization': 'Bearer ' + self.token.access_token}
+ url = f"{self.host}/data/v1/projects/{project_id}/items/{item_id}/versions"
+ response = requests.get(url, headers=headers)
+ item_versions = response.json()
+ for item_version in item_versions['data']:
+ version = item_version['attributes']['versionNumber']
+ # check if item_version have derivatives
+ if 'derivatives' not in item_version['relationships']:
+ continue
+ derivative_urn = item_version['relationships']['derivatives']['data']['id']
+ last_modified_time = item_version['attributes']['lastModifiedTime']
+ df = pd.concat([df, pd.DataFrame({'item_id': item_id, 'version': version, 'derivative_urn': derivative_urn,
+ 'last_modified_time': last_modified_time}, index=[0])], ignore_index=True)
+ return df
+
+ def batch_report_items(self, project_id, folder_id, extension=".rvt", is_sub_folder=False) -> pd.DataFrame:
+ df = pd.DataFrame(columns=['project_id', 'folder_id', 'item_name', 'item_id', 'last_version', 'derivative_urn',
+ 'last_modified_time'])
+ headers = {'Authorization': 'Bearer ' + self.token.access_token}
+ url = f"{self.host}/data/v1/projects/{project_id}/folders/{folder_id}/contents"
+ response = requests.get(url, headers=headers)
+ folder_contents = response.json()
+ for folder_content in folder_contents['data']:
+ if folder_content['type'] == "items":
+ item_id = folder_content['id']
+ item_name = folder_content['attributes']['displayName']
+ item_versions = self._get_latest_version(project_id, item_id)
+ # getfrom dict with keys : version
+ last_version = item_versions["version"]
+ derivative_urn = item_versions["derivative_urn"]
+ last_modified_time = folder_content['attributes']['lastModifiedTime']
+ df = pd.concat([df, pd.DataFrame(
+ {'project_id': project_id, 'folder_id': folder_id, 'item_name': item_name, 'item_id': item_id,
+ 'last_version': last_version, 'derivative_urn': derivative_urn,
+ 'last_modified_time': last_modified_time}, index=[0])], ignore_index=True)
+ elif folder_content['type'] == "folders" and is_sub_folder:
+ if is_sub_folder:
+ df = pd.concat(
+ [df, self.batch_report_items(project_id, folder_content['id'], extension, is_sub_folder)],
+ ignore_index=True)
+ return df
+
+ def _get_number_latest_item_version(self, project_id, item_id) -> int:
+ url = f"{self.host}/data/v1/projects/{project_id}/items/{item_id}/versions"
+ headers = {'Authorization': 'Bearer ' + self.token.access_token}
+ response = requests.get(url, headers=headers)
+ item_versions = response.json()
+ return len(item_versions['data'])
+
+ def _get_latest_version(self, project_id, item_id) -> dict:
+ # dict with keys : version,derivative_urn,last_modified_time
+ latest_version = {}
+ url = f"{self.host}/data/v1/projects/{project_id}/items/{item_id}/versions"
+ headers = {'Authorization': 'Bearer ' + self.token.access_token}
+ response = requests.get(url, headers=headers)
+ item_versions = response.json()
+ # add to latest_version
+ latest_version['version'] = item_versions['data'][0]['attributes']['versionNumber']
+ latest_version['last_modified_time'] = item_versions['data'][0]['attributes']['lastModifiedTime']
+ latest_version['derivative_urn'] = item_versions['data'][0]['relationships']['derivatives']['data']['id']
+ return latest_version
diff --git a/APSToolkitPython/src/aps_toolkit_python/ProDbReaderRevit.py b/APSToolkitPython/src/aps_toolkit_python/ProDbReaderRevit.py
new file mode 100644
index 0000000..33c0bd9
--- /dev/null
+++ b/APSToolkitPython/src/aps_toolkit_python/ProDbReaderRevit.py
@@ -0,0 +1,118 @@
+import gzip
+import json
+import re
+import codecs
+from typing import List
+from .PropReader import PropReader
+import pandas as pd
+
+
+class PropDbReaderRevit(PropReader):
+ def __int__(self, urn, token):
+ super().__init__(urn, token)
+
+ def _get_recursive_child(self, output, id, name):
+ children = self.get_children(id)
+ for child in children:
+ properties = self.enumerate_properties(child)
+ property = [prop.value for prop in properties if prop.name == name]
+ if len(property) == 0:
+ self._get_recursive_child(output, child, name)
+ else:
+ if str(property[0]) == "": continue
+ output[child] = property[0].strip()
+
+ def get_external_id(self, id) -> str:
+ return self.ids[id]
+
+ def get_all_categories(self) -> dict:
+ categories = {}
+ self._get_recursive_child(categories, 1, "_RC")
+ return categories
+
+ def get_all_families(self) -> dict:
+ families = {}
+ self._get_recursive_child(families, 1, "_RFN")
+ return families
+
+ def get_all_families_types(self) -> dict:
+ families_types = {}
+ self._get_recursive_child(families_types, 1, "_RFT")
+ return families_types
+
+ def get_data_by_category(self, category) -> pd.DataFrame:
+ categories = self.get_all_categories()
+ # if category starts with Revit, remove it
+ if category.startswith("Revit"):
+ category = category[5:].strip()
+ category_id = [key for key, value in categories.items() if value == category]
+ dataframe = self._get_recursive_ids(category_id)
+ return dataframe
+
+ def get_data_by_categories(self, categories: List[str]) -> pd.DataFrame:
+ dataframe = pd.DataFrame()
+ for category in categories:
+ dataframe = pd.concat([dataframe, self.get_data_by_category(category)], ignore_index=True)
+ return dataframe
+
+ def get_data_by_categories_and_params(self, categories: List[str], params: List[str]) -> pd.DataFrame:
+ dataframe = pd.DataFrame()
+ all_categories = self.get_all_categories()
+ category_ids = [key for key, value in all_categories.items() if value in categories]
+ for category_id in category_ids:
+ dataframe = pd.concat([dataframe, self._get_recursive_ids_prams([category_id], params)], ignore_index=True)
+ # remove all row have all values is null, ignore dbId and external_id columns
+ dataframe = dataframe.dropna(how='all',
+ subset=[col for col in dataframe.columns if col not in ['dbId', 'external_id']])
+ return dataframe
+
+ def get_data_by_family(self, family_name) -> pd.DataFrame:
+ families = self.get_all_families()
+ category_id = [key for key, value in families.items() if value == family_name]
+ dataframe = self._get_recursive_ids(category_id)
+ return dataframe
+
+ def get_data_by_family_type(self, family_type) -> pd.DataFrame:
+ family_types = self.get_all_families_types()
+ type_id = [key for key, value in family_types.items() if value == family_type]
+ dataframe = self._get_recursive_ids(type_id)
+ return dataframe
+
+ def _get_recursive_ids(self, childs: List[int]) -> pd.DataFrame:
+ dataframe = pd.DataFrame()
+ if len(childs) == 0:
+ return dataframe
+ for child_id in childs:
+ properties = self.get_properties(child_id)
+ db_id = child_id
+ external_id = self.ids[child_id]
+ properties['dbId'] = db_id
+ properties['external_id'] = external_id
+ singleDF = pd.DataFrame(properties, index=[0]) # Convert properties to DataFrame
+ singleDF = singleDF[
+ ['dbId', 'external_id'] + [col for col in singleDF.columns if col not in ['dbId', 'external_id']]]
+ dataframe = pd.concat([dataframe, singleDF], ignore_index=True)
+ ids = self.get_children(child_id)
+ dataframe = pd.concat([dataframe, self._get_recursive_ids(ids)], ignore_index=True) # Recurse for children
+ return dataframe
+
+ def _get_recursive_ids_prams(self, childs: List[int], params: List[str]) -> pd.DataFrame:
+ dataframe = pd.DataFrame()
+ if len(childs) == 0:
+ return dataframe
+ for child_id in childs:
+ properties = self.get_properties(child_id)
+ db_id = child_id
+ external_id = self.ids[child_id]
+ # filter just get properties name in params list
+ properties = {k: v for k, v in properties.items() if k in params}
+ properties['dbId'] = db_id
+ properties['external_id'] = external_id
+ singleDF = pd.DataFrame(properties, index=[0]) # Convert properties to DataFrame
+ singleDF = singleDF[
+ ['dbId', 'external_id'] + [col for col in singleDF.columns if col not in ['dbId', 'external_id']]]
+ dataframe = pd.concat([dataframe, singleDF], ignore_index=True)
+ ids = self.get_children(child_id)
+ dataframe = pd.concat([dataframe, self._get_recursive_ids_prams(ids, params)],
+ ignore_index=True) # Recurse for children
+ return dataframe
diff --git a/APSToolkitPython/src/aps_toolkit_python/PropReader.py b/APSToolkitPython/src/aps_toolkit_python/PropReader.py
new file mode 100644
index 0000000..1498a22
--- /dev/null
+++ b/APSToolkitPython/src/aps_toolkit_python/PropReader.py
@@ -0,0 +1,168 @@
+import gzip
+import json
+import re
+import codecs
+import requests
+
+
+class PropReader:
+
+ # def __init__(self, arg1, arg2=None, arg3=None, arg4=None, arg5=None):
+ # if isinstance(arg1, bytes):
+ # # If the first argument is bytes, assume buffer initialization
+ # self.ids = json.loads(codecs.decode(gzip.decompress(arg1), 'utf-8'))
+ # self.offsets = json.loads(codecs.decode(gzip.decompress(arg2), 'utf-8'))
+ # self.avs = json.loads(codecs.decode(gzip.decompress(arg3), 'utf-8'))
+ # self.attrs = json.loads(codecs.decode(gzip.decompress(arg4), 'utf-8'))
+ # self.vals = json.loads(codecs.decode(gzip.decompress(arg5), 'utf-8'))
+ # else:
+ # # Otherwise, assume file path initialization
+ # ids_path, offsets_path, avs_path, attrs_path, vals_path = arg1, arg2, arg3, arg4, arg5
+ # with gzip.open(ids_path, 'rb') as ids_file, gzip.open(offsets_path, 'rb') as offsets_file, \
+ # gzip.open(avs_path, 'rb') as avs_file, gzip.open(attrs_path, 'rb') as attrs_file, \
+ # gzip.open(vals_path, 'rb') as vals_file:
+ # self.ids = json.load(ids_file)
+ # self.offsets = json.load(offsets_file)
+ # self.avs = json.load(avs_file)
+ # self.attrs = json.load(attrs_file)
+ # self.vals = json.load(vals_file)
+ def __init__(self, urn, token):
+ items = [
+ "objects_attrs.json.gz",
+ "objects_vals.json.gz",
+ "objects_ids.json.gz",
+ "objects_offs.json.gz",
+ "objects_avs.json.gz",
+ "objects_ids.json.gz"
+ ]
+ # get manifest
+ host = "https://developer.api.autodesk.com"
+ URL = f"{host}/modelderivative/v2/designdata/{urn}/manifest"
+ access_token = token.access_token
+ # add headers authorization
+ headers = {
+ "Authorization": f"Bearer {access_token}"
+ }
+ # request
+ response = requests.get(URL, headers=headers)
+ json_response = response.json()
+ children = json_response['derivatives'][0]["children"]
+ path = ""
+ for child in children:
+ if child["type"] == "resource" and child["mime"] == "application/autodesk-db":
+ path = child["urn"]
+ break
+ downloaded_files = {}
+ for item in items:
+ path = f"urn:adsk.viewing:fs.file:{urn}/output/Resource/{item}"
+ url = f"{host}/modelderivative/v2/designdata/{urn}/manifest/{path}"
+ # add headers authorization
+
+ headers = {
+ "Authorization": f"Bearer {access_token}"
+ }
+ response = requests.get(url, headers=headers)
+ file_bytes = response.content
+ downloaded_files[item] = file_bytes
+ self.ids = json.loads(codecs.decode(gzip.decompress(downloaded_files["objects_ids.json.gz"]), 'utf-8'))
+ self.offsets = json.loads(codecs.decode(gzip.decompress(downloaded_files["objects_offs.json.gz"]), 'utf-8'))
+ self.avs = json.loads(codecs.decode(gzip.decompress(downloaded_files["objects_avs.json.gz"]), 'utf-8'))
+ self.attrs = json.loads(codecs.decode(gzip.decompress(downloaded_files["objects_attrs.json.gz"]), 'utf-8'))
+ self.vals = json.loads(codecs.decode(gzip.decompress(downloaded_files["objects_vals.json.gz"]), 'utf-8'))
+
+ def enumerate_properties(self, id) ->list:
+ properties = []
+ if 0 < id < len(self.offsets):
+ av_start = 2 * self.offsets[id]
+ av_end = len(self.avs) if id == len(self.offsets) - 1 else 2 * self.offsets[id + 1]
+ for i in range(av_start, av_end, 2):
+ attr_offset = self.avs[i]
+ val_offset = self.avs[i + 1]
+ attr_obj = self.attrs[attr_offset]
+
+ # Check if attr_obj is a list and has at least two elements
+ if isinstance(attr_obj, list) and len(attr_obj) >= 2:
+ property_id = self.ids[id]
+ name = attr_obj[0]
+ category = attr_obj[1]
+ data_type = self.attrs[2]
+ data_type_context = attr_obj[3]
+ description = attr_obj[4]
+ display_name = attr_obj[5]
+ flags = attr_obj[6]
+ display_precision = attr_obj[7]
+ forge_parameter_id = attr_obj[8]
+ value = self.vals[val_offset]
+ properties.append(
+ Property(property_id, name, category, data_type, data_type_context, description, display_name,
+ flags,
+ display_precision, forge_parameter_id, value))
+ return properties
+
+ def get_properties(self, id) ->dict:
+ props = {}
+ rg = re.compile(r'^__\w+__$')
+ for prop in self.enumerate_properties(id):
+ if prop.category and not rg.match(prop.category):
+ props[prop.name] = prop.value
+ return props
+
+ def get_properties_group_by_category(self, id) ->dict:
+ properties = {}
+ rg = re.compile(r'^__\w+__$')
+ categories = []
+
+ props = self.enumerate_properties(id)
+ for prop in props:
+ if prop.category:
+ if not rg.match(prop.category):
+ if not any(category in prop.category for category in categories):
+ categories.append(prop.category)
+
+ for category in categories:
+ prop_result = [prop for prop in props if prop.category == category]
+ prop_dictionary = []
+ for prop in prop_result:
+ prop_key = prop.name
+ prop_dictionary.append((prop_key, prop.value))
+ properties[category] = prop_dictionary
+
+ return properties
+
+ def get_children(self, id) ->list:
+ children = []
+ for prop in self.enumerate_properties(id):
+ if prop.category == "__child__":
+ children.append(int(prop.value))
+ return children
+
+ def get_parent(self, id) ->list:
+ parent = []
+ for prop in self.enumerate_properties(id):
+ if prop.category == "__parent__":
+ parent.append(int(prop.value))
+ return parent
+
+ def get_instance(self, id) ->list:
+ instance_of = []
+ for prop in self.enumerate_properties(id):
+ if prop.category == "__instanceof__":
+ instance_of.append(int(prop.value))
+ return instance_of
+
+
+class Property():
+ def __init__(self, id =None, name =None, category=None, data_type=None, data_type_context=None, description=None,
+ display_name=None, flags=None,
+ display_precision=None, forge_parameter_id=None, value=None):
+ self.id = id,
+ self.name = name
+ self.category = category
+ self.data_type = data_type
+ self.data_type_context = data_type_context
+ self.description = description
+ self.display_name = display_name
+ self.flags = flags
+ self.display_precision = display_precision
+ self.forge_parameter_id = forge_parameter_id
+ self.value = value
diff --git a/APSToolkitPython/src/aps_toolkit_python/Token.py b/APSToolkitPython/src/aps_toolkit_python/Token.py
new file mode 100644
index 0000000..5bdc77e
--- /dev/null
+++ b/APSToolkitPython/src/aps_toolkit_python/Token.py
@@ -0,0 +1,6 @@
+class Token():
+ def __init__(self, access_token, token_type, expires_in, refresh_token=None):
+ self.access_token = access_token
+ self.token_type = token_type
+ self.expires_in = expires_in
+ self.refresh_token = refresh_token
diff --git a/APSToolkitPython/src/aps_toolkit_python/__init__.py b/APSToolkitPython/src/aps_toolkit_python/__init__.py
new file mode 100644
index 0000000..408a281
--- /dev/null
+++ b/APSToolkitPython/src/aps_toolkit_python/__init__.py
@@ -0,0 +1,5 @@
+from .Auth import Auth
+from .BIM360 import BIM360
+from .ProDbReaderRevit import PropDbReaderRevit
+from .PropReader import PropReader
+from .Token import Token
diff --git a/APSToolkitPython/src/test/Forge-Python-Metadata.ipynb b/APSToolkitPython/src/test/Forge-Python-Metadata.ipynb
new file mode 100644
index 0000000..5d68b9c
--- /dev/null
+++ b/APSToolkitPython/src/test/Forge-Python-Metadata.ipynb
@@ -0,0 +1,6372 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Authentication 2Legged"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 74,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# authentication \n",
+ "import os\n",
+ "import requests\n",
+ "BASE = \"https://developer.api.autodesk.com\"\n",
+ "url = \"/authentication/v2/token\"\n",
+ "# body \n",
+ "body = {\n",
+ " \"client_id\": os.environ['APS_CLIENT_ID'],\n",
+ " \"client_secret\": os.environ['APS_CLIENT_SECRET'],\n",
+ " \"grant_type\": \"client_credentials\",\n",
+ " \"scope\": \"data:read data:write data:create bucket:read bucket:create\"\n",
+ "}\n",
+ "# request\n",
+ "response = requests.post(BASE + url, data=body)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 75,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "828\n"
+ ]
+ }
+ ],
+ "source": [
+ "token = response.json()['access_token']\n",
+ "print(len(token))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## URN"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 121,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "URN = \"dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLnRfTFFVUDZoU3l5UXo5bm1sTE1FUHc_dmVyc2lvbj02\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Get Manifest"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 122,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# get manifest \n",
+ "URL = f\"https://developer.api.autodesk.com/modelderivative/v2/designdata/{URN}/manifest\"\n",
+ "# add headers authorization\n",
+ "headers = {\n",
+ " \"Authorization\": f\"Bearer {token}\"\n",
+ "}\n",
+ "# request\n",
+ "response = requests.get(URL, headers=headers)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 124,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "json_respone = response.json()\n",
+ "# json_respone"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Database"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "urn:adsk.viewing:fs.file:dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkhYMk83eEtVUWZ1a0pfaGdIc3JYX0E_dmVyc2lvbj0y/output/Resource/model.sdb\n",
+ "URL: https://developer.api.autodesk.com/modelderivative/v2/designdata/dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkhYMk83eEtVUWZ1a0pfaGdIc3JYX0E_dmVyc2lvbj0y/manifest/urn:adsk.viewing:fs.file:dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkhYMk83eEtVUWZ1a0pfaGdIc3JYX0E_dmVyc2lvbj0y/output/Resource/model.sdb\n",
+ "Downloaded file output.db\n"
+ ]
+ }
+ ],
+ "source": [
+ "# filter children in json_respone have minmeType is \"application/autodesk-db\" in derivatives/children/children\n",
+ "childrens = json_respone['derivatives'][0][\"children\"]\n",
+ "path = \"\"\n",
+ "for child in childrens:\n",
+ " if child[\"type\"] == \"resource\" and child[\"mime\"] == \"application/autodesk-db\":\n",
+ " path = child[\"urn\"]\n",
+ " break\n",
+ "print(path)\n",
+ "host = \"https://developer.api.autodesk.com/\"\n",
+ "# get download link\n",
+ "URL = f\"{host}modelderivative/v2/designdata/{URN}/manifest/{path}\"\n",
+ "print(\"URL: \", URL)\n",
+ "# request\n",
+ "response = requests.get(URL, headers=headers)\n",
+ "# save db file\n",
+ "with open(\"output.db\", \"wb\") as f:\n",
+ " f.write(response.content)\n",
+ " f.close()\n",
+ "print(\"Downloaded file output.db\")\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "_objects_id\n",
+ "_objects_attr\n",
+ "_objects_val\n",
+ "_objects_eav\n"
+ ]
+ }
+ ],
+ "source": [
+ "# read sqlite file\n",
+ "import sqlite3\n",
+ "db_file = \"output.db\"\n",
+ "try:\n",
+ " # Connect to the SQLite database\n",
+ " conn = sqlite3.connect(db_file)\n",
+ "\n",
+ " # Create a cursor object to execute SQL queries\n",
+ " cursor = conn.cursor()\n",
+ " # Query the sqlite_master table to get the list of all tables\n",
+ " cursor.execute(\"SELECT name FROM sqlite_master WHERE type='table';\")\n",
+ "\n",
+ " # Fetch the results\n",
+ " tables = cursor.fetchall()\n",
+ "\n",
+ " # Extract table names and print them\n",
+ " for table in tables:\n",
+ " print(table[0])\n",
+ "\n",
+ "except sqlite3.Error as e:\n",
+ " print(f\"SQLite error: {e}\")\n",
+ "finally:\n",
+ " # Close the database connection when done\n",
+ " conn.close()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "#### Query _objects_attr"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " id | \n",
+ " external_id | \n",
+ " viewable_id | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 1 | \n",
+ " doc_b7e41464-a696-47d3-8554-93610a357a3c | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 1027b96e-c29e-46b9-b551-7bf7866f02a3-0007d3bf | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 3 | \n",
+ " 1027b96e-c29e-46b9-b551-7bf7866f02a3-0007d3c0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 1027b96e-c29e-46b9-b551-7bf7866f02a3-0007d40b | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1027b96e-c29e-46b9-b551-7bf7866f02a3-0007d40c | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 6 | \n",
+ " 1027b96e-c29e-46b9-b551-7bf7866f02a3-0007d40d | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 7 | \n",
+ " 1027b96e-c29e-46b9-b551-7bf7866f02a3-0007d40e | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 8 | \n",
+ " 1027b96e-c29e-46b9-b551-7bf7866f02a3-0007d40f | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 9 | \n",
+ " cbc0cb57-1e08-4bda-ae0e-fc95c041c40a-0008d34f | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 10 | \n",
+ " 8c6b0958-71dc-4b9a-872a-1120f0d091b9-0015d425 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 11 | \n",
+ " e48091ac-0ddf-432a-8d71-18c0ac49ab4a-00199cdd | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 12 | \n",
+ " 7930b9e5-d3ce-4c3a-869b-386ccbc5c31d-005ddee0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 13 | \n",
+ " 7930b9e5-d3ce-4c3a-869b-386ccbc5c31d-005de01f | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 14 | \n",
+ " f9c62406-7c50-11d5-93b8-0000863f27ad-00001fdd | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 15 | \n",
+ " f9c62406-7c50-11d5-93b8-0000863f27ad-00001ff0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 16 | \n",
+ " f9c62406-7c50-11d5-93b8-0000863f27ad-00002009 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 17 | \n",
+ " f9c62406-7c50-11d5-93b8-0000863f27ad-0000202d | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 18 | \n",
+ " aaf0d941-2812-4de4-b1fd-32415eccc36b-00024606 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 19 | \n",
+ " aaf0d941-2812-4de4-b1fd-32415eccc36b-00024d0f | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 20 | \n",
+ " e0656d8a-1a51-418f-973d-e8d390973396-00030eb7 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " id external_id viewable_id\n",
+ "0 1 doc_b7e41464-a696-47d3-8554-93610a357a3c None\n",
+ "1 2 1027b96e-c29e-46b9-b551-7bf7866f02a3-0007d3bf None\n",
+ "2 3 1027b96e-c29e-46b9-b551-7bf7866f02a3-0007d3c0 None\n",
+ "3 4 1027b96e-c29e-46b9-b551-7bf7866f02a3-0007d40b None\n",
+ "4 5 1027b96e-c29e-46b9-b551-7bf7866f02a3-0007d40c None\n",
+ "5 6 1027b96e-c29e-46b9-b551-7bf7866f02a3-0007d40d None\n",
+ "6 7 1027b96e-c29e-46b9-b551-7bf7866f02a3-0007d40e None\n",
+ "7 8 1027b96e-c29e-46b9-b551-7bf7866f02a3-0007d40f None\n",
+ "8 9 cbc0cb57-1e08-4bda-ae0e-fc95c041c40a-0008d34f None\n",
+ "9 10 8c6b0958-71dc-4b9a-872a-1120f0d091b9-0015d425 None\n",
+ "10 11 e48091ac-0ddf-432a-8d71-18c0ac49ab4a-00199cdd None\n",
+ "11 12 7930b9e5-d3ce-4c3a-869b-386ccbc5c31d-005ddee0 None\n",
+ "12 13 7930b9e5-d3ce-4c3a-869b-386ccbc5c31d-005de01f None\n",
+ "13 14 f9c62406-7c50-11d5-93b8-0000863f27ad-00001fdd None\n",
+ "14 15 f9c62406-7c50-11d5-93b8-0000863f27ad-00001ff0 None\n",
+ "15 16 f9c62406-7c50-11d5-93b8-0000863f27ad-00002009 None\n",
+ "16 17 f9c62406-7c50-11d5-93b8-0000863f27ad-0000202d None\n",
+ "17 18 aaf0d941-2812-4de4-b1fd-32415eccc36b-00024606 None\n",
+ "18 19 aaf0d941-2812-4de4-b1fd-32415eccc36b-00024d0f None\n",
+ "19 20 e0656d8a-1a51-418f-973d-e8d390973396-00030eb7 None"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Read data from _objects_attr\n",
+ "import pandas as pd\n",
+ "# Read data from _objects_id\n",
+ "conn = sqlite3.connect(db_file)\n",
+ "data_objects_id = pd.read_sql_query(\"SELECT * FROM _objects_id\", conn)\n",
+ "data_objects_id.head(20)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " id | \n",
+ " name | \n",
+ " category | \n",
+ " data_type | \n",
+ " data_type_context | \n",
+ " description | \n",
+ " display_name | \n",
+ " flags | \n",
+ " display_precision | \n",
+ " forge_parameter | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 1 | \n",
+ " name | \n",
+ " __name__ | \n",
+ " 20 | \n",
+ " None | \n",
+ " None | \n",
+ " None | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 2 | \n",
+ " child | \n",
+ " __child__ | \n",
+ " 11 | \n",
+ " None | \n",
+ " None | \n",
+ " None | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 3 | \n",
+ " parent | \n",
+ " __parent__ | \n",
+ " 11 | \n",
+ " None | \n",
+ " None | \n",
+ " None | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 4 | \n",
+ " instanceof_objid | \n",
+ " __instanceof__ | \n",
+ " 11 | \n",
+ " None | \n",
+ " None | \n",
+ " None | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 5 | \n",
+ " hastable | \n",
+ " __hastable__ | \n",
+ " 11 | \n",
+ " None | \n",
+ " None | \n",
+ " None | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 6 | \n",
+ " viewable_in | \n",
+ " __viewable_in__ | \n",
+ " 20 | \n",
+ " None | \n",
+ " None | \n",
+ " None | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 7 | \n",
+ " xref | \n",
+ " __externalref__ | \n",
+ " 20 | \n",
+ " None | \n",
+ " None | \n",
+ " None | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 8 | \n",
+ " is_doc_property | \n",
+ " __document__ | \n",
+ " 1 | \n",
+ " None | \n",
+ " None | \n",
+ " None | \n",
+ " 3 | \n",
+ " 0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 9 | \n",
+ " schema_name | \n",
+ " __document__ | \n",
+ " 20 | \n",
+ " None | \n",
+ " None | \n",
+ " None | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 10 | \n",
+ " schema_version | \n",
+ " __document__ | \n",
+ " 20 | \n",
+ " None | \n",
+ " None | \n",
+ " None | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 11 | \n",
+ " hyperlink | \n",
+ " __hyperlink__ | \n",
+ " 20 | \n",
+ " None | \n",
+ " None | \n",
+ " None | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 12 | \n",
+ " node_flags | \n",
+ " __node_flags__ | \n",
+ " 2 | \n",
+ " None | \n",
+ " None | \n",
+ " None | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 13 | \n",
+ " Category | \n",
+ " __category__ | \n",
+ " 20 | \n",
+ " None | \n",
+ " None | \n",
+ " None | \n",
+ " 1 | \n",
+ " 0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 14 | \n",
+ " Organization Name | \n",
+ " Identity Data | \n",
+ " 20 | \n",
+ " | \n",
+ " None | \n",
+ " Organization Name | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 15 | \n",
+ " Organization Description | \n",
+ " Identity Data | \n",
+ " 20 | \n",
+ " | \n",
+ " None | \n",
+ " Organization Description | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 16 | \n",
+ " Building Name | \n",
+ " Identity Data | \n",
+ " 20 | \n",
+ " | \n",
+ " None | \n",
+ " Building Name | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 17 | \n",
+ " Author | \n",
+ " Identity Data | \n",
+ " 20 | \n",
+ " | \n",
+ " None | \n",
+ " Author | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 18 | \n",
+ " Project Issue Date | \n",
+ " Other | \n",
+ " 20 | \n",
+ " | \n",
+ " None | \n",
+ " Project Issue Date | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 19 | \n",
+ " Project Status | \n",
+ " Other | \n",
+ " 20 | \n",
+ " | \n",
+ " None | \n",
+ " Project Status | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 20 | \n",
+ " Client Name | \n",
+ " Other | \n",
+ " 20 | \n",
+ " | \n",
+ " None | \n",
+ " Client Name | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " id name category data_type \\\n",
+ "0 1 name __name__ 20 \n",
+ "1 2 child __child__ 11 \n",
+ "2 3 parent __parent__ 11 \n",
+ "3 4 instanceof_objid __instanceof__ 11 \n",
+ "4 5 hastable __hastable__ 11 \n",
+ "5 6 viewable_in __viewable_in__ 20 \n",
+ "6 7 xref __externalref__ 20 \n",
+ "7 8 is_doc_property __document__ 1 \n",
+ "8 9 schema_name __document__ 20 \n",
+ "9 10 schema_version __document__ 20 \n",
+ "10 11 hyperlink __hyperlink__ 20 \n",
+ "11 12 node_flags __node_flags__ 2 \n",
+ "12 13 Category __category__ 20 \n",
+ "13 14 Organization Name Identity Data 20 \n",
+ "14 15 Organization Description Identity Data 20 \n",
+ "15 16 Building Name Identity Data 20 \n",
+ "16 17 Author Identity Data 20 \n",
+ "17 18 Project Issue Date Other 20 \n",
+ "18 19 Project Status Other 20 \n",
+ "19 20 Client Name Other 20 \n",
+ "\n",
+ " data_type_context description display_name flags \\\n",
+ "0 None None None 0 \n",
+ "1 None None None 1 \n",
+ "2 None None None 1 \n",
+ "3 None None None 1 \n",
+ "4 None None None 1 \n",
+ "5 None None None 1 \n",
+ "6 None None None 1 \n",
+ "7 None None None 3 \n",
+ "8 None None None 1 \n",
+ "9 None None None 1 \n",
+ "10 None None None 1 \n",
+ "11 None None None 1 \n",
+ "12 None None None 1 \n",
+ "13 None Organization Name 0 \n",
+ "14 None Organization Description 0 \n",
+ "15 None Building Name 0 \n",
+ "16 None Author 0 \n",
+ "17 None Project Issue Date 0 \n",
+ "18 None Project Status 0 \n",
+ "19 None Client Name 0 \n",
+ "\n",
+ " display_precision forge_parameter \n",
+ "0 0 None \n",
+ "1 0 None \n",
+ "2 0 None \n",
+ "3 0 None \n",
+ "4 0 None \n",
+ "5 0 None \n",
+ "6 0 None \n",
+ "7 0 None \n",
+ "8 0 None \n",
+ "9 0 None \n",
+ "10 0 None \n",
+ "11 0 None \n",
+ "12 0 None \n",
+ "13 0 None \n",
+ "14 0 None \n",
+ "15 0 None \n",
+ "16 0 None \n",
+ "17 0 None \n",
+ "18 0 None \n",
+ "19 0 None "
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Read data from _objects_attr\n",
+ "data_objects_id = pd.read_sql_query(\"SELECT * FROM _objects_attr\", conn)\n",
+ "data_objects_id.head(20)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Query _objects_val"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import pandas as pd\n",
+ "# Read data from _objects_val\n",
+ "data_objects_id = pd.read_sql_query(\"SELECT * FROM _objects_val\", conn)\n",
+ "data_objects_id.head(20)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Query _objects_attr"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " id | \n",
+ " entity_id | \n",
+ " attribute_id | \n",
+ " value_id | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 2 | \n",
+ " 1 | \n",
+ " 9 | \n",
+ " 2 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 3 | \n",
+ " 1 | \n",
+ " 10 | \n",
+ " 3 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 4 | \n",
+ " 1 | \n",
+ " 8 | \n",
+ " 4 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 5 | \n",
+ " 1 | \n",
+ " 13 | \n",
+ " 5 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 6 | \n",
+ " 1 | \n",
+ " 14 | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 7 | \n",
+ " 1 | \n",
+ " 15 | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 8 | \n",
+ " 1 | \n",
+ " 16 | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 9 | \n",
+ " 1 | \n",
+ " 17 | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 10 | \n",
+ " 1 | \n",
+ " 18 | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 11 | \n",
+ " 1 | \n",
+ " 19 | \n",
+ " 8 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 12 | \n",
+ " 1 | \n",
+ " 20 | \n",
+ " 9 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 13 | \n",
+ " 1 | \n",
+ " 21 | \n",
+ " 10 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 14 | \n",
+ " 1 | \n",
+ " 22 | \n",
+ " 11 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 15 | \n",
+ " 1 | \n",
+ " 23 | \n",
+ " 12 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 16 | \n",
+ " 1 | \n",
+ " 24 | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 17 | \n",
+ " 1 | \n",
+ " 25 | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 18 | \n",
+ " 1 | \n",
+ " 26 | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 19 | \n",
+ " 1 | \n",
+ " 27 | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 20 | \n",
+ " 1 | \n",
+ " 28 | \n",
+ " 6 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " id entity_id attribute_id value_id\n",
+ "0 1 1 1 1\n",
+ "1 2 1 9 2\n",
+ "2 3 1 10 3\n",
+ "3 4 1 8 4\n",
+ "4 5 1 13 5\n",
+ "5 6 1 14 6\n",
+ "6 7 1 15 6\n",
+ "7 8 1 16 6\n",
+ "8 9 1 17 6\n",
+ "9 10 1 18 7\n",
+ "10 11 1 19 8\n",
+ "11 12 1 20 9\n",
+ "12 13 1 21 10\n",
+ "13 14 1 22 11\n",
+ "14 15 1 23 12\n",
+ "15 16 1 24 6\n",
+ "16 17 1 25 6\n",
+ "17 18 1 26 6\n",
+ "18 19 1 27 6\n",
+ "19 20 1 28 6"
+ ]
+ },
+ "execution_count": 12,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Read data from _objects_attr\n",
+ "import pandas as pd\n",
+ "# Read data from _objects_id\n",
+ "data_objects_id = pd.read_sql_query(\"SELECT * FROM _objects_eav\", conn)\n",
+ "data_objects_id.head(20)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " externalId | \n",
+ " category | \n",
+ " display_name | \n",
+ " value | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 00466599-98e9-4072-b279-e18b9d0e5bc9-001fab06 | \n",
+ " Identity Data | \n",
+ " Workset | \n",
+ " A-F0-Room Separator | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 00466599-98e9-4072-b279-e18b9d0e5bc9-001fab06 | \n",
+ " Phasing | \n",
+ " Phase Created | \n",
+ " New Construction | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 00466599-98e9-4072-b279-e18b9d0e5bc9-001fab06 | \n",
+ " Phasing | \n",
+ " Phase Demolished | \n",
+ " None | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 00466599-98e9-4072-b279-e18b9d0e5bc9-001fab06 | \n",
+ " Identity Data | \n",
+ " Edited by | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 00466599-98e9-4072-b279-e18b9d0e5bc9-001fab06 | \n",
+ " Constraints | \n",
+ " Moves With Nearby Elements | \n",
+ " 1 | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 832999 | \n",
+ " ffb936c7-1b5f-4e1e-9e97-e6852f1e9e52-0032c5eb | \n",
+ " Other | \n",
+ " Steel Cantilever | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " 833000 | \n",
+ " ffb936c7-1b5f-4e1e-9e97-e6852f1e9e52-0032c5eb | \n",
+ " Analytical Alignment | \n",
+ " Alignment Method | \n",
+ " Auto-Detect | \n",
+ "
\n",
+ " \n",
+ " 833001 | \n",
+ " ffb936c7-1b5f-4e1e-9e97-e6852f1e9e52-0032c5eb | \n",
+ " Analytical Alignment | \n",
+ " In-Plane Projection | \n",
+ " Floor/Slab Edge | \n",
+ "
\n",
+ " \n",
+ " 833002 | \n",
+ " ffb936c7-1b5f-4e1e-9e97-e6852f1e9e52-0032c5eb | \n",
+ " Analytical Alignment | \n",
+ " Manually Adjusted | \n",
+ " 0.0 | \n",
+ "
\n",
+ " \n",
+ " 833003 | \n",
+ " ffb936c7-1b5f-4e1e-9e97-e6852f1e9e52-0032c5eb | \n",
+ " Dimensions | \n",
+ " Length | \n",
+ " 250.0 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
833004 rows × 4 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " externalId category \\\n",
+ "0 00466599-98e9-4072-b279-e18b9d0e5bc9-001fab06 Identity Data \n",
+ "1 00466599-98e9-4072-b279-e18b9d0e5bc9-001fab06 Phasing \n",
+ "2 00466599-98e9-4072-b279-e18b9d0e5bc9-001fab06 Phasing \n",
+ "3 00466599-98e9-4072-b279-e18b9d0e5bc9-001fab06 Identity Data \n",
+ "4 00466599-98e9-4072-b279-e18b9d0e5bc9-001fab06 Constraints \n",
+ "... ... ... \n",
+ "832999 ffb936c7-1b5f-4e1e-9e97-e6852f1e9e52-0032c5eb Other \n",
+ "833000 ffb936c7-1b5f-4e1e-9e97-e6852f1e9e52-0032c5eb Analytical Alignment \n",
+ "833001 ffb936c7-1b5f-4e1e-9e97-e6852f1e9e52-0032c5eb Analytical Alignment \n",
+ "833002 ffb936c7-1b5f-4e1e-9e97-e6852f1e9e52-0032c5eb Analytical Alignment \n",
+ "833003 ffb936c7-1b5f-4e1e-9e97-e6852f1e9e52-0032c5eb Dimensions \n",
+ "\n",
+ " display_name value \n",
+ "0 Workset A-F0-Room Separator \n",
+ "1 Phase Created New Construction \n",
+ "2 Phase Demolished None \n",
+ "3 Edited by \n",
+ "4 Moves With Nearby Elements 1 \n",
+ "... ... ... \n",
+ "832999 Steel Cantilever 0.0 \n",
+ "833000 Alignment Method Auto-Detect \n",
+ "833001 In-Plane Projection Floor/Slab Edge \n",
+ "833002 Manually Adjusted 0.0 \n",
+ "833003 Length 250.0 \n",
+ "\n",
+ "[833004 rows x 4 columns]"
+ ]
+ },
+ "execution_count": 13,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Define and execute the SQL query with a JOIN statement\n",
+ "conn = sqlite3.connect(db_file)\n",
+ "# Define and execute the SQL query with JOIN statements\n",
+ "query = \"\"\"\n",
+ "SELECT _objects_id.external_id AS externalId, _objects_attr.category AS category,_objects_attr.display_name, _objects_val.value\n",
+ "FROM _objects_id\n",
+ "JOIN _objects_eav ON _objects_id.id = _objects_eav.entity_id\n",
+ "JOIN _objects_attr ON _objects_eav.attribute_id = _objects_attr.id\n",
+ "JOIN _objects_val ON _objects_eav.value_id = _objects_val.id\n",
+ "WHERE category NOT LIKE '\\_\\_%\\_\\_' ESCAPE '\\\\' \n",
+ "ORDER BY externalId;\n",
+ "\"\"\"\n",
+ "data = pd.read_sql_query(query, conn)\n",
+ "data"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Get All Categories"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " category | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 1 | \n",
+ " | \n",
+ "
\n",
+ " \n",
+ " 98 | \n",
+ " <Area Boundary> | \n",
+ "
\n",
+ " \n",
+ " 44 | \n",
+ " <Room Separation> | \n",
+ "
\n",
+ " \n",
+ " 39 | \n",
+ " <Sketch> | \n",
+ "
\n",
+ " \n",
+ " 93 | \n",
+ " <Stair/Ramp Sketch: Boundary> | \n",
+ "
\n",
+ " \n",
+ " 94 | \n",
+ " <Stair/Ramp Sketch: Stair Path> | \n",
+ "
\n",
+ " \n",
+ " 35 | \n",
+ " Analysis Display Style | \n",
+ "
\n",
+ " \n",
+ " 72 | \n",
+ " Analytical Beams | \n",
+ "
\n",
+ " \n",
+ " 88 | \n",
+ " Analytical Columns | \n",
+ "
\n",
+ " \n",
+ " 100 | \n",
+ " Analytical Floors | \n",
+ "
\n",
+ " \n",
+ " 102 | \n",
+ " Analytical Foundation Slabs | \n",
+ "
\n",
+ " \n",
+ " 86 | \n",
+ " Analytical Isolated Foundations | \n",
+ "
\n",
+ " \n",
+ " 73 | \n",
+ " Analytical Nodes | \n",
+ "
\n",
+ " \n",
+ " 80 | \n",
+ " Analytical Walls | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " Area Schemes | \n",
+ "
\n",
+ " \n",
+ " 60 | \n",
+ " Automatic Sketch Dimensions | \n",
+ "
\n",
+ " \n",
+ " 82 | \n",
+ " Balusters | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " Building Type Settings | \n",
+ "
\n",
+ " \n",
+ " 31 | \n",
+ " Cameras | \n",
+ "
\n",
+ " \n",
+ " 75 | \n",
+ " Casework | \n",
+ "
\n",
+ " \n",
+ " 61 | \n",
+ " Ceilings | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " Color Fill Schema | \n",
+ "
\n",
+ " \n",
+ " 56 | \n",
+ " Constraints | \n",
+ "
\n",
+ " \n",
+ " 54 | \n",
+ " Curtain Panels | \n",
+ "
\n",
+ " \n",
+ " 55 | \n",
+ " Curtain Wall Grids | \n",
+ "
\n",
+ " \n",
+ " 57 | \n",
+ " Curtain Wall Mullions | \n",
+ "
\n",
+ " \n",
+ " 101 | \n",
+ " Detail Groups | \n",
+ "
\n",
+ " \n",
+ " 68 | \n",
+ " Detail Items | \n",
+ "
\n",
+ " \n",
+ " 58 | \n",
+ " Dimensions | \n",
+ "
\n",
+ " \n",
+ " 52 | \n",
+ " Divisions | \n",
+ "
\n",
+ " \n",
+ " 83 | \n",
+ " Door Tags | \n",
+ "
\n",
+ " \n",
+ " 45 | \n",
+ " Doors | \n",
+ "
\n",
+ " \n",
+ " 23 | \n",
+ " Electrical Demand Factor Definitions | \n",
+ "
\n",
+ " \n",
+ " 29 | \n",
+ " Electrical Load Classification Parameter Element | \n",
+ "
\n",
+ " \n",
+ " 24 | \n",
+ " Electrical Load Classifications | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " Elevations | \n",
+ "
\n",
+ " \n",
+ " 95 | \n",
+ " Fascias | \n",
+ "
\n",
+ " \n",
+ " 50 | \n",
+ " Floors | \n",
+ "
\n",
+ " \n",
+ " 74 | \n",
+ " Furniture | \n",
+ "
\n",
+ " \n",
+ " 78 | \n",
+ " Furniture Systems | \n",
+ "
\n",
+ " \n",
+ " 84 | \n",
+ " Generic Model Tags | \n",
+ "
\n",
+ " \n",
+ " 47 | \n",
+ " Generic Models | \n",
+ "
\n",
+ " \n",
+ " 36 | \n",
+ " Grids | \n",
+ "
\n",
+ " \n",
+ " 67 | \n",
+ " Gutters | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " HVAC Load Schedules | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " HVAC Zones | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " Internal Origin | \n",
+ "
\n",
+ " \n",
+ " 92 | \n",
+ " Landings | \n",
+ "
\n",
+ " \n",
+ " 34 | \n",
+ " Legend Components | \n",
+ "
\n",
+ " \n",
+ " 37 | \n",
+ " Lines | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " category\n",
+ "1 \n",
+ "98 \n",
+ "44 \n",
+ "39 \n",
+ "93 \n",
+ "94 \n",
+ "35 Analysis Display Style\n",
+ "72 Analytical Beams\n",
+ "88 Analytical Columns\n",
+ "100 Analytical Floors\n",
+ "102 Analytical Foundation Slabs\n",
+ "86 Analytical Isolated Foundations\n",
+ "73 Analytical Nodes\n",
+ "80 Analytical Walls\n",
+ "6 Area Schemes\n",
+ "60 Automatic Sketch Dimensions\n",
+ "82 Balusters\n",
+ "19 Building Type Settings\n",
+ "31 Cameras\n",
+ "75 Casework\n",
+ "61 Ceilings\n",
+ "16 Color Fill Schema\n",
+ "56 Constraints\n",
+ "54 Curtain Panels\n",
+ "55 Curtain Wall Grids\n",
+ "57 Curtain Wall Mullions\n",
+ "101 Detail Groups\n",
+ "68 Detail Items\n",
+ "58 Dimensions\n",
+ "52 Divisions\n",
+ "83 Door Tags\n",
+ "45 Doors\n",
+ "23 Electrical Demand Factor Definitions\n",
+ "29 Electrical Load Classification Parameter Element\n",
+ "24 Electrical Load Classifications\n",
+ "3 Elevations\n",
+ "95 Fascias\n",
+ "50 Floors\n",
+ "74 Furniture\n",
+ "78 Furniture Systems\n",
+ "84 Generic Model Tags\n",
+ "47 Generic Models\n",
+ "36 Grids\n",
+ "67 Gutters\n",
+ "18 HVAC Load Schedules\n",
+ "17 HVAC Zones\n",
+ "12 Internal Origin\n",
+ "92 Landings\n",
+ "34 Legend Components\n",
+ "37 Lines"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Query filter return list \n",
+ "conn = sqlite3.connect(db_file)\n",
+ "# Define and execute the SQL query with JOIN statements\n",
+ "query = \"\"\"\n",
+ "SELECT _objects_id.external_id, _objects_attr.category,_objects_attr.display_name, _objects_val.value\n",
+ "FROM _objects_id\n",
+ "JOIN _objects_eav ON _objects_id.id = _objects_eav.entity_id\n",
+ "JOIN _objects_attr ON _objects_eav.attribute_id = _objects_attr.id\n",
+ "JOIN _objects_val ON _objects_eav.value_id = _objects_val.id\n",
+ "WHERE _objects_attr.name LIKE '_RC';\n",
+ "\"\"\"\n",
+ "df_categories = pd.read_sql_query(query, conn)\n",
+ "# get unique values from the category column\n",
+ "categories = df_categories['value'].unique()\n",
+ "# create a dataframe for categories\n",
+ "df_categories = pd.DataFrame(categories, columns=['category'])\n",
+ "df_categories.head(50)\n",
+ "df_categories.sort_values(by=['category'], inplace=True)\n",
+ "df_categories.head(50)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "array(['Phases', '', 'Materials', 'Elevations', 'Views',\n",
+ " 'Primary Contours', 'Area Schemes', 'Shared Site',\n",
+ " 'Work Plane Grid', 'Project Information', 'Revision',\n",
+ " 'Structural Load Cases', 'Internal Origin', 'Schedules',\n",
+ " 'Text Notes', 'Reference Planes', 'Color Fill Schema',\n",
+ " 'HVAC Zones', 'HVAC Load Schedules', 'Building Type Settings',\n",
+ " 'Space Type Settings', 'Survey Point', 'Project Base Point',\n",
+ " 'Electrical Demand Factor Definitions',\n",
+ " 'Electrical Load Classifications',\n",
+ " 'Panel Schedule Templates - Branch Panel',\n",
+ " 'Panel Schedule Templates - Data Panel',\n",
+ " 'Panel Schedule Templates - Switchboard', 'Sun Path',\n",
+ " 'Electrical Load Classification Parameter Element',\n",
+ " 'Pipe Segments', 'Cameras', 'Section Boxes', 'Material Assets',\n",
+ " 'Legend Components', 'Analysis Display Style', 'Grids', 'Lines',\n",
+ " 'Matchline', '', 'Walls', 'Stacked Walls', 'Roofs',\n",
+ " 'Rooms', '', 'Doors', 'Room Tags',\n",
+ " 'Generic Models', 'Rectangular Straight Wall Opening',\n",
+ " 'Specialty Equipment', 'Floors', 'RVT Links', 'Divisions', 'Parts',\n",
+ " 'Curtain Panels', 'Curtain Wall Grids', 'Constraints',\n",
+ " 'Curtain Wall Mullions', 'Dimensions', 'Revision Clouds',\n",
+ " 'Automatic Sketch Dimensions', 'Ceilings', 'Roof opening cut',\n",
+ " 'Scope Boxes', 'Railings', 'Top Rails',\n",
+ " 'Railing Rail Path Extension Lines', 'Gutters', 'Detail Items',\n",
+ " 'Wall Sweeps', 'Title Blocks', 'Structural Framing',\n",
+ " 'Analytical Beams', 'Analytical Nodes', 'Furniture', 'Casework',\n",
+ " 'Plumbing Fixtures', 'Split Face', 'Furniture Systems',\n",
+ " 'Model Groups', 'Analytical Walls', 'Plan Region', 'Balusters',\n",
+ " 'Door Tags', 'Generic Model Tags', 'Structural Foundations',\n",
+ " 'Analytical Isolated Foundations', 'Structural Columns',\n",
+ " 'Analytical Columns', 'Stairs', 'Runs', 'Supports', 'Landings',\n",
+ " '', '',\n",
+ " 'Fascias', 'X-F10A-LAY-F0-02-GFPEN-001.dwg', 'Spot Elevations',\n",
+ " '', 'Point Loads', 'Analytical Floors',\n",
+ " 'Detail Groups', 'Analytical Foundation Slabs', 'Stair Paths',\n",
+ " 'X-F10A-LAY-F0-03-AFEXT-001.dwg', 'Mass',\n",
+ " 'X-F10A-LAY-F0-02-EEQSM-001-1.dwg', 'Spot Slopes',\n",
+ " 'Revision Numbering Sequences'], dtype=object)"
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# unormalized data with columns : external_id, RevitCategory, ParameterCategory, ParameterName, DataType, DataTypeContext,ParameterValue\n",
+ "conn = sqlite3.connect(db_file)\n",
+ "# Define and execute the SQL query with JOIN statements\n",
+ "query = \"\"\"\n",
+ "SELECT _objects_id.external_id, _objects_attr.category,_objects_attr.display_name, _objects_val.value\n",
+ "FROM _objects_id\n",
+ "JOIN _objects_eav ON _objects_id.id = _objects_eav.entity_id\n",
+ "JOIN _objects_attr ON _objects_eav.attribute_id = _objects_attr.id\n",
+ "JOIN _objects_val ON _objects_eav.value_id = _objects_val.id\n",
+ "WHERE _objects_attr.name LIKE '_RC';\n",
+ "\"\"\"\n",
+ "df_categories = pd.read_sql_query(query, conn)\n",
+ "# get unique values from the category column\n",
+ "categories = df_categories['value'].unique()\n",
+ "categories"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## PropReader"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Init Class"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 138,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import gzip\n",
+ "import json\n",
+ "import re\n",
+ "import codecs\n",
+ "class PropDbReader:\n",
+ " def __init__(self, arg1, arg2=None, arg3=None, arg4=None, arg5=None):\n",
+ " if isinstance(arg1, bytes):\n",
+ " # If the first argument is bytes, assume buffer initialization\n",
+ " self.ids = json.loads(codecs.decode(gzip.decompress(arg1), 'utf-8'))\n",
+ " self.offsets = json.loads(codecs.decode(gzip.decompress(arg2), 'utf-8'))\n",
+ " self.avs = json.loads(codecs.decode(gzip.decompress(arg3), 'utf-8'))\n",
+ " self.attrs = json.loads(codecs.decode(gzip.decompress(arg4), 'utf-8'))\n",
+ " self.vals = json.loads(codecs.decode(gzip.decompress(arg5), 'utf-8'))\n",
+ " else:\n",
+ " # Otherwise, assume file path initialization\n",
+ " ids_path, offsets_path, avs_path, attrs_path, vals_path = arg1, arg2, arg3, arg4, arg5\n",
+ " with gzip.open(ids_path, 'rb') as ids_file, gzip.open(offsets_path, 'rb') as offsets_file, \\\n",
+ " gzip.open(avs_path, 'rb') as avs_file, gzip.open(attrs_path, 'rb') as attrs_file, \\\n",
+ " gzip.open(vals_path, 'rb') as vals_file:\n",
+ " self.ids = json.load(ids_file)\n",
+ " self.offsets = json.load(offsets_file)\n",
+ " self.avs = json.load(avs_file)\n",
+ " self.attrs = json.load(attrs_file)\n",
+ " self.vals = json.load(vals_file)\n",
+ " \n",
+ " def enumerateProperties(self, id):\n",
+ " properties = []\n",
+ " if 0 < id < len(self.offsets):\n",
+ " av_start = 2 * self.offsets[id]\n",
+ " av_end = len(self.avs) if id == len(self.offsets) - 1 else 2 * self.offsets[id + 1]\n",
+ " for i in range(av_start, av_end, 2):\n",
+ " attr_offset = self.avs[i]\n",
+ " val_offset = self.avs[i + 1]\n",
+ " attr_obj = self.attrs[attr_offset]\n",
+ "\n",
+ " # Check if attr_obj is a list and has at least two elements\n",
+ " if isinstance(attr_obj, list) and len(attr_obj) >= 2:\n",
+ " name = attr_obj[0]\n",
+ " category = attr_obj[1]\n",
+ " else:\n",
+ " name = \"N/A\"\n",
+ " category = \"N/A\"\n",
+ "\n",
+ " value = self.vals[val_offset]\n",
+ " properties.append(Property(name, category, value))\n",
+ " return properties\n",
+ "\n",
+ "\n",
+ " def getProperties(self, id):\n",
+ " props = {}\n",
+ " rg = re.compile(r'^__\\w+__$')\n",
+ " for prop in self.enumerateProperties(id):\n",
+ " if prop.category and not rg.match(prop.category):\n",
+ " props[prop.name] = prop.value\n",
+ " return props\n",
+ "\n",
+ " def getPropertiesGroupByCategory(self, id):\n",
+ " properties = {}\n",
+ " rg = re.compile(r'^__\\w+__$')\n",
+ " categories = []\n",
+ "\n",
+ " props = self.enumerateProperties(id)\n",
+ " for prop in props:\n",
+ " if prop.category:\n",
+ " if not rg.match(prop.category):\n",
+ " if not any(category in prop.category for category in categories):\n",
+ " categories.append(prop.category)\n",
+ "\n",
+ " for category in categories:\n",
+ " prop_result = [prop for prop in props if prop.category == category]\n",
+ " prop_dictionary = []\n",
+ " for prop in prop_result:\n",
+ " prop_key = prop.name\n",
+ " prop_dictionary.append((prop_key, prop.value))\n",
+ " properties[category] = prop_dictionary\n",
+ "\n",
+ " return properties\n",
+ "\n",
+ " def getChildren(self, id):\n",
+ " children = []\n",
+ " for prop in self.enumerateProperties(id):\n",
+ " if prop.category == \"__child__\":\n",
+ " children.append(int(prop.value))\n",
+ " return children\n",
+ " def getParent(self, id):\n",
+ " parent = []\n",
+ " for prop in self.enumerateProperties(id):\n",
+ " if prop.category == \"__parent__\":\n",
+ " parent.append(int(prop.value))\n",
+ " return parent\n",
+ " def getInstance(self, id):\n",
+ " instanceOf = []\n",
+ " for prop in self.enumerateProperties(id):\n",
+ " if prop.category == \"__instanceof__\":\n",
+ " instanceOf.append(int(prop.value))\n",
+ " return instanceOf\n",
+ "\n",
+ "class Property:\n",
+ " def __init__(self, name, category, value):\n",
+ " self.name = name\n",
+ " self.category = category\n",
+ " self.value = value"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 129,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "200\n",
+ "200\n",
+ "200\n",
+ "200\n",
+ "200\n",
+ "200\n"
+ ]
+ }
+ ],
+ "source": [
+ "# urn = urn:adsk.viewing:fs.file:dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkhYMk83eEtVUWZ1a0pfaGdIc3JYX0E_dmVyc2lvbj0y/output/Resource/model.sdb\n",
+ "# remove \"/model.sdb\" and connect with \"objects_ids.json.gz\" to crate a item_urls \n",
+ "import gzip\n",
+ "import json\n",
+ "import os\n",
+ "items = [\n",
+ " \"objects_attrs.json.gz\",\n",
+ " \"objects_vals.json.gz\",\n",
+ " \"objects_ids.json.gz\",\n",
+ " \"objects_offs.json.gz\",\n",
+ " \"objects_avs.json.gz\",\n",
+ " \"objects_ids.json.gz\"\n",
+ "]\n",
+ "childrens = json_respone['derivatives'][0][\"children\"]\n",
+ "path = \"\"\n",
+ "for child in childrens:\n",
+ " if child[\"type\"] == \"resource\" and child[\"mime\"] == \"application/autodesk-db\":\n",
+ " path = child[\"urn\"]\n",
+ " break\n",
+ "downloaded_files = {}\n",
+ "for item in items:\n",
+ " path = f\"urn:adsk.viewing:fs.file:{URN}/output/Resource/{item}\"\n",
+ " url = f\"https://developer.api.autodesk.com/modelderivative/v2/designdata/{URN}/manifest/{path}\"\n",
+ " # add headers authorization\n",
+ " headers = {\n",
+ " \"Authorization\": f\"Bearer {token}\"\n",
+ " } \n",
+ " response = requests.get(url, headers=headers)\n",
+ " print(response.status_code)\n",
+ " file_bytes = response.content\n",
+ " downloaded_files[item] = file_bytes\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "### Init PropDbReader"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 139,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# _ids, _offsets, _avs, _attrs, _vals\n",
+ "prop_db_reader = PropDbReader(\n",
+ " downloaded_files[\"objects_ids.json.gz\"],\n",
+ " downloaded_files[\"objects_offs.json.gz\"],\n",
+ " downloaded_files[\"objects_avs.json.gz\"],\n",
+ " downloaded_files[\"objects_attrs.json.gz\"],\n",
+ " downloaded_files[\"objects_vals.json.gz\"]\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 140,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'Organization Name': 'Exyte Group',\n",
+ " 'Organization Description': 'Design, Engineering & Construction',\n",
+ " 'Building Name': '',\n",
+ " 'Author': '',\n",
+ " 'IfcSite GUID': '',\n",
+ " 'IfcBuilding GUID': '',\n",
+ " 'IfcProject GUID': '',\n",
+ " 'Project Issue Date': 'Issue Date',\n",
+ " 'Project Status': 'Project Status',\n",
+ " 'Client Name': 'Owner',\n",
+ " 'Project Address': 'Enter address here',\n",
+ " 'Project Name': 'Project Name',\n",
+ " 'Project Number': 'Project Number',\n",
+ " 'Workset': 'Project Info',\n",
+ " 'Edited by': '',\n",
+ " 'Route Analysis Settings': ''}"
+ ]
+ },
+ "execution_count": 140,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "\n",
+ "# Create an instance of PropDbReader with the sample data\n",
+ "# prop_db_reader = PropDbReader(object_ids, objects_offs, object_avs, object_att, object_val)\n",
+ "# Try Get Properties Chair at location idndex is 3528 with InternalId : 5bb069ca-e4fe-4e63-be31-f8ac44e80d30-00046bfe\n",
+ "# InternalId = UniqueId of Element, in this case we try with a chair from Revit Model have UniqueId = 5bb069ca-e4fe-4e63-be31-f8ac44e80d30-00046bfe\n",
+ "id_index = 1\n",
+ "prop_db_reader.getProperties(id_index)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 141,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21]"
+ ]
+ },
+ "execution_count": 141,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "childs = prop_db_reader.getChildren(1)\n",
+ "# show 5 first children to series \n",
+ "childs[:20]\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 134,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "[11211, 11216, 11677, 12772, 13029, 52496, 60212, 60217, 60220, 62602]"
+ ]
+ },
+ "execution_count": 134,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# how 20 end childrens\n",
+ "childs[-10:]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 135,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'View Template': '',\n",
+ " 'View Name': 'West - Mech',\n",
+ " 'Dependency': 'Independent',\n",
+ " 'Title on Sheet': '',\n",
+ " 'View Scale': ' 1 : 100',\n",
+ " 'Scale Value 1:': '100',\n",
+ " 'Display Model': 'Normal',\n",
+ " 'Detail Level': 'Medium',\n",
+ " 'Parts Visibility': 'Show Original',\n",
+ " 'Referencing Sheet': 'First Floor Fac _EXHS',\n",
+ " 'Referencing Detail': '1',\n",
+ " 'Crop View': 0,\n",
+ " 'Crop Region Visible': 0,\n",
+ " 'Annotation Crop': 0,\n",
+ " 'Visibility/Graphics Overrides': '',\n",
+ " 'Graphic Display Options': '',\n",
+ " 'Far Clipping': '0',\n",
+ " 'Far Clip Offset': 27108.36373351971,\n",
+ " 'Hide at scales coarser than': ' 1 : 5000',\n",
+ " 'Phase Filter': 'Show All',\n",
+ " 'Phase': 'New Construction',\n",
+ " 'Scope Box': 'None',\n",
+ " 'Discipline': 'Mechanical',\n",
+ " 'Show Hidden Lines': 'By Discipline',\n",
+ " 'Color Scheme Location': 'Background',\n",
+ " 'Color Scheme': '',\n",
+ " 'Default Analysis Display Style': 'None',\n",
+ " 'Reference Label': '',\n",
+ " 'Associated Datum': 'None',\n",
+ " 'Workset': 'View \"Elevation: West - Mech\"',\n",
+ " 'Edited by': '',\n",
+ " 'ex_Package Number': '',\n",
+ " 'ex_Sub-discipline': 'HVAC',\n",
+ " 'ex_View Name': '',\n",
+ " 'ex_View Purpose': '02_Sheets',\n",
+ " 'ex_GEN_Description': '',\n",
+ " 'Sun Path': 0}"
+ ]
+ },
+ "execution_count": 135,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "prop_db_reader.getProperties(10)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 165,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def recursive_childrens(df,childrens):\n",
+ " if len(childrens) == 0:\n",
+ " return df\n",
+ " for child in childrens:\n",
+ " properties_dic = prop_db_reader.getProperties(child)\n",
+ " dbId = child\n",
+ " external_id = prop_db_reader.ids[child]\n",
+ " properties_dic['dbId'] = dbId\n",
+ " properties_dic['external_id'] = external_id\n",
+ " singleDF = df.from_dict(properties_dic, orient='index').T\n",
+ " df = pd.concat([df, singleDF], ignore_index=True)\n",
+ " recursive_childrens(df,child)\n",
+ " return df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 166,
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "TypeError",
+ "evalue": "object of type 'int' has no len()",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
+ "Cell \u001b[1;32mIn[166], line 3\u001b[0m\n\u001b[0;32m 1\u001b[0m df \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mDataFrame()\n\u001b[0;32m 2\u001b[0m childrens \u001b[38;5;241m=\u001b[39m prop_db_reader\u001b[38;5;241m.\u001b[39mgetChildren(\u001b[38;5;241m1\u001b[39m)\n\u001b[1;32m----> 3\u001b[0m \u001b[43mrecursive_childrens\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdf\u001b[49m\u001b[43m,\u001b[49m\u001b[43mchildrens\u001b[49m\u001b[43m)\u001b[49m\n",
+ "Cell \u001b[1;32mIn[165], line 12\u001b[0m, in \u001b[0;36mrecursive_childrens\u001b[1;34m(df, childrens)\u001b[0m\n\u001b[0;32m 10\u001b[0m singleDF \u001b[38;5;241m=\u001b[39m df\u001b[38;5;241m.\u001b[39mfrom_dict(properties_dic, orient\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mindex\u001b[39m\u001b[38;5;124m'\u001b[39m)\u001b[38;5;241m.\u001b[39mT\n\u001b[0;32m 11\u001b[0m df \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mconcat([df, singleDF], ignore_index\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[1;32m---> 12\u001b[0m \u001b[43mrecursive_childrens\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdf\u001b[49m\u001b[43m,\u001b[49m\u001b[43mchild\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 13\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m df\n",
+ "Cell \u001b[1;32mIn[165], line 2\u001b[0m, in \u001b[0;36mrecursive_childrens\u001b[1;34m(df, childrens)\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mrecursive_childrens\u001b[39m(df,childrens):\n\u001b[1;32m----> 2\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28;43mlen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mchildrens\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[0;32m 3\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m df\n\u001b[0;32m 4\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m child \u001b[38;5;129;01min\u001b[39;00m childrens:\n",
+ "\u001b[1;31mTypeError\u001b[0m: object of type 'int' has no len()"
+ ]
+ }
+ ],
+ "source": [
+ "df = pd.DataFrame()\n",
+ "childrens = prop_db_reader.getChildren(1)\n",
+ "recursive_childrens(df,childrens)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 136,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " dbId | \n",
+ " external_id | \n",
+ " Name | \n",
+ " Elevation | \n",
+ " Computation Height | \n",
+ " Scope Box | \n",
+ " Export to IFC | \n",
+ " IfcGUID | \n",
+ " Structural | \n",
+ " Building Story | \n",
+ " ... | \n",
+ " Underlay Orientation | \n",
+ " View Range | \n",
+ " Associated Level | \n",
+ " Orientation | \n",
+ " Wall Join Display | \n",
+ " System Color Schemes | \n",
+ " Depth Clipping | \n",
+ " Detail Number | \n",
+ " Rotation on Sheet | \n",
+ " Column Symbolic Offset | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " 2 | \n",
+ " 53c5330a-0a78-42d6-8dc2-cd7dde1d46b9-001522f7 | \n",
+ " Ground Floor FAC | \n",
+ " 0 | \n",
+ " 0 | \n",
+ " None | \n",
+ " By Type | \n",
+ " 1JnJCA2dX2ret2pNtU26HE | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 3 | \n",
+ " 53c5330a-0a78-42d6-8dc2-cd7dde1d46b9-001522f8 | \n",
+ " M0 FAC | \n",
+ " 8000 | \n",
+ " 0 | \n",
+ " None | \n",
+ " By Type | \n",
+ " 1JnJCA2dX2ret2pNtU26H1 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 4 | \n",
+ " 53c5330a-0a78-42d6-8dc2-cd7dde1d46b9-001522f9 | \n",
+ " First Floor FAC | \n",
+ " 12400 | \n",
+ " 0 | \n",
+ " None | \n",
+ " By Type | \n",
+ " 1JnJCA2dX2ret2pNtU26H0 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 5 | \n",
+ " 53c5330a-0a78-42d6-8dc2-cd7dde1d46b9-001522fa | \n",
+ " M1 FAC | \n",
+ " 17800 | \n",
+ " 0 | \n",
+ " None | \n",
+ " By Type | \n",
+ " 1JnJCA2dX2ret2pNtU26H3 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 6 | \n",
+ " 53c5330a-0a78-42d6-8dc2-cd7dde1d46b9-001522fb | \n",
+ " Second Floor FAC | \n",
+ " 20000 | \n",
+ " 0 | \n",
+ " None | \n",
+ " By Type | \n",
+ " 1JnJCA2dX2ret2pNtU26H2 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 7 | \n",
+ " 53c5330a-0a78-42d6-8dc2-cd7dde1d46b9-001522fc | \n",
+ " Roof FAC | \n",
+ " 26000 | \n",
+ " 0 | \n",
+ " None | \n",
+ " By Type | \n",
+ " 1JnJCA2dX2ret2pNtU26H5 | \n",
+ " 0 | \n",
+ " 1 | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 8 | \n",
+ " f9c62406-7c50-11d5-93b8-0000863f27ad-00001fdd | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " None | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 9 | \n",
+ " f9c62406-7c50-11d5-93b8-0000863f27ad-00001ff0 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " None | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 10 | \n",
+ " f9c62406-7c50-11d5-93b8-0000863f27ad-0000202d | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " None | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 11 | \n",
+ " 627ad902-4aae-46a6-beef-a49c31eda294-000182a8 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " None | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 12 | \n",
+ " 429ba882-f0a0-40fa-96e6-c6e02d9fc601-00022cda | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " None | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 13 | \n",
+ " ca7eea47-78b0-4362-94ea-4fc3e43a0f69-00034826 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " None | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 14 | \n",
+ " 9ded8e03-925a-4acd-aca5-bcf206d241dc-00088c03 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " None | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 15 | \n",
+ " 9ded8e03-925a-4acd-aca5-bcf206d241dc-00088c0d | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " None | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 16 | \n",
+ " 9ded8e03-925a-4acd-aca5-bcf206d241dc-00088c17 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " None | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 17 | \n",
+ " 9ded8e03-925a-4acd-aca5-bcf206d241dc-00088c21 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " None | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 18 | \n",
+ " 4cec1bb0-afe8-449c-99b9-3cb8e6b577d6-000a4305 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 19 | \n",
+ " 6412afbb-52e0-4e17-927b-ac384ad3738c-000a43ba | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 20 | \n",
+ " 56aa1151-e631-4e8c-aa98-1110af032061-000acd73 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 21 | \n",
+ " a64a415a-1ee7-422e-81a9-4b4197eb622a-000ad1a6 | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " ... | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ " NaN | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
20 rows × 93 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " dbId external_id Name \\\n",
+ "0 2 53c5330a-0a78-42d6-8dc2-cd7dde1d46b9-001522f7 Ground Floor FAC \n",
+ "1 3 53c5330a-0a78-42d6-8dc2-cd7dde1d46b9-001522f8 M0 FAC \n",
+ "2 4 53c5330a-0a78-42d6-8dc2-cd7dde1d46b9-001522f9 First Floor FAC \n",
+ "3 5 53c5330a-0a78-42d6-8dc2-cd7dde1d46b9-001522fa M1 FAC \n",
+ "4 6 53c5330a-0a78-42d6-8dc2-cd7dde1d46b9-001522fb Second Floor FAC \n",
+ "5 7 53c5330a-0a78-42d6-8dc2-cd7dde1d46b9-001522fc Roof FAC \n",
+ "6 8 f9c62406-7c50-11d5-93b8-0000863f27ad-00001fdd NaN \n",
+ "7 9 f9c62406-7c50-11d5-93b8-0000863f27ad-00001ff0 NaN \n",
+ "8 10 f9c62406-7c50-11d5-93b8-0000863f27ad-0000202d NaN \n",
+ "9 11 627ad902-4aae-46a6-beef-a49c31eda294-000182a8 NaN \n",
+ "10 12 429ba882-f0a0-40fa-96e6-c6e02d9fc601-00022cda NaN \n",
+ "11 13 ca7eea47-78b0-4362-94ea-4fc3e43a0f69-00034826 NaN \n",
+ "12 14 9ded8e03-925a-4acd-aca5-bcf206d241dc-00088c03 NaN \n",
+ "13 15 9ded8e03-925a-4acd-aca5-bcf206d241dc-00088c0d NaN \n",
+ "14 16 9ded8e03-925a-4acd-aca5-bcf206d241dc-00088c17 NaN \n",
+ "15 17 9ded8e03-925a-4acd-aca5-bcf206d241dc-00088c21 NaN \n",
+ "16 18 4cec1bb0-afe8-449c-99b9-3cb8e6b577d6-000a4305 NaN \n",
+ "17 19 6412afbb-52e0-4e17-927b-ac384ad3738c-000a43ba NaN \n",
+ "18 20 56aa1151-e631-4e8c-aa98-1110af032061-000acd73 NaN \n",
+ "19 21 a64a415a-1ee7-422e-81a9-4b4197eb622a-000ad1a6 NaN \n",
+ "\n",
+ " Elevation Computation Height Scope Box Export to IFC \\\n",
+ "0 0 0 None By Type \n",
+ "1 8000 0 None By Type \n",
+ "2 12400 0 None By Type \n",
+ "3 17800 0 None By Type \n",
+ "4 20000 0 None By Type \n",
+ "5 26000 0 None By Type \n",
+ "6 NaN NaN None NaN \n",
+ "7 NaN NaN None NaN \n",
+ "8 NaN NaN None NaN \n",
+ "9 NaN NaN None NaN \n",
+ "10 NaN NaN None NaN \n",
+ "11 NaN NaN None NaN \n",
+ "12 NaN NaN None NaN \n",
+ "13 NaN NaN None NaN \n",
+ "14 NaN NaN None NaN \n",
+ "15 NaN NaN None NaN \n",
+ "16 NaN NaN NaN NaN \n",
+ "17 NaN NaN NaN NaN \n",
+ "18 NaN NaN NaN NaN \n",
+ "19 NaN NaN NaN NaN \n",
+ "\n",
+ " IfcGUID Structural Building Story ... \\\n",
+ "0 1JnJCA2dX2ret2pNtU26HE 0 1 ... \n",
+ "1 1JnJCA2dX2ret2pNtU26H1 0 1 ... \n",
+ "2 1JnJCA2dX2ret2pNtU26H0 0 1 ... \n",
+ "3 1JnJCA2dX2ret2pNtU26H3 0 1 ... \n",
+ "4 1JnJCA2dX2ret2pNtU26H2 0 1 ... \n",
+ "5 1JnJCA2dX2ret2pNtU26H5 0 1 ... \n",
+ "6 NaN NaN NaN ... \n",
+ "7 NaN NaN NaN ... \n",
+ "8 NaN NaN NaN ... \n",
+ "9 NaN NaN NaN ... \n",
+ "10 NaN NaN NaN ... \n",
+ "11 NaN NaN NaN ... \n",
+ "12 NaN NaN NaN ... \n",
+ "13 NaN NaN NaN ... \n",
+ "14 NaN NaN NaN ... \n",
+ "15 NaN NaN NaN ... \n",
+ "16 NaN NaN NaN ... \n",
+ "17 NaN NaN NaN ... \n",
+ "18 NaN NaN NaN ... \n",
+ "19 NaN NaN NaN ... \n",
+ "\n",
+ " Underlay Orientation View Range Associated Level Orientation \\\n",
+ "0 NaN NaN NaN NaN \n",
+ "1 NaN NaN NaN NaN \n",
+ "2 NaN NaN NaN NaN \n",
+ "3 NaN NaN NaN NaN \n",
+ "4 NaN NaN NaN NaN \n",
+ "5 NaN NaN NaN NaN \n",
+ "6 NaN NaN NaN NaN \n",
+ "7 NaN NaN NaN NaN \n",
+ "8 NaN NaN NaN NaN \n",
+ "9 NaN NaN NaN NaN \n",
+ "10 NaN NaN NaN NaN \n",
+ "11 NaN NaN NaN NaN \n",
+ "12 NaN NaN NaN NaN \n",
+ "13 NaN NaN NaN NaN \n",
+ "14 NaN NaN NaN NaN \n",
+ "15 NaN NaN NaN NaN \n",
+ "16 NaN NaN NaN NaN \n",
+ "17 NaN NaN NaN NaN \n",
+ "18 NaN NaN NaN NaN \n",
+ "19 NaN NaN NaN NaN \n",
+ "\n",
+ " Wall Join Display System Color Schemes Depth Clipping Detail Number \\\n",
+ "0 NaN NaN NaN NaN \n",
+ "1 NaN NaN NaN NaN \n",
+ "2 NaN NaN NaN NaN \n",
+ "3 NaN NaN NaN NaN \n",
+ "4 NaN NaN NaN NaN \n",
+ "5 NaN NaN NaN NaN \n",
+ "6 NaN NaN NaN NaN \n",
+ "7 NaN NaN NaN NaN \n",
+ "8 NaN NaN NaN NaN \n",
+ "9 NaN NaN NaN NaN \n",
+ "10 NaN NaN NaN NaN \n",
+ "11 NaN NaN NaN NaN \n",
+ "12 NaN NaN NaN NaN \n",
+ "13 NaN NaN NaN NaN \n",
+ "14 NaN NaN NaN NaN \n",
+ "15 NaN NaN NaN NaN \n",
+ "16 NaN NaN NaN NaN \n",
+ "17 NaN NaN NaN NaN \n",
+ "18 NaN NaN NaN NaN \n",
+ "19 NaN NaN NaN NaN \n",
+ "\n",
+ " Rotation on Sheet Column Symbolic Offset \n",
+ "0 NaN NaN \n",
+ "1 NaN NaN \n",
+ "2 NaN NaN \n",
+ "3 NaN NaN \n",
+ "4 NaN NaN \n",
+ "5 NaN NaN \n",
+ "6 NaN NaN \n",
+ "7 NaN NaN \n",
+ "8 NaN NaN \n",
+ "9 NaN NaN \n",
+ "10 NaN NaN \n",
+ "11 NaN NaN \n",
+ "12 NaN NaN \n",
+ "13 NaN NaN \n",
+ "14 NaN NaN \n",
+ "15 NaN NaN \n",
+ "16 NaN NaN \n",
+ "17 NaN NaN \n",
+ "18 NaN NaN \n",
+ "19 NaN NaN \n",
+ "\n",
+ "[20 rows x 93 columns]"
+ ]
+ },
+ "execution_count": 136,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import numpy as np\n",
+ "import pandas as pd\n",
+ "# create new dataframe with dbindex, external_id, .... parameters will add in loop dbindex = 1\n",
+ "df = pd.DataFrame()\n",
+ "childs = prop_db_reader.getChildren(1)\n",
+ "for child in childs:\n",
+ " properties_dic = prop_db_reader.getProperties(child)\n",
+ " dbId = child\n",
+ " external_id = prop_db_reader.ids[child]\n",
+ " # dbId and external_id is first and second columns\n",
+ " properties_dic['dbId'] = dbId\n",
+ " properties_dic['external_id'] = external_id\n",
+ " # add properties_dic to dataframe\n",
+ " singleDF = df.from_dict(properties_dic, orient='index').T\n",
+ " # concat singleDF to df\n",
+ " df = pd.concat([df, singleDF], ignore_index=True)\n",
+ " #break\n",
+ "# dbId and external_id is first and second columns\n",
+ "df = df[['dbId', 'external_id'] + [col for col in df.columns if col not in ['dbId', 'external_id']]]\n",
+ "df.head(20)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 137,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# export to excel \n",
+ "df.to_excel(\"output.xlsx\", index=False)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "## Test Library"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 61,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "d:\\API\\Forge\\python-aps-toolkit\\aps-toolkit-python\\src\n"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ "'eyJhbGciOiJSUzI1NiIsImtpZCI6IjY0RE9XMnJoOE9tbjNpdk1NU0xlNGQ2VHEwUV9SUzI1NiIsInBpLmF0bSI6ImFzc2MifQ.eyJzY29wZSI6WyJkYXRhOnJlYWQiLCJkYXRhOndyaXRlIiwiZGF0YTpzZWFyY2giLCJkYXRhOmNyZWF0ZSIsImJ1Y2tldDpyZWFkIiwiYnVja2V0OmNyZWF0ZSIsInVzZXI6cmVhZCJdLCJjbGllbnRfaWQiOiJQVU9rVFV1TGtJR3RsWWVGTmJORzlXMFBSZG1VakdLayIsImlzcyI6Imh0dHBzOi8vZGV2ZWxvcGVyLmFwaS5hdXRvZGVzay5jb20iLCJhdWQiOiJodHRwczovL2F1dG9kZXNrLmNvbSIsImp0aSI6Im4zcTNzZmh0dVc0NG90ZzNiWmNMa0NReDltUEZQc0NkbG1xcFpKRGFHbFowN2Y2Qm1RSWp6dmNkbFowMjZnaUYiLCJleHAiOjE3MDkyODgyNTh9.uQ4r104BkcTIX0DmmmW4M-AorhTaICZ5a_nQhN2JRjMzMmMMkgBTnLj9GMqh2WZZOtajOv4J0dNFn3Q4B4bCfu2X_78oZNQ8Nb4lFzNMM_3Mi437XhyWd_eccUTft5kXldP2BIvQoRc2SPMvzbDvr1CQbqpiwX2dwaZobuopH9XVJN26Ew27Nz8n4cgS4TLpYF0yayaBNjf4rO9baK80-vvJViTOqEyjyhgRLS1CzijfQiIJ2MyrVOWmwXIAx94rRyJ5Nk5ew_0E9IRjHi-gdDagy26uW5db-W8v87Y56xxxiHhrRukJ2qIblLaj38lP2BVxts6JKEXz_c8-zU2AJw'"
+ ]
+ },
+ "execution_count": 61,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import os\n",
+ "import sys\n",
+ "module_path = os.path.abspath(os.path.join('..'))\n",
+ "print(module_path)\n",
+ "# if module_path not in sys.path:\n",
+ "sys.path.append(module_path)\n",
+ "#sys.path.append(f'D:\\API\\Forge\\python-aps-toolkit\\aps-toolkit-python\\src\\aps_toolkit_python')\n",
+ "from aps_toolkit_python import Auth\n",
+ "from aps_toolkit_python import ProDbReaderRevit\n",
+ "from aps_toolkit_python import PropReader\n",
+ "auth = Auth()\n",
+ "token = auth.auth2leg()\n",
+ "token.access_token"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from aps_toolkit_python import PropDbReaderRevit"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Downloaded urn:adsk.viewing:fs.file:dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLjAtYnBtcEpXUWJTRUVNdUFac1VETWc_dmVyc2lvbj0yNQ/output/Resource/objects_attrs.json.gz\n",
+ "Downloaded urn:adsk.viewing:fs.file:dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLjAtYnBtcEpXUWJTRUVNdUFac1VETWc_dmVyc2lvbj0yNQ/output/Resource/objects_vals.json.gz\n",
+ "Downloaded urn:adsk.viewing:fs.file:dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLjAtYnBtcEpXUWJTRUVNdUFac1VETWc_dmVyc2lvbj0yNQ/output/Resource/objects_ids.json.gz\n",
+ "Downloaded urn:adsk.viewing:fs.file:dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLjAtYnBtcEpXUWJTRUVNdUFac1VETWc_dmVyc2lvbj0yNQ/output/Resource/objects_offs.json.gz\n",
+ "Downloaded urn:adsk.viewing:fs.file:dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLjAtYnBtcEpXUWJTRUVNdUFac1VETWc_dmVyc2lvbj0yNQ/output/Resource/objects_avs.json.gz\n",
+ "Downloaded urn:adsk.viewing:fs.file:dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLjAtYnBtcEpXUWJTRUVNdUFac1VETWc_dmVyc2lvbj0yNQ/output/Resource/objects_ids.json.gz\n"
+ ]
+ }
+ ],
+ "source": [
+ "urn = \"dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLjAtYnBtcEpXUWJTRUVNdUFac1VETWc_dmVyc2lvbj0yNQ\"\n",
+ "reader = PropDbReaderRevit(urn,token)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " dbId | \n",
+ " external_id | \n",
+ " System Name | \n",
+ " IfcGUID | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 3 | \n",
+ " 15901 | \n",
+ " 650dac91-a97a-4182-b882-b1b294b266e3-001aaf9c | \n",
+ " EA 1 | \n",
+ " 1b3QoHgNf1WhY2iRAKgCb$ | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 15932 | \n",
+ " 650dac91-a97a-4182-b882-b1b294b266e3-001ab1f3 | \n",
+ " FA 1 | \n",
+ " 1b3QoHgNf1WhY2iRAKgDSG | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 15952 | \n",
+ " 650dac91-a97a-4182-b882-b1b294b266e3-001ab4e0 | \n",
+ " EA 4 | \n",
+ " 1b3QoHgNf1WhY2iRAKgD83 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 15959 | \n",
+ " 650dac91-a97a-4182-b882-b1b294b266e3-001ab4e7 | \n",
+ " FA 4 | \n",
+ " 1b3QoHgNf1WhY2iRAKgD84 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 15988 | \n",
+ " 650dac91-a97a-4182-b882-b1b294b266e3-001ab9c0 | \n",
+ " EA 15 | \n",
+ " 1b3QoHgNf1WhY2iRAKgDyZ | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 578 | \n",
+ " 16133 | \n",
+ " 832478c1-3e5c-49fe-9776-ed1213f7a84f-001b4a50 | \n",
+ " EA 14 | \n",
+ " 2397Z1Fbn9$fTsxH8JxE80 | \n",
+ "
\n",
+ " \n",
+ " 579 | \n",
+ " 23280 | \n",
+ " f8ab7cba-776d-4ddc-81ce-de3c8c293aa6-0026cbbb | \n",
+ " FA 39 | \n",
+ " 3ugtowTsrDt87EtZoC3$4T | \n",
+ "
\n",
+ " \n",
+ " 580 | \n",
+ " 23281 | \n",
+ " f8ab7cba-776d-4ddc-81ce-de3c8c293aa6-0026cbbc | \n",
+ " FA 39 | \n",
+ " 3ugtowTsrDt87EtZoC3$4T | \n",
+ "
\n",
+ " \n",
+ " 581 | \n",
+ " 23314 | \n",
+ " d5519659-1830-49bb-b35d-b0ba03c5399f-0026e82d | \n",
+ " FA 39 | \n",
+ " 3LKPPP6319kxDTiBe3uz6o | \n",
+ "
\n",
+ " \n",
+ " 582 | \n",
+ " 23315 | \n",
+ " d5519659-1830-49bb-b35d-b0ba03c5399f-0026e82e | \n",
+ " FA 39 | \n",
+ " 3LKPPP6319kxDTiBe3uz6o | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
576 rows × 4 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " dbId external_id System Name \\\n",
+ "3 15901 650dac91-a97a-4182-b882-b1b294b266e3-001aaf9c EA 1 \n",
+ "4 15932 650dac91-a97a-4182-b882-b1b294b266e3-001ab1f3 FA 1 \n",
+ "5 15952 650dac91-a97a-4182-b882-b1b294b266e3-001ab4e0 EA 4 \n",
+ "6 15959 650dac91-a97a-4182-b882-b1b294b266e3-001ab4e7 FA 4 \n",
+ "7 15988 650dac91-a97a-4182-b882-b1b294b266e3-001ab9c0 EA 15 \n",
+ ".. ... ... ... \n",
+ "578 16133 832478c1-3e5c-49fe-9776-ed1213f7a84f-001b4a50 EA 14 \n",
+ "579 23280 f8ab7cba-776d-4ddc-81ce-de3c8c293aa6-0026cbbb FA 39 \n",
+ "580 23281 f8ab7cba-776d-4ddc-81ce-de3c8c293aa6-0026cbbc FA 39 \n",
+ "581 23314 d5519659-1830-49bb-b35d-b0ba03c5399f-0026e82d FA 39 \n",
+ "582 23315 d5519659-1830-49bb-b35d-b0ba03c5399f-0026e82e FA 39 \n",
+ "\n",
+ " IfcGUID \n",
+ "3 1b3QoHgNf1WhY2iRAKgCb$ \n",
+ "4 1b3QoHgNf1WhY2iRAKgDSG \n",
+ "5 1b3QoHgNf1WhY2iRAKgD83 \n",
+ "6 1b3QoHgNf1WhY2iRAKgD84 \n",
+ "7 1b3QoHgNf1WhY2iRAKgDyZ \n",
+ ".. ... \n",
+ "578 2397Z1Fbn9$fTsxH8JxE80 \n",
+ "579 3ugtowTsrDt87EtZoC3$4T \n",
+ "580 3ugtowTsrDt87EtZoC3$4T \n",
+ "581 3LKPPP6319kxDTiBe3uz6o \n",
+ "582 3LKPPP6319kxDTiBe3uz6o \n",
+ "\n",
+ "[576 rows x 4 columns]"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "reader.get_data_by_categories_and_params([\"Ducts\"],[\"name\",\"Category\",\"System Name\",\"IfcGUID\"])"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# df = reader.get_data_by_category(\"Ducts\")\n",
+ "# df.to_excel(\"output.xlsx\", index=False)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 110,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import requests\n",
+ "import pandas as pd\n",
+ "class BIM360:\n",
+ " def __init__(self,token=None):\n",
+ " self.token = token\n",
+ " if self.token is None:\n",
+ " raise ValueError(\"Token is required\")\n",
+ " self.host = \"https://developer.api.autodesk.com\"\n",
+ " def get_hubs(self):\n",
+ " headers = {'Authorization': 'Bearer ' + self.token.access_token}\n",
+ " url = f\"{self.host}/project/v1/hubs\"\n",
+ " response = requests.get(url, headers=headers)\n",
+ " return response.json()\n",
+ " def get_projects(self,hub_id):\n",
+ " headers = {'Authorization': 'Bearer ' + self.token.access_token}\n",
+ " url = f\"{self.host}/project/v1/hubs/{hub_id}/projects\"\n",
+ " response = requests.get(url, headers=headers)\n",
+ " return response.json()\n",
+ " def get_top_folders(self,hub_id,project_id):\n",
+ " headers = {'Authorization': 'Bearer ' + self.token.access_token}\n",
+ " url = f\"{self.host}/project/v1/hubs/{hub_id}/projects/{project_id}/topFolders\"\n",
+ " response = requests.get(url, headers=headers)\n",
+ " return response.json()\n",
+ " def get_folder_contents(self,project_id,folder_id):\n",
+ " headers = {'Authorization': 'Bearer ' + self.token.access_token}\n",
+ " url = f\"{self.host}/data/v1/projects/{project_id}/folders/{folder_id}/contents\"\n",
+ " response = requests.get(url, headers=headers)\n",
+ " return response.json()\n",
+ " def get_item_versions(self,project_id,folder_id):\n",
+ " headers = {'Authorization': 'Bearer ' + self.token.access_token}\n",
+ " url = f\"{self.host}/data/v1/projects/{project_id}/items/{folder_id}/versions\"\n",
+ " response = requests.get(url, headers=headers)\n",
+ " return response.json()\n",
+ " def batch_report_item_versions(self,project_id,item_id)->pd.DataFrame:\n",
+ " # create a dataframe to save data report with columns : item_id,version,derivative_urn,last_modified_time\n",
+ " df = pd.DataFrame(columns=['item_id','version','derivative_urn','last_modified_time'])\n",
+ " headers = {'Authorization': 'Bearer ' + self.token.access_token}\n",
+ " url = f\"{self.host}/data/v1/projects/{project_id}/items/{item_id}/versions\"\n",
+ " response = requests.get(url, headers=headers)\n",
+ " item_versions = response.json()\n",
+ " for item_version in item_versions['data']:\n",
+ " version = item_version['attributes']['versionNumber']\n",
+ " # check if item_version have derivatives\n",
+ " if 'derivatives' not in item_version['relationships']:\n",
+ " continue\n",
+ " derivative_urn = item_version['relationships']['derivatives']['data']['id']\n",
+ " last_modified_time = item_version['attributes']['lastModifiedTime']\n",
+ " df = pd.concat([df,pd.DataFrame({'item_id':item_id,'version':version,'derivative_urn':derivative_urn,'last_modified_time':last_modified_time},index=[0])],ignore_index=True)\n",
+ " return df\n",
+ " def batch_report_items(self,project_id,folder_id,extension=\".rvt\",is_sub_folder=False)->pd.DataFrame:\n",
+ " # create a dataframe to save data report with columns : project_id,folder_id,item_name,item_id,laster_version,derivative_urn,last_modified_time\n",
+ " df = pd.DataFrame(columns=['project_id','folder_id','item_name','item_id','last_version','derivative_urn','last_modified_time'])\n",
+ " headers = {'Authorization': 'Bearer ' + self.token.access_token}\n",
+ " url = f\"{self.host}/data/v1/projects/{project_id}/folders/{folder_id}/contents\"\n",
+ " response = requests.get(url, headers=headers)\n",
+ " folder_contents = response.json()\n",
+ " for folder_content in folder_contents['data']:\n",
+ " if folder_content['type'] == \"items\":\n",
+ " item_id = folder_content['id']\n",
+ " item_name = folder_content['attributes']['displayName']\n",
+ " item_versions = self._get_latest_version(project_id,item_id)\n",
+ " # getfrom dict with keys : version\n",
+ " last_version = item_versions[\"version\"]\n",
+ " derivative_urn = item_versions[\"derivative_urn\"]\n",
+ " last_modified_time = folder_content['attributes']['lastModifiedTime']\n",
+ " df = pd.concat([df,pd.DataFrame({'project_id':project_id,'folder_id':folder_id,'item_name':item_name,'item_id':item_id,'last_version':last_version,'derivative_urn':derivative_urn,'last_modified_time':last_modified_time},index=[0])],ignore_index=True)\n",
+ " elif folder_content['type'] == \"folders\" and is_sub_folder:\n",
+ " if is_sub_folder:\n",
+ " df = pd.concat([df,self.batch_report_items(project_id,folder_content['id'],extension,is_sub_folder)],ignore_index=True)\n",
+ " return df\n",
+ " def _get_number_latest_item_version(self,project_id,item_id)->int:\n",
+ " url = f\"{self.host}/data/v1/projects/{project_id}/items/{item_id}/versions\"\n",
+ " headers = {'Authorization': 'Bearer ' + self.token.access_token}\n",
+ " response = requests.get(url, headers=headers)\n",
+ " item_versions = response.json()\n",
+ " return len(item_versions['data'])\n",
+ " def _get_latest_version(self,project_id,item_id)->dict:\n",
+ " # dict with keys : version,derivative_urn,last_modified_time\n",
+ " latest_version = {}\n",
+ " url = f\"{self.host}/data/v1/projects/{project_id}/items/{item_id}/versions\"\n",
+ " headers = {'Authorization': 'Bearer ' + self.token.access_token}\n",
+ " response = requests.get(url, headers=headers)\n",
+ " item_versions = response.json()\n",
+ " # add to latest_version\n",
+ " latest_version['version'] = item_versions['data'][0]['attributes']['versionNumber']\n",
+ " latest_version['last_modified_time'] = item_versions['data'][0]['attributes']['lastModifiedTime']\n",
+ " latest_version['derivative_urn'] = item_versions['data'][0]['relationships']['derivatives']['data']['id']\n",
+ " return latest_version\n",
+ "bim360 = BIM360(token)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 78,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "hub_id: b.1715cf2b-cc12-46fd-9279-11bbc47e72f6\n",
+ "project_id: b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce\n"
+ ]
+ }
+ ],
+ "source": [
+ "hub_id = bim360.get_hubs()[\"data\"][0][\"id\"]\n",
+ "print(\"hub_id: \", hub_id)\n",
+ "projects = bim360.get_projects(hub_id)\n",
+ "project_id = projects[\"data\"][0][\"id\"]\n",
+ "print(\"project_id: \", project_id)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "hub_id = \"b.1715cf2b-cc12-46fd-9279-11bbc47e72f6\"\n",
+ "project_id = \"b.1f7aa830-c6ef-48be-8a2d-bd554779e74b\"\n",
+ "folder_id = \"urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJxxN_Mw\"\n",
+ "item_id = \"urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gRhI8A\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 111,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{'version': 5, 'last_modified_time': '2024-01-31T07:38:59.0000000Z', 'derivative_urn': 'dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG9KUXlTNkQxUi1nUmhJOEE_dmVyc2lvbj01'}\n",
+ "{'version': 4, 'last_modified_time': '2024-01-31T07:27:08.0000000Z', 'derivative_urn': 'dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLnVkWnVnSkc5UmMtUmRlRi1QUUUydHc_dmVyc2lvbj00'}\n",
+ "{'version': 4, 'last_modified_time': '2024-01-31T07:27:29.0000000Z', 'derivative_urn': 'dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkNXVzdJbFhQVFUySEZpd3V0WkdiMHc_dmVyc2lvbj00'}\n",
+ "{'version': 4, 'last_modified_time': '2024-01-31T07:27:40.0000000Z', 'derivative_urn': 'dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLmpvOVFnLTh0UlRHOXQwRElTZHprU2c_dmVyc2lvbj00'}\n",
+ "{'version': 4, 'last_modified_time': '2024-01-31T07:28:56.0000000Z', 'derivative_urn': 'dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkpWY2htU0VtVFNtMGg1VnpFcGhuelE_dmVyc2lvbj00'}\n",
+ "{'version': 6, 'last_modified_time': '2024-01-31T07:35:55.0000000Z', 'derivative_urn': 'dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLmJQZjdPcTMyVEZlSjNVZ3FBM1JickE_dmVyc2lvbj02'}\n",
+ "{'version': 26, 'last_modified_time': '2024-02-29T01:56:38.0000000Z', 'derivative_urn': 'dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLjAtYnBtcEpXUWJTRUVNdUFac1VETWc_dmVyc2lvbj0yNg'}\n",
+ "{'version': 6, 'last_modified_time': '2024-02-27T01:51:27.0000000Z', 'derivative_urn': 'dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLnRfTFFVUDZoU3l5UXo5bm1sTE1FUHc_dmVyc2lvbj02'}\n",
+ "{'version': 9, 'last_modified_time': '2024-02-27T03:20:29.0000000Z', 'derivative_urn': 'dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLl9OVnQteDFxVDlLbktiajZadHFkQlE_dmVyc2lvbj05'}\n",
+ "{'version': 4, 'last_modified_time': '2024-01-31T07:25:59.0000000Z', 'derivative_urn': 'dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLm1xandaajZhUWE2SVk2WEFuSF9Ddmc_dmVyc2lvbj00'}\n",
+ "{'version': 4, 'last_modified_time': '2024-01-31T07:25:42.0000000Z', 'derivative_urn': 'dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLnVGcWNoUVktUkotMHNVTFNtcnVmNGc_dmVyc2lvbj00'}\n",
+ "{'version': 4, 'last_modified_time': '2024-01-31T07:27:37.0000000Z', 'derivative_urn': 'dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkt6WllnMnBMU2JPTHhNcTh6N0xHdUE_dmVyc2lvbj00'}\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " project_id | \n",
+ " folder_id | \n",
+ " item_name | \n",
+ " item_id | \n",
+ " last_version | \n",
+ " derivative_urn | \n",
+ " last_modified_time | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce | \n",
+ " urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... | \n",
+ " ACCKL1-EXY-C-FAC-MECH-01.rvt | \n",
+ " urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gR... | \n",
+ " 5 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG... | \n",
+ " 2024-01-31T07:24:02.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce | \n",
+ " urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... | \n",
+ " ACCKL1-EXY-C-FAC-TOOL-01.rvt | \n",
+ " urn:adsk.wipprod:dm.lineage:udZugJG9Rc-RdeF-PQ... | \n",
+ " 4 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLnVkWnVnSk... | \n",
+ " 2024-01-31T07:23:47.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce | \n",
+ " urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... | \n",
+ " ACCKL1-EXY-E-FAC-DATA-01.rvt | \n",
+ " urn:adsk.wipprod:dm.lineage:CWW7IlXPTU2HFiwutZ... | \n",
+ " 4 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkNXVzdJbF... | \n",
+ " 2024-01-31T07:23:47.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce | \n",
+ " urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... | \n",
+ " ACCKL1-EXY-E-FAC-EQPT-01.rvt | \n",
+ " urn:adsk.wipprod:dm.lineage:jo9Qg-8tRTG9t0DISd... | \n",
+ " 4 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLmpvOVFnLT... | \n",
+ " 2024-01-31T07:23:48.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce | \n",
+ " urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... | \n",
+ " ACCKL1-EXY-I-FAC-BMSP-01.rvt | \n",
+ " urn:adsk.wipprod:dm.lineage:JVchmSEmTSm0h5VzEp... | \n",
+ " 4 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkpWY2htU0... | \n",
+ " 2024-01-31T07:23:50.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce | \n",
+ " urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... | \n",
+ " ACCKL1-EXY-M-FAC-CHWT-01.rvt | \n",
+ " urn:adsk.wipprod:dm.lineage:bPf7Oq32TFeJ3UgqA3... | \n",
+ " 6 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLmJQZjdPcT... | \n",
+ " 2024-01-31T07:23:55.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce | \n",
+ " urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... | \n",
+ " ACCKL1-EXY-M-FAC-HVAC-01.rvt | \n",
+ " urn:adsk.wipprod:dm.lineage:0-bpmpJWQbSEEMuAZs... | \n",
+ " 26 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLjAtYnBtcE... | \n",
+ " 2024-02-29T01:52:05.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce | \n",
+ " urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... | \n",
+ " ACCKL1-EXY-M-FAC-HVAC-02.rvt | \n",
+ " urn:adsk.wipprod:dm.lineage:t_LQUP6hSyyQz9nmlL... | \n",
+ " 6 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLnRfTFFVUD... | \n",
+ " 2024-02-27T01:44:21.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce | \n",
+ " urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... | \n",
+ " ACCKL1-EXY-M-FAC-SPRK-01.rvt | \n",
+ " urn:adsk.wipprod:dm.lineage:_NVt-x1qT9KnKbj6Zt... | \n",
+ " 9 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLl9OVnQteD... | \n",
+ " 2024-02-27T03:00:39.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce | \n",
+ " urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... | \n",
+ " ACCKL1-EXY-X-FAC-FPEN-01.rvt | \n",
+ " urn:adsk.wipprod:dm.lineage:mqjwZj6aQa6IY6XAnH... | \n",
+ " 4 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLm1xandaaj... | \n",
+ " 2024-01-31T07:23:43.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce | \n",
+ " urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... | \n",
+ " ACCKL1-EXY-X-FAC-MOVE_S.rvt | \n",
+ " urn:adsk.wipprod:dm.lineage:uFqchQY-RJ-0sULSmr... | \n",
+ " 4 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLnVGcWNoUV... | \n",
+ " 2024-01-31T07:23:45.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce | \n",
+ " urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... | \n",
+ " ACCKL1-EXY-X-FAC-RACK-02.rvt | \n",
+ " urn:adsk.wipprod:dm.lineage:KzZYg2pLSbOLxMq8z7... | \n",
+ " 4 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkt6WllnMn... | \n",
+ " 2024-01-31T07:23:46.0000000Z | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " project_id \\\n",
+ "0 b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce \n",
+ "1 b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce \n",
+ "2 b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce \n",
+ "3 b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce \n",
+ "4 b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce \n",
+ "5 b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce \n",
+ "6 b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce \n",
+ "7 b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce \n",
+ "8 b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce \n",
+ "9 b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce \n",
+ "10 b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce \n",
+ "11 b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce \n",
+ "\n",
+ " folder_id \\\n",
+ "0 urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... \n",
+ "1 urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... \n",
+ "2 urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... \n",
+ "3 urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... \n",
+ "4 urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... \n",
+ "5 urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... \n",
+ "6 urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... \n",
+ "7 urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... \n",
+ "8 urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... \n",
+ "9 urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... \n",
+ "10 urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... \n",
+ "11 urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJ... \n",
+ "\n",
+ " item_name \\\n",
+ "0 ACCKL1-EXY-C-FAC-MECH-01.rvt \n",
+ "1 ACCKL1-EXY-C-FAC-TOOL-01.rvt \n",
+ "2 ACCKL1-EXY-E-FAC-DATA-01.rvt \n",
+ "3 ACCKL1-EXY-E-FAC-EQPT-01.rvt \n",
+ "4 ACCKL1-EXY-I-FAC-BMSP-01.rvt \n",
+ "5 ACCKL1-EXY-M-FAC-CHWT-01.rvt \n",
+ "6 ACCKL1-EXY-M-FAC-HVAC-01.rvt \n",
+ "7 ACCKL1-EXY-M-FAC-HVAC-02.rvt \n",
+ "8 ACCKL1-EXY-M-FAC-SPRK-01.rvt \n",
+ "9 ACCKL1-EXY-X-FAC-FPEN-01.rvt \n",
+ "10 ACCKL1-EXY-X-FAC-MOVE_S.rvt \n",
+ "11 ACCKL1-EXY-X-FAC-RACK-02.rvt \n",
+ "\n",
+ " item_id last_version \\\n",
+ "0 urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gR... 5 \n",
+ "1 urn:adsk.wipprod:dm.lineage:udZugJG9Rc-RdeF-PQ... 4 \n",
+ "2 urn:adsk.wipprod:dm.lineage:CWW7IlXPTU2HFiwutZ... 4 \n",
+ "3 urn:adsk.wipprod:dm.lineage:jo9Qg-8tRTG9t0DISd... 4 \n",
+ "4 urn:adsk.wipprod:dm.lineage:JVchmSEmTSm0h5VzEp... 4 \n",
+ "5 urn:adsk.wipprod:dm.lineage:bPf7Oq32TFeJ3UgqA3... 6 \n",
+ "6 urn:adsk.wipprod:dm.lineage:0-bpmpJWQbSEEMuAZs... 26 \n",
+ "7 urn:adsk.wipprod:dm.lineage:t_LQUP6hSyyQz9nmlL... 6 \n",
+ "8 urn:adsk.wipprod:dm.lineage:_NVt-x1qT9KnKbj6Zt... 9 \n",
+ "9 urn:adsk.wipprod:dm.lineage:mqjwZj6aQa6IY6XAnH... 4 \n",
+ "10 urn:adsk.wipprod:dm.lineage:uFqchQY-RJ-0sULSmr... 4 \n",
+ "11 urn:adsk.wipprod:dm.lineage:KzZYg2pLSbOLxMq8z7... 4 \n",
+ "\n",
+ " derivative_urn \\\n",
+ "0 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG... \n",
+ "1 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLnVkWnVnSk... \n",
+ "2 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkNXVzdJbF... \n",
+ "3 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLmpvOVFnLT... \n",
+ "4 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkpWY2htU0... \n",
+ "5 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLmJQZjdPcT... \n",
+ "6 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLjAtYnBtcE... \n",
+ "7 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLnRfTFFVUD... \n",
+ "8 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLl9OVnQteD... \n",
+ "9 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLm1xandaaj... \n",
+ "10 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLnVGcWNoUV... \n",
+ "11 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkt6WllnMn... \n",
+ "\n",
+ " last_modified_time \n",
+ "0 2024-01-31T07:24:02.0000000Z \n",
+ "1 2024-01-31T07:23:47.0000000Z \n",
+ "2 2024-01-31T07:23:47.0000000Z \n",
+ "3 2024-01-31T07:23:48.0000000Z \n",
+ "4 2024-01-31T07:23:50.0000000Z \n",
+ "5 2024-01-31T07:23:55.0000000Z \n",
+ "6 2024-02-29T01:52:05.0000000Z \n",
+ "7 2024-02-27T01:44:21.0000000Z \n",
+ "8 2024-02-27T03:00:39.0000000Z \n",
+ "9 2024-01-31T07:23:43.0000000Z \n",
+ "10 2024-01-31T07:23:45.0000000Z \n",
+ "11 2024-01-31T07:23:46.0000000Z "
+ ]
+ },
+ "execution_count": 111,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "bim360.batch_report_items(project_id,folder_id,\".rvt\",True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 83,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " item_id | \n",
+ " version | \n",
+ " derivative_urn | \n",
+ " last_modified_time | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gR... | \n",
+ " 5 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG... | \n",
+ " 2024-01-31T07:38:59.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gR... | \n",
+ " 4 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG... | \n",
+ " 2024-01-24T03:20:58.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gR... | \n",
+ " 3 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG... | \n",
+ " 2024-01-22T07:07:33.0000000Z | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gR... | \n",
+ " 2 | \n",
+ " dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG... | \n",
+ " 2024-01-18T15:23:02.0000000Z | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " item_id version \\\n",
+ "0 urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gR... 5 \n",
+ "1 urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gR... 4 \n",
+ "2 urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gR... 3 \n",
+ "3 urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gR... 2 \n",
+ "\n",
+ " derivative_urn \\\n",
+ "0 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG... \n",
+ "1 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG... \n",
+ "2 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG... \n",
+ "3 dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLkRqWHRsWG... \n",
+ "\n",
+ " last_modified_time \n",
+ "0 2024-01-31T07:38:59.0000000Z \n",
+ "1 2024-01-24T03:20:58.0000000Z \n",
+ "2 2024-01-22T07:07:33.0000000Z \n",
+ "3 2024-01-18T15:23:02.0000000Z "
+ ]
+ },
+ "execution_count": 83,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "bim360.batch_report_item_versions(project_id,item_id)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{'jsonapi': {'version': '1.0'},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects'}},\n",
+ " 'data': [{'type': 'projects',\n",
+ " 'id': 'b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce',\n",
+ " 'attributes': {'name': 'USA-Z01-VEC-Sandbox',\n",
+ " 'scopes': ['b360project.b0be7aa3-70b9-4bd1-96a2-41029ae438ce',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/b0be7aa3-70b9-4bd1-96a2-41029ae438ce'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.FHHJyPYqRwmYJ1lH3iH4Og'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce/folders/urn:adsk.wipprod:fs.folder:co.FHHJyPYqRwmYJ1lH3iH4Og'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.b0be7aa3-70b9-4bd1-96a2-41029ae438ce/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'b0be7aa3-70b9-4bd1-96a2-41029ae438ce'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/b0be7aa3-70b9-4bd1-96a2-41029ae438ce/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'b0be7aa3-70b9-4bd1-96a2-41029ae438ce'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/b0be7aa3-70b9-4bd1-96a2-41029ae438ce/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'b0be7aa3-70b9-4bd1-96a2-41029ae438ce'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/b0be7aa3-70b9-4bd1-96a2-41029ae438ce/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'b0be7aa3-70b9-4bd1-96a2-41029ae438ce'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/b0be7aa3-70b9-4bd1-96a2-41029ae438ce/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'b0be7aa3-70b9-4bd1-96a2-41029ae438ce'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/b0be7aa3-70b9-4bd1-96a2-41029ae438ce/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'b0be7aa3-70b9-4bd1-96a2-41029ae438ce'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/b0be7aa3-70b9-4bd1-96a2-41029ae438ce/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'b0be7aa3-70b9-4bd1-96a2-41029ae438ce'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/b0be7aa3-70b9-4bd1-96a2-41029ae438ce/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.9ec6bdf0-7b7f-4a71-9a55-df9331a43daf',\n",
+ " 'attributes': {'name': 'COE-BIM 360 training-BIMVDC BLS',\n",
+ " 'scopes': ['b360project.9ec6bdf0-7b7f-4a71-9a55-df9331a43daf',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.9ec6bdf0-7b7f-4a71-9a55-df9331a43daf'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/9ec6bdf0-7b7f-4a71-9a55-df9331a43daf'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.vvFvdp1nRpq9hpbozVGOvQ'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.9ec6bdf0-7b7f-4a71-9a55-df9331a43daf/folders/urn:adsk.wipprod:fs.folder:co.vvFvdp1nRpq9hpbozVGOvQ'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.9ec6bdf0-7b7f-4a71-9a55-df9331a43daf/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '9ec6bdf0-7b7f-4a71-9a55-df9331a43daf'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/9ec6bdf0-7b7f-4a71-9a55-df9331a43daf/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '9ec6bdf0-7b7f-4a71-9a55-df9331a43daf'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/9ec6bdf0-7b7f-4a71-9a55-df9331a43daf/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '9ec6bdf0-7b7f-4a71-9a55-df9331a43daf'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/9ec6bdf0-7b7f-4a71-9a55-df9331a43daf/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '9ec6bdf0-7b7f-4a71-9a55-df9331a43daf'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/9ec6bdf0-7b7f-4a71-9a55-df9331a43daf/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '9ec6bdf0-7b7f-4a71-9a55-df9331a43daf'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/9ec6bdf0-7b7f-4a71-9a55-df9331a43daf/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '9ec6bdf0-7b7f-4a71-9a55-df9331a43daf'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/9ec6bdf0-7b7f-4a71-9a55-df9331a43daf/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '9ec6bdf0-7b7f-4a71-9a55-df9331a43daf'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/9ec6bdf0-7b7f-4a71-9a55-df9331a43daf/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.01567990-f257-41e0-b7c5-9286108f89fd',\n",
+ " 'attributes': {'name': 'IS APP Integration POC',\n",
+ " 'scopes': ['b360project.01567990-f257-41e0-b7c5-9286108f89fd',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.01567990-f257-41e0-b7c5-9286108f89fd'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/01567990-f257-41e0-b7c5-9286108f89fd'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.-zy6JhcQTt-ksCDEqYsM7w'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.01567990-f257-41e0-b7c5-9286108f89fd/folders/urn:adsk.wipprod:fs.folder:co.-zy6JhcQTt-ksCDEqYsM7w'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.01567990-f257-41e0-b7c5-9286108f89fd/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '03865de8-29c0-45f3-9b76-f332107cbec3'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/03865de8-29c0-45f3-9b76-f332107cbec3/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '366e764f-136c-4ac3-b02d-9e0a1e42a037'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/366e764f-136c-4ac3-b02d-9e0a1e42a037/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '03865de8-29c0-45f3-9b76-f332107cbec3'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/03865de8-29c0-45f3-9b76-f332107cbec3/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '03865de8-29c0-45f3-9b76-f332107cbec3'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/03865de8-29c0-45f3-9b76-f332107cbec3/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '03865de8-29c0-45f3-9b76-f332107cbec3'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/03865de8-29c0-45f3-9b76-f332107cbec3/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '01567990-f257-41e0-b7c5-9286108f89fd'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/01567990-f257-41e0-b7c5-9286108f89fd/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '612303bd-78ad-4328-8fe0-77803099d372'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/612303bd-78ad-4328-8fe0-77803099d372/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.e6e41aa3-3030-4fac-9169-c6c4c9dd6767',\n",
+ " 'attributes': {'name': 'SEA-Pelican-Plant3D Test2',\n",
+ " 'scopes': ['b360project.e6e41aa3-3030-4fac-9169-c6c4c9dd6767',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.e6e41aa3-3030-4fac-9169-c6c4c9dd6767'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/e6e41aa3-3030-4fac-9169-c6c4c9dd6767'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.a-0FYog4REeMtdSuSvwIUw'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.e6e41aa3-3030-4fac-9169-c6c4c9dd6767/folders/urn:adsk.wipprod:fs.folder:co.a-0FYog4REeMtdSuSvwIUw'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.e6e41aa3-3030-4fac-9169-c6c4c9dd6767/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'e6e41aa3-3030-4fac-9169-c6c4c9dd6767'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/e6e41aa3-3030-4fac-9169-c6c4c9dd6767/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'e6e41aa3-3030-4fac-9169-c6c4c9dd6767'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/e6e41aa3-3030-4fac-9169-c6c4c9dd6767/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'e6e41aa3-3030-4fac-9169-c6c4c9dd6767'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/e6e41aa3-3030-4fac-9169-c6c4c9dd6767/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'e6e41aa3-3030-4fac-9169-c6c4c9dd6767'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/e6e41aa3-3030-4fac-9169-c6c4c9dd6767/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'e6e41aa3-3030-4fac-9169-c6c4c9dd6767'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/e6e41aa3-3030-4fac-9169-c6c4c9dd6767/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'e6e41aa3-3030-4fac-9169-c6c4c9dd6767'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/e6e41aa3-3030-4fac-9169-c6c4c9dd6767/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'e6e41aa3-3030-4fac-9169-c6c4c9dd6767'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/e6e41aa3-3030-4fac-9169-c6c4c9dd6767/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.d191cbb1-74a1-47c3-b096-33cc0b3af9f8',\n",
+ " 'attributes': {'name': 'CORP-C02-Plant3D_PnID_POC',\n",
+ " 'scopes': ['b360project.d191cbb1-74a1-47c3-b096-33cc0b3af9f8',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.d191cbb1-74a1-47c3-b096-33cc0b3af9f8'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/d191cbb1-74a1-47c3-b096-33cc0b3af9f8'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.Go2BzZoXScWeJtV8jfNSxg'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.d191cbb1-74a1-47c3-b096-33cc0b3af9f8/folders/urn:adsk.wipprod:fs.folder:co.Go2BzZoXScWeJtV8jfNSxg'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.d191cbb1-74a1-47c3-b096-33cc0b3af9f8/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'd191cbb1-74a1-47c3-b096-33cc0b3af9f8'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/d191cbb1-74a1-47c3-b096-33cc0b3af9f8/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'd191cbb1-74a1-47c3-b096-33cc0b3af9f8'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/d191cbb1-74a1-47c3-b096-33cc0b3af9f8/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'd191cbb1-74a1-47c3-b096-33cc0b3af9f8'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/d191cbb1-74a1-47c3-b096-33cc0b3af9f8/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'd191cbb1-74a1-47c3-b096-33cc0b3af9f8'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/d191cbb1-74a1-47c3-b096-33cc0b3af9f8/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'd191cbb1-74a1-47c3-b096-33cc0b3af9f8'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/d191cbb1-74a1-47c3-b096-33cc0b3af9f8/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'd191cbb1-74a1-47c3-b096-33cc0b3af9f8'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/d191cbb1-74a1-47c3-b096-33cc0b3af9f8/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '3c184dca-7972-4e1e-915e-f43da4fcc2d8'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/3c184dca-7972-4e1e-915e-f43da4fcc2d8/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.79a37114-7cee-4f04-af4d-720518368d60',\n",
+ " 'attributes': {'name': 'DAQS.IQ-BIM360 Product Testing',\n",
+ " 'scopes': ['b360project.79a37114-7cee-4f04-af4d-720518368d60',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.79a37114-7cee-4f04-af4d-720518368d60'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/79a37114-7cee-4f04-af4d-720518368d60'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.BxqDDrh0QdurTON8uIydMA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.79a37114-7cee-4f04-af4d-720518368d60/folders/urn:adsk.wipprod:fs.folder:co.BxqDDrh0QdurTON8uIydMA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.79a37114-7cee-4f04-af4d-720518368d60/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '79a37114-7cee-4f04-af4d-720518368d60'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/79a37114-7cee-4f04-af4d-720518368d60/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '79a37114-7cee-4f04-af4d-720518368d60'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/79a37114-7cee-4f04-af4d-720518368d60/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '79a37114-7cee-4f04-af4d-720518368d60'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/79a37114-7cee-4f04-af4d-720518368d60/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '79a37114-7cee-4f04-af4d-720518368d60'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/79a37114-7cee-4f04-af4d-720518368d60/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '79a37114-7cee-4f04-af4d-720518368d60'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/79a37114-7cee-4f04-af4d-720518368d60/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '79a37114-7cee-4f04-af4d-720518368d60'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/79a37114-7cee-4f04-af4d-720518368d60/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '79a37114-7cee-4f04-af4d-720518368d60'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/79a37114-7cee-4f04-af4d-720518368d60/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.79176f6a-1097-4f98-9f33-ce26347bc117',\n",
+ " 'attributes': {'name': 'NEA-TAIWAN-Training_Test',\n",
+ " 'scopes': ['b360project.79176f6a-1097-4f98-9f33-ce26347bc117',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.79176f6a-1097-4f98-9f33-ce26347bc117'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/79176f6a-1097-4f98-9f33-ce26347bc117'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.j9n-pFNqQPy7Y3I9xINkgA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.79176f6a-1097-4f98-9f33-ce26347bc117/folders/urn:adsk.wipprod:fs.folder:co.j9n-pFNqQPy7Y3I9xINkgA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.79176f6a-1097-4f98-9f33-ce26347bc117/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '79176f6a-1097-4f98-9f33-ce26347bc117'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/79176f6a-1097-4f98-9f33-ce26347bc117/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '79176f6a-1097-4f98-9f33-ce26347bc117'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/79176f6a-1097-4f98-9f33-ce26347bc117/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '79176f6a-1097-4f98-9f33-ce26347bc117'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/79176f6a-1097-4f98-9f33-ce26347bc117/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '79176f6a-1097-4f98-9f33-ce26347bc117'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/79176f6a-1097-4f98-9f33-ce26347bc117/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '79176f6a-1097-4f98-9f33-ce26347bc117'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/79176f6a-1097-4f98-9f33-ce26347bc117/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '79176f6a-1097-4f98-9f33-ce26347bc117'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/79176f6a-1097-4f98-9f33-ce26347bc117/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '79176f6a-1097-4f98-9f33-ce26347bc117'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/79176f6a-1097-4f98-9f33-ce26347bc117/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.4cc6897e-30d6-423b-bfba-316283b768d4',\n",
+ " 'attributes': {'name': 'Test Copy Project 8',\n",
+ " 'scopes': ['b360project.4cc6897e-30d6-423b-bfba-316283b768d4',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.4cc6897e-30d6-423b-bfba-316283b768d4'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/4cc6897e-30d6-423b-bfba-316283b768d4'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.CD0EKrziRTGD3A6SKlqy9g'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.4cc6897e-30d6-423b-bfba-316283b768d4/folders/urn:adsk.wipprod:fs.folder:co.CD0EKrziRTGD3A6SKlqy9g'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.4cc6897e-30d6-423b-bfba-316283b768d4/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '4cc6897e-30d6-423b-bfba-316283b768d4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/4cc6897e-30d6-423b-bfba-316283b768d4/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '4cc6897e-30d6-423b-bfba-316283b768d4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/4cc6897e-30d6-423b-bfba-316283b768d4/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '4cc6897e-30d6-423b-bfba-316283b768d4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/4cc6897e-30d6-423b-bfba-316283b768d4/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '4cc6897e-30d6-423b-bfba-316283b768d4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/4cc6897e-30d6-423b-bfba-316283b768d4/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '4cc6897e-30d6-423b-bfba-316283b768d4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/4cc6897e-30d6-423b-bfba-316283b768d4/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '4cc6897e-30d6-423b-bfba-316283b768d4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/4cc6897e-30d6-423b-bfba-316283b768d4/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '4cc6897e-30d6-423b-bfba-316283b768d4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/4cc6897e-30d6-423b-bfba-316283b768d4/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.6bea5250-40f9-4122-a35c-df51d723524e',\n",
+ " 'attributes': {'name': 'IS-ENG-DEMO',\n",
+ " 'scopes': ['b360project.6bea5250-40f9-4122-a35c-df51d723524e',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.6bea5250-40f9-4122-a35c-df51d723524e'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/6bea5250-40f9-4122-a35c-df51d723524e'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.pg4CRMttQQOSckicDK6MgQ'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.6bea5250-40f9-4122-a35c-df51d723524e/folders/urn:adsk.wipprod:fs.folder:co.pg4CRMttQQOSckicDK6MgQ'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.6bea5250-40f9-4122-a35c-df51d723524e/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '6bea5250-40f9-4122-a35c-df51d723524e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/6bea5250-40f9-4122-a35c-df51d723524e/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '6bea5250-40f9-4122-a35c-df51d723524e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/6bea5250-40f9-4122-a35c-df51d723524e/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '6bea5250-40f9-4122-a35c-df51d723524e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/6bea5250-40f9-4122-a35c-df51d723524e/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '6bea5250-40f9-4122-a35c-df51d723524e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/6bea5250-40f9-4122-a35c-df51d723524e/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '6bea5250-40f9-4122-a35c-df51d723524e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/6bea5250-40f9-4122-a35c-df51d723524e/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '6bea5250-40f9-4122-a35c-df51d723524e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/6bea5250-40f9-4122-a35c-df51d723524e/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '6bea5250-40f9-4122-a35c-df51d723524e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/6bea5250-40f9-4122-a35c-df51d723524e/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.5613e162-bd21-4ba4-92de-2e1b75bcb848',\n",
+ " 'attributes': {'name': 'IS-Demo3',\n",
+ " 'scopes': ['b360project.5613e162-bd21-4ba4-92de-2e1b75bcb848',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.5613e162-bd21-4ba4-92de-2e1b75bcb848'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/5613e162-bd21-4ba4-92de-2e1b75bcb848'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.L6exLttES6yIxF8Bb8eQRw'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.5613e162-bd21-4ba4-92de-2e1b75bcb848/folders/urn:adsk.wipprod:fs.folder:co.L6exLttES6yIxF8Bb8eQRw'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.5613e162-bd21-4ba4-92de-2e1b75bcb848/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '5613e162-bd21-4ba4-92de-2e1b75bcb848'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/5613e162-bd21-4ba4-92de-2e1b75bcb848/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '5613e162-bd21-4ba4-92de-2e1b75bcb848'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/5613e162-bd21-4ba4-92de-2e1b75bcb848/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '5613e162-bd21-4ba4-92de-2e1b75bcb848'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/5613e162-bd21-4ba4-92de-2e1b75bcb848/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '5613e162-bd21-4ba4-92de-2e1b75bcb848'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/5613e162-bd21-4ba4-92de-2e1b75bcb848/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '5613e162-bd21-4ba4-92de-2e1b75bcb848'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/5613e162-bd21-4ba4-92de-2e1b75bcb848/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '5613e162-bd21-4ba4-92de-2e1b75bcb848'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/5613e162-bd21-4ba4-92de-2e1b75bcb848/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '5613e162-bd21-4ba4-92de-2e1b75bcb848'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/5613e162-bd21-4ba4-92de-2e1b75bcb848/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.b8f51b74-aec1-4ff9-8ef1-d81a4e376250',\n",
+ " 'attributes': {'name': 'IT_ENG_DEMO',\n",
+ " 'scopes': ['b360project.b8f51b74-aec1-4ff9-8ef1-d81a4e376250',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.b8f51b74-aec1-4ff9-8ef1-d81a4e376250'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/b8f51b74-aec1-4ff9-8ef1-d81a4e376250'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.FyLjwcPjRB-j_AdB2wvnBQ'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.b8f51b74-aec1-4ff9-8ef1-d81a4e376250/folders/urn:adsk.wipprod:fs.folder:co.FyLjwcPjRB-j_AdB2wvnBQ'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.b8f51b74-aec1-4ff9-8ef1-d81a4e376250/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'b8f51b74-aec1-4ff9-8ef1-d81a4e376250'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/b8f51b74-aec1-4ff9-8ef1-d81a4e376250/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'b8f51b74-aec1-4ff9-8ef1-d81a4e376250'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/b8f51b74-aec1-4ff9-8ef1-d81a4e376250/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'b8f51b74-aec1-4ff9-8ef1-d81a4e376250'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/b8f51b74-aec1-4ff9-8ef1-d81a4e376250/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'b8f51b74-aec1-4ff9-8ef1-d81a4e376250'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/b8f51b74-aec1-4ff9-8ef1-d81a4e376250/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'b8f51b74-aec1-4ff9-8ef1-d81a4e376250'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/b8f51b74-aec1-4ff9-8ef1-d81a4e376250/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'b8f51b74-aec1-4ff9-8ef1-d81a4e376250'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/b8f51b74-aec1-4ff9-8ef1-d81a4e376250/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'b8f51b74-aec1-4ff9-8ef1-d81a4e376250'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/b8f51b74-aec1-4ff9-8ef1-d81a4e376250/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.5f9f2bdd-148b-4b5b-ac3f-1a6b81a57774',\n",
+ " 'attributes': {'name': 'IS-ACC-Demo3',\n",
+ " 'scopes': ['b360project.5f9f2bdd-148b-4b5b-ac3f-1a6b81a57774',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.5f9f2bdd-148b-4b5b-ac3f-1a6b81a57774'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/5f9f2bdd-148b-4b5b-ac3f-1a6b81a57774'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.f7Gems9jSN2hJWxczOu8MQ'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.5f9f2bdd-148b-4b5b-ac3f-1a6b81a57774/folders/urn:adsk.wipprod:fs.folder:co.f7Gems9jSN2hJWxczOu8MQ'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.5f9f2bdd-148b-4b5b-ac3f-1a6b81a57774/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '5f9f2bdd-148b-4b5b-ac3f-1a6b81a57774'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/5f9f2bdd-148b-4b5b-ac3f-1a6b81a57774/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '5f9f2bdd-148b-4b5b-ac3f-1a6b81a57774'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/5f9f2bdd-148b-4b5b-ac3f-1a6b81a57774/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '5f9f2bdd-148b-4b5b-ac3f-1a6b81a57774'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/5f9f2bdd-148b-4b5b-ac3f-1a6b81a57774/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '5f9f2bdd-148b-4b5b-ac3f-1a6b81a57774'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/5f9f2bdd-148b-4b5b-ac3f-1a6b81a57774/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '5f9f2bdd-148b-4b5b-ac3f-1a6b81a57774'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/5f9f2bdd-148b-4b5b-ac3f-1a6b81a57774/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '5f9f2bdd-148b-4b5b-ac3f-1a6b81a57774'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/5f9f2bdd-148b-4b5b-ac3f-1a6b81a57774/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '5f9f2bdd-148b-4b5b-ac3f-1a6b81a57774'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/5f9f2bdd-148b-4b5b-ac3f-1a6b81a57774/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.2909bc6d-14e1-49b0-8a81-58975b33f82b',\n",
+ " 'attributes': {'name': 'NEA-C020704-YILI-DESIGN-Test Project',\n",
+ " 'scopes': ['b360project.2909bc6d-14e1-49b0-8a81-58975b33f82b',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.2909bc6d-14e1-49b0-8a81-58975b33f82b'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/2909bc6d-14e1-49b0-8a81-58975b33f82b'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.qZ83b_xtR1G9NyjIlFHMFw'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.2909bc6d-14e1-49b0-8a81-58975b33f82b/folders/urn:adsk.wipprod:fs.folder:co.qZ83b_xtR1G9NyjIlFHMFw'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.2909bc6d-14e1-49b0-8a81-58975b33f82b/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '2909bc6d-14e1-49b0-8a81-58975b33f82b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/2909bc6d-14e1-49b0-8a81-58975b33f82b/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '2909bc6d-14e1-49b0-8a81-58975b33f82b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/2909bc6d-14e1-49b0-8a81-58975b33f82b/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '2909bc6d-14e1-49b0-8a81-58975b33f82b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/2909bc6d-14e1-49b0-8a81-58975b33f82b/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '2909bc6d-14e1-49b0-8a81-58975b33f82b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/2909bc6d-14e1-49b0-8a81-58975b33f82b/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '2909bc6d-14e1-49b0-8a81-58975b33f82b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/2909bc6d-14e1-49b0-8a81-58975b33f82b/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '2909bc6d-14e1-49b0-8a81-58975b33f82b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/2909bc6d-14e1-49b0-8a81-58975b33f82b/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '6f91257d-9aba-4ac8-a677-69c1d722dbf7'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/6f91257d-9aba-4ac8-a677-69c1d722dbf7/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.4f4f69d6-f8ea-4ed8-b1d0-86c890066a3d',\n",
+ " 'attributes': {'name': 'CORP-X02-PROJECT_DMCS_PoC',\n",
+ " 'scopes': ['b360project.4f4f69d6-f8ea-4ed8-b1d0-86c890066a3d',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.4f4f69d6-f8ea-4ed8-b1d0-86c890066a3d'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/4f4f69d6-f8ea-4ed8-b1d0-86c890066a3d'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.9dY6nrZpTLuaE5SthuIfmw'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.4f4f69d6-f8ea-4ed8-b1d0-86c890066a3d/folders/urn:adsk.wipprod:fs.folder:co.9dY6nrZpTLuaE5SthuIfmw'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.4f4f69d6-f8ea-4ed8-b1d0-86c890066a3d/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '4f4f69d6-f8ea-4ed8-b1d0-86c890066a3d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/4f4f69d6-f8ea-4ed8-b1d0-86c890066a3d/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '4f4f69d6-f8ea-4ed8-b1d0-86c890066a3d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/4f4f69d6-f8ea-4ed8-b1d0-86c890066a3d/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '4f4f69d6-f8ea-4ed8-b1d0-86c890066a3d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/4f4f69d6-f8ea-4ed8-b1d0-86c890066a3d/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '4f4f69d6-f8ea-4ed8-b1d0-86c890066a3d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/4f4f69d6-f8ea-4ed8-b1d0-86c890066a3d/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '4f4f69d6-f8ea-4ed8-b1d0-86c890066a3d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/4f4f69d6-f8ea-4ed8-b1d0-86c890066a3d/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '4f4f69d6-f8ea-4ed8-b1d0-86c890066a3d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/4f4f69d6-f8ea-4ed8-b1d0-86c890066a3d/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '89b790ee-0475-4870-8f2d-acee2f07fc3f'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/89b790ee-0475-4870-8f2d-acee2f07fc3f/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.786ec22b-3cfe-4483-81ae-217cb636ef8c',\n",
+ " 'attributes': {'name': 'IT - ACC Test',\n",
+ " 'scopes': ['b360project.786ec22b-3cfe-4483-81ae-217cb636ef8c',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.786ec22b-3cfe-4483-81ae-217cb636ef8c'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/786ec22b-3cfe-4483-81ae-217cb636ef8c'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.p-8qwnplTf6k7ijZWJNOrg'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.786ec22b-3cfe-4483-81ae-217cb636ef8c/folders/urn:adsk.wipprod:fs.folder:co.p-8qwnplTf6k7ijZWJNOrg'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.786ec22b-3cfe-4483-81ae-217cb636ef8c/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '786ec22b-3cfe-4483-81ae-217cb636ef8c'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/786ec22b-3cfe-4483-81ae-217cb636ef8c/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '786ec22b-3cfe-4483-81ae-217cb636ef8c'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/786ec22b-3cfe-4483-81ae-217cb636ef8c/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '786ec22b-3cfe-4483-81ae-217cb636ef8c'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/786ec22b-3cfe-4483-81ae-217cb636ef8c/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '786ec22b-3cfe-4483-81ae-217cb636ef8c'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/786ec22b-3cfe-4483-81ae-217cb636ef8c/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '786ec22b-3cfe-4483-81ae-217cb636ef8c'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/786ec22b-3cfe-4483-81ae-217cb636ef8c/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '786ec22b-3cfe-4483-81ae-217cb636ef8c'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/786ec22b-3cfe-4483-81ae-217cb636ef8c/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '786ec22b-3cfe-4483-81ae-217cb636ef8c'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/786ec22b-3cfe-4483-81ae-217cb636ef8c/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.bab40833-c89c-40d8-9097-1d6c3c9750e3',\n",
+ " 'attributes': {'name': 'Test Copy Project1',\n",
+ " 'scopes': ['b360project.bab40833-c89c-40d8-9097-1d6c3c9750e3',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.bab40833-c89c-40d8-9097-1d6c3c9750e3'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/bab40833-c89c-40d8-9097-1d6c3c9750e3'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.K3WfCr1gQE6_NQd5Yu0qZA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.bab40833-c89c-40d8-9097-1d6c3c9750e3/folders/urn:adsk.wipprod:fs.folder:co.K3WfCr1gQE6_NQd5Yu0qZA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.bab40833-c89c-40d8-9097-1d6c3c9750e3/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'bab40833-c89c-40d8-9097-1d6c3c9750e3'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/bab40833-c89c-40d8-9097-1d6c3c9750e3/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'bab40833-c89c-40d8-9097-1d6c3c9750e3'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/bab40833-c89c-40d8-9097-1d6c3c9750e3/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'bab40833-c89c-40d8-9097-1d6c3c9750e3'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/bab40833-c89c-40d8-9097-1d6c3c9750e3/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'bab40833-c89c-40d8-9097-1d6c3c9750e3'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/bab40833-c89c-40d8-9097-1d6c3c9750e3/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'bab40833-c89c-40d8-9097-1d6c3c9750e3'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/bab40833-c89c-40d8-9097-1d6c3c9750e3/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'bab40833-c89c-40d8-9097-1d6c3c9750e3'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/bab40833-c89c-40d8-9097-1d6c3c9750e3/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'bab40833-c89c-40d8-9097-1d6c3c9750e3'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/bab40833-c89c-40d8-9097-1d6c3c9750e3/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.c47b9ad9-4c3e-4d53-af23-a3ebacb26739',\n",
+ " 'attributes': {'name': 'CORP-Autodesk-Metadata Test',\n",
+ " 'scopes': ['b360project.c47b9ad9-4c3e-4d53-af23-a3ebacb26739',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.c47b9ad9-4c3e-4d53-af23-a3ebacb26739'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/c47b9ad9-4c3e-4d53-af23-a3ebacb26739'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.Y5PwU25DSBmNa4Bv7XzIow'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.c47b9ad9-4c3e-4d53-af23-a3ebacb26739/folders/urn:adsk.wipprod:fs.folder:co.Y5PwU25DSBmNa4Bv7XzIow'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.c47b9ad9-4c3e-4d53-af23-a3ebacb26739/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'c47b9ad9-4c3e-4d53-af23-a3ebacb26739'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/c47b9ad9-4c3e-4d53-af23-a3ebacb26739/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'c47b9ad9-4c3e-4d53-af23-a3ebacb26739'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/c47b9ad9-4c3e-4d53-af23-a3ebacb26739/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'c47b9ad9-4c3e-4d53-af23-a3ebacb26739'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/c47b9ad9-4c3e-4d53-af23-a3ebacb26739/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'c47b9ad9-4c3e-4d53-af23-a3ebacb26739'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/c47b9ad9-4c3e-4d53-af23-a3ebacb26739/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'c47b9ad9-4c3e-4d53-af23-a3ebacb26739'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/c47b9ad9-4c3e-4d53-af23-a3ebacb26739/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'c47b9ad9-4c3e-4d53-af23-a3ebacb26739'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/c47b9ad9-4c3e-4d53-af23-a3ebacb26739/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'c47b9ad9-4c3e-4d53-af23-a3ebacb26739'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/c47b9ad9-4c3e-4d53-af23-a3ebacb26739/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.e02a7aee-ce55-4385-b60b-a04470f0b572',\n",
+ " 'attributes': {'name': 'Blue Jay Glue Test - IP Sensitive',\n",
+ " 'scopes': ['b360project.e02a7aee-ce55-4385-b60b-a04470f0b572',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.e02a7aee-ce55-4385-b60b-a04470f0b572'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/e02a7aee-ce55-4385-b60b-a04470f0b572'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.YxUnsn09QPeW4m2kUbGBoA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.e02a7aee-ce55-4385-b60b-a04470f0b572/folders/urn:adsk.wipprod:fs.folder:co.YxUnsn09QPeW4m2kUbGBoA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.e02a7aee-ce55-4385-b60b-a04470f0b572/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'e02a7aee-ce55-4385-b60b-a04470f0b572'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/e02a7aee-ce55-4385-b60b-a04470f0b572/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'e02a7aee-ce55-4385-b60b-a04470f0b572'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/e02a7aee-ce55-4385-b60b-a04470f0b572/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'e02a7aee-ce55-4385-b60b-a04470f0b572'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/e02a7aee-ce55-4385-b60b-a04470f0b572/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'e02a7aee-ce55-4385-b60b-a04470f0b572'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/e02a7aee-ce55-4385-b60b-a04470f0b572/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'e02a7aee-ce55-4385-b60b-a04470f0b572'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/e02a7aee-ce55-4385-b60b-a04470f0b572/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'e02a7aee-ce55-4385-b60b-a04470f0b572'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/e02a7aee-ce55-4385-b60b-a04470f0b572/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '9215eae3-ab27-421d-a422-21f070d09649'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/9215eae3-ab27-421d-a422-21f070d09649/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.01dcfc08-8412-4508-9d51-2b049e24d303',\n",
+ " 'attributes': {'name': 'CORP-X03-Asset Module POC',\n",
+ " 'scopes': ['b360project.01dcfc08-8412-4508-9d51-2b049e24d303',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.01dcfc08-8412-4508-9d51-2b049e24d303'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/01dcfc08-8412-4508-9d51-2b049e24d303'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.q2u4X_y8SB-NldPfxSbgYg'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.01dcfc08-8412-4508-9d51-2b049e24d303/folders/urn:adsk.wipprod:fs.folder:co.q2u4X_y8SB-NldPfxSbgYg'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.01dcfc08-8412-4508-9d51-2b049e24d303/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '01dcfc08-8412-4508-9d51-2b049e24d303'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/01dcfc08-8412-4508-9d51-2b049e24d303/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '01dcfc08-8412-4508-9d51-2b049e24d303'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/01dcfc08-8412-4508-9d51-2b049e24d303/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '01dcfc08-8412-4508-9d51-2b049e24d303'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/01dcfc08-8412-4508-9d51-2b049e24d303/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '01dcfc08-8412-4508-9d51-2b049e24d303'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/01dcfc08-8412-4508-9d51-2b049e24d303/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '01dcfc08-8412-4508-9d51-2b049e24d303'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/01dcfc08-8412-4508-9d51-2b049e24d303/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '01dcfc08-8412-4508-9d51-2b049e24d303'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/01dcfc08-8412-4508-9d51-2b049e24d303/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'ea3a9837-cedf-430c-b4c7-14964d2d7e4c'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/ea3a9837-cedf-430c-b4c7-14964d2d7e4c/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.2290555c-7a1a-4ac3-9340-fd8e0034377a',\n",
+ " 'attributes': {'name': 'IS Demo Project 02',\n",
+ " 'scopes': ['b360project.2290555c-7a1a-4ac3-9340-fd8e0034377a',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.2290555c-7a1a-4ac3-9340-fd8e0034377a'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/2290555c-7a1a-4ac3-9340-fd8e0034377a'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.lAUjZwOiT7CdEkucHKaxnA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.2290555c-7a1a-4ac3-9340-fd8e0034377a/folders/urn:adsk.wipprod:fs.folder:co.lAUjZwOiT7CdEkucHKaxnA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.2290555c-7a1a-4ac3-9340-fd8e0034377a/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '2290555c-7a1a-4ac3-9340-fd8e0034377a'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/2290555c-7a1a-4ac3-9340-fd8e0034377a/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '2290555c-7a1a-4ac3-9340-fd8e0034377a'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/2290555c-7a1a-4ac3-9340-fd8e0034377a/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '2290555c-7a1a-4ac3-9340-fd8e0034377a'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/2290555c-7a1a-4ac3-9340-fd8e0034377a/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '2290555c-7a1a-4ac3-9340-fd8e0034377a'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/2290555c-7a1a-4ac3-9340-fd8e0034377a/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '2290555c-7a1a-4ac3-9340-fd8e0034377a'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/2290555c-7a1a-4ac3-9340-fd8e0034377a/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '2290555c-7a1a-4ac3-9340-fd8e0034377a'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/2290555c-7a1a-4ac3-9340-fd8e0034377a/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '2290555c-7a1a-4ac3-9340-fd8e0034377a'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/2290555c-7a1a-4ac3-9340-fd8e0034377a/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.50f79fc6-0ef4-4eee-a8b4-16b0d4e4f384',\n",
+ " 'attributes': {'name': 'CORP-X01-Asset Module Testing',\n",
+ " 'scopes': ['b360project.50f79fc6-0ef4-4eee-a8b4-16b0d4e4f384',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.50f79fc6-0ef4-4eee-a8b4-16b0d4e4f384'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/50f79fc6-0ef4-4eee-a8b4-16b0d4e4f384'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.zYupwywvQtWemPtfzRJR2Q'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.50f79fc6-0ef4-4eee-a8b4-16b0d4e4f384/folders/urn:adsk.wipprod:fs.folder:co.zYupwywvQtWemPtfzRJR2Q'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.50f79fc6-0ef4-4eee-a8b4-16b0d4e4f384/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '0239131c-424c-4b7d-9d35-51f7abf86636'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/0239131c-424c-4b7d-9d35-51f7abf86636/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '95c472d2-4d3f-4e96-99c1-da249429080a'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/95c472d2-4d3f-4e96-99c1-da249429080a/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '0239131c-424c-4b7d-9d35-51f7abf86636'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/0239131c-424c-4b7d-9d35-51f7abf86636/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '0239131c-424c-4b7d-9d35-51f7abf86636'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/0239131c-424c-4b7d-9d35-51f7abf86636/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '0239131c-424c-4b7d-9d35-51f7abf86636'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/0239131c-424c-4b7d-9d35-51f7abf86636/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '50f79fc6-0ef4-4eee-a8b4-16b0d4e4f384'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/50f79fc6-0ef4-4eee-a8b4-16b0d4e4f384/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '50e9b7e8-93ca-4913-9246-eb359528f2b4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/50e9b7e8-93ca-4913-9246-eb359528f2b4/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.850e7b0d-5f53-4f31-b0e7-a890e95c11ef',\n",
+ " 'attributes': {'name': 'CORP-GLOBAL_BIM_GROUP',\n",
+ " 'scopes': ['b360project.850e7b0d-5f53-4f31-b0e7-a890e95c11ef',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.850e7b0d-5f53-4f31-b0e7-a890e95c11ef'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/850e7b0d-5f53-4f31-b0e7-a890e95c11ef'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.GgcRyIPwSka0ek3Emwce1g'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.850e7b0d-5f53-4f31-b0e7-a890e95c11ef/folders/urn:adsk.wipprod:fs.folder:co.GgcRyIPwSka0ek3Emwce1g'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.850e7b0d-5f53-4f31-b0e7-a890e95c11ef/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '850e7b0d-5f53-4f31-b0e7-a890e95c11ef'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/850e7b0d-5f53-4f31-b0e7-a890e95c11ef/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '850e7b0d-5f53-4f31-b0e7-a890e95c11ef'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/850e7b0d-5f53-4f31-b0e7-a890e95c11ef/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '850e7b0d-5f53-4f31-b0e7-a890e95c11ef'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/850e7b0d-5f53-4f31-b0e7-a890e95c11ef/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '850e7b0d-5f53-4f31-b0e7-a890e95c11ef'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/850e7b0d-5f53-4f31-b0e7-a890e95c11ef/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '850e7b0d-5f53-4f31-b0e7-a890e95c11ef'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/850e7b0d-5f53-4f31-b0e7-a890e95c11ef/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '850e7b0d-5f53-4f31-b0e7-a890e95c11ef'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/850e7b0d-5f53-4f31-b0e7-a890e95c11ef/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '850e7b0d-5f53-4f31-b0e7-a890e95c11ef'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/850e7b0d-5f53-4f31-b0e7-a890e95c11ef/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.43d50f6d-4fef-4da3-991a-e59260005627',\n",
+ " 'attributes': {'name': 'IS_DEMO-GT',\n",
+ " 'scopes': ['b360project.43d50f6d-4fef-4da3-991a-e59260005627',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.43d50f6d-4fef-4da3-991a-e59260005627'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/43d50f6d-4fef-4da3-991a-e59260005627'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.5HkGHFPQR7u8p-oESmPgkA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.43d50f6d-4fef-4da3-991a-e59260005627/folders/urn:adsk.wipprod:fs.folder:co.5HkGHFPQR7u8p-oESmPgkA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.43d50f6d-4fef-4da3-991a-e59260005627/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '43d50f6d-4fef-4da3-991a-e59260005627'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/43d50f6d-4fef-4da3-991a-e59260005627/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '43d50f6d-4fef-4da3-991a-e59260005627'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/43d50f6d-4fef-4da3-991a-e59260005627/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '43d50f6d-4fef-4da3-991a-e59260005627'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/43d50f6d-4fef-4da3-991a-e59260005627/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '43d50f6d-4fef-4da3-991a-e59260005627'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/43d50f6d-4fef-4da3-991a-e59260005627/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '43d50f6d-4fef-4da3-991a-e59260005627'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/43d50f6d-4fef-4da3-991a-e59260005627/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '43d50f6d-4fef-4da3-991a-e59260005627'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/43d50f6d-4fef-4da3-991a-e59260005627/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '43d50f6d-4fef-4da3-991a-e59260005627'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/43d50f6d-4fef-4da3-991a-e59260005627/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.e4fa1721-7d01-4da1-9879-dfbc1cc3ab26',\n",
+ " 'attributes': {'name': 'CORP-ACC2BIM360-TEST',\n",
+ " 'scopes': ['b360project.e4fa1721-7d01-4da1-9879-dfbc1cc3ab26',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.e4fa1721-7d01-4da1-9879-dfbc1cc3ab26'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/e4fa1721-7d01-4da1-9879-dfbc1cc3ab26'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.cSxq9K5QQEWC7hcvfLX6AQ'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.e4fa1721-7d01-4da1-9879-dfbc1cc3ab26/folders/urn:adsk.wipprod:fs.folder:co.cSxq9K5QQEWC7hcvfLX6AQ'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.e4fa1721-7d01-4da1-9879-dfbc1cc3ab26/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'e4fa1721-7d01-4da1-9879-dfbc1cc3ab26'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/e4fa1721-7d01-4da1-9879-dfbc1cc3ab26/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'e4fa1721-7d01-4da1-9879-dfbc1cc3ab26'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/e4fa1721-7d01-4da1-9879-dfbc1cc3ab26/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'e4fa1721-7d01-4da1-9879-dfbc1cc3ab26'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/e4fa1721-7d01-4da1-9879-dfbc1cc3ab26/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'e4fa1721-7d01-4da1-9879-dfbc1cc3ab26'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/e4fa1721-7d01-4da1-9879-dfbc1cc3ab26/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'e4fa1721-7d01-4da1-9879-dfbc1cc3ab26'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/e4fa1721-7d01-4da1-9879-dfbc1cc3ab26/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'e4fa1721-7d01-4da1-9879-dfbc1cc3ab26'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/e4fa1721-7d01-4da1-9879-dfbc1cc3ab26/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'e4fa1721-7d01-4da1-9879-dfbc1cc3ab26'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/e4fa1721-7d01-4da1-9879-dfbc1cc3ab26/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.5207915c-4c64-412b-8c4f-3671ca698933',\n",
+ " 'attributes': {'name': 'IS ENGINEERING_APP Testing Project',\n",
+ " 'scopes': ['b360project.5207915c-4c64-412b-8c4f-3671ca698933',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.5207915c-4c64-412b-8c4f-3671ca698933'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/5207915c-4c64-412b-8c4f-3671ca698933'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.QNbRx5gEQvi36-wIuEcu7w'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.5207915c-4c64-412b-8c4f-3671ca698933/folders/urn:adsk.wipprod:fs.folder:co.QNbRx5gEQvi36-wIuEcu7w'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.5207915c-4c64-412b-8c4f-3671ca698933/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '38b4b7bc-14f2-403d-a875-ead474026330'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/38b4b7bc-14f2-403d-a875-ead474026330/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '2e995bce-66c8-4bdf-a143-fec9fcc9c992'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/2e995bce-66c8-4bdf-a143-fec9fcc9c992/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '38b4b7bc-14f2-403d-a875-ead474026330'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/38b4b7bc-14f2-403d-a875-ead474026330/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '38b4b7bc-14f2-403d-a875-ead474026330'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/38b4b7bc-14f2-403d-a875-ead474026330/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '38b4b7bc-14f2-403d-a875-ead474026330'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/38b4b7bc-14f2-403d-a875-ead474026330/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '5207915c-4c64-412b-8c4f-3671ca698933'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/5207915c-4c64-412b-8c4f-3671ca698933/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'f1191d9a-3d11-4ad7-9ea9-52499cc985ee'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/f1191d9a-3d11-4ad7-9ea9-52499cc985ee/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.96d66044-2dff-4d7c-9cf9-80c9644b6eb9',\n",
+ " 'attributes': {'name': 'IS ENGINEERING_Demo Project',\n",
+ " 'scopes': ['b360project.96d66044-2dff-4d7c-9cf9-80c9644b6eb9',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.96d66044-2dff-4d7c-9cf9-80c9644b6eb9'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/96d66044-2dff-4d7c-9cf9-80c9644b6eb9'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.vm_jm_HKSza4vzkG9qHYXA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.96d66044-2dff-4d7c-9cf9-80c9644b6eb9/folders/urn:adsk.wipprod:fs.folder:co.vm_jm_HKSza4vzkG9qHYXA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.96d66044-2dff-4d7c-9cf9-80c9644b6eb9/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '4d6d8b9e-24d1-4c6e-80e3-8a3d51751a3b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/4d6d8b9e-24d1-4c6e-80e3-8a3d51751a3b/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'cb4fa537-93da-4045-b76e-a6e532a32fc8'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/cb4fa537-93da-4045-b76e-a6e532a32fc8/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '4d6d8b9e-24d1-4c6e-80e3-8a3d51751a3b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/4d6d8b9e-24d1-4c6e-80e3-8a3d51751a3b/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '4d6d8b9e-24d1-4c6e-80e3-8a3d51751a3b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/4d6d8b9e-24d1-4c6e-80e3-8a3d51751a3b/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '4d6d8b9e-24d1-4c6e-80e3-8a3d51751a3b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/4d6d8b9e-24d1-4c6e-80e3-8a3d51751a3b/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '96d66044-2dff-4d7c-9cf9-80c9644b6eb9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/96d66044-2dff-4d7c-9cf9-80c9644b6eb9/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'da571dd6-6968-4960-acbf-073588f9e7c9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/da571dd6-6968-4960-acbf-073588f9e7c9/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.8c1fa803-e7a5-4dc5-a789-21be7e3c1cd0',\n",
+ " 'attributes': {'name': 'Test Post Project9',\n",
+ " 'scopes': ['b360project.8c1fa803-e7a5-4dc5-a789-21be7e3c1cd0',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.8c1fa803-e7a5-4dc5-a789-21be7e3c1cd0'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/8c1fa803-e7a5-4dc5-a789-21be7e3c1cd0'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.ElI5ChHRToazFBkzXNQ5fA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.8c1fa803-e7a5-4dc5-a789-21be7e3c1cd0/folders/urn:adsk.wipprod:fs.folder:co.ElI5ChHRToazFBkzXNQ5fA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.8c1fa803-e7a5-4dc5-a789-21be7e3c1cd0/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '8c1fa803-e7a5-4dc5-a789-21be7e3c1cd0'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/8c1fa803-e7a5-4dc5-a789-21be7e3c1cd0/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '8c1fa803-e7a5-4dc5-a789-21be7e3c1cd0'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/8c1fa803-e7a5-4dc5-a789-21be7e3c1cd0/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '8c1fa803-e7a5-4dc5-a789-21be7e3c1cd0'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/8c1fa803-e7a5-4dc5-a789-21be7e3c1cd0/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '8c1fa803-e7a5-4dc5-a789-21be7e3c1cd0'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/8c1fa803-e7a5-4dc5-a789-21be7e3c1cd0/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '8c1fa803-e7a5-4dc5-a789-21be7e3c1cd0'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/8c1fa803-e7a5-4dc5-a789-21be7e3c1cd0/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '8c1fa803-e7a5-4dc5-a789-21be7e3c1cd0'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/8c1fa803-e7a5-4dc5-a789-21be7e3c1cd0/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '8c1fa803-e7a5-4dc5-a789-21be7e3c1cd0'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/8c1fa803-e7a5-4dc5-a789-21be7e3c1cd0/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.8b9350c7-6b0a-451e-83c2-ea2e1de4feab',\n",
+ " 'attributes': {'name': 'ACC Test Project',\n",
+ " 'scopes': ['b360project.8b9350c7-6b0a-451e-83c2-ea2e1de4feab',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.8b9350c7-6b0a-451e-83c2-ea2e1de4feab'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/8b9350c7-6b0a-451e-83c2-ea2e1de4feab'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.qUWVQiXVQCerYYdvXXgRlA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.8b9350c7-6b0a-451e-83c2-ea2e1de4feab/folders/urn:adsk.wipprod:fs.folder:co.qUWVQiXVQCerYYdvXXgRlA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.8b9350c7-6b0a-451e-83c2-ea2e1de4feab/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '8b9350c7-6b0a-451e-83c2-ea2e1de4feab'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/8b9350c7-6b0a-451e-83c2-ea2e1de4feab/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '8b9350c7-6b0a-451e-83c2-ea2e1de4feab'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/8b9350c7-6b0a-451e-83c2-ea2e1de4feab/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '8b9350c7-6b0a-451e-83c2-ea2e1de4feab'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/8b9350c7-6b0a-451e-83c2-ea2e1de4feab/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '8b9350c7-6b0a-451e-83c2-ea2e1de4feab'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/8b9350c7-6b0a-451e-83c2-ea2e1de4feab/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '8b9350c7-6b0a-451e-83c2-ea2e1de4feab'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/8b9350c7-6b0a-451e-83c2-ea2e1de4feab/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '8b9350c7-6b0a-451e-83c2-ea2e1de4feab'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/8b9350c7-6b0a-451e-83c2-ea2e1de4feab/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '8b9350c7-6b0a-451e-83c2-ea2e1de4feab'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/8b9350c7-6b0a-451e-83c2-ea2e1de4feab/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.a4381aed-1a2d-4c72-afc5-abb0281fdfa0',\n",
+ " 'attributes': {'name': 'SEA-PELICAN_TI_Migration Test',\n",
+ " 'scopes': ['b360project.a4381aed-1a2d-4c72-afc5-abb0281fdfa0',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.a4381aed-1a2d-4c72-afc5-abb0281fdfa0'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/a4381aed-1a2d-4c72-afc5-abb0281fdfa0'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.1TxjOsKGTFeixl6D6XfhAA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.a4381aed-1a2d-4c72-afc5-abb0281fdfa0/folders/urn:adsk.wipprod:fs.folder:co.1TxjOsKGTFeixl6D6XfhAA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.a4381aed-1a2d-4c72-afc5-abb0281fdfa0/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'a4381aed-1a2d-4c72-afc5-abb0281fdfa0'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/a4381aed-1a2d-4c72-afc5-abb0281fdfa0/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'a4381aed-1a2d-4c72-afc5-abb0281fdfa0'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/a4381aed-1a2d-4c72-afc5-abb0281fdfa0/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'a4381aed-1a2d-4c72-afc5-abb0281fdfa0'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/a4381aed-1a2d-4c72-afc5-abb0281fdfa0/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'a4381aed-1a2d-4c72-afc5-abb0281fdfa0'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/a4381aed-1a2d-4c72-afc5-abb0281fdfa0/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'a4381aed-1a2d-4c72-afc5-abb0281fdfa0'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/a4381aed-1a2d-4c72-afc5-abb0281fdfa0/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'a4381aed-1a2d-4c72-afc5-abb0281fdfa0'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/a4381aed-1a2d-4c72-afc5-abb0281fdfa0/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'a4381aed-1a2d-4c72-afc5-abb0281fdfa0'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/a4381aed-1a2d-4c72-afc5-abb0281fdfa0/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.50b01746-0c8d-49e3-be10-e351422e43e7',\n",
+ " 'attributes': {'name': 'NEA-Revit Integration Test',\n",
+ " 'scopes': ['b360project.50b01746-0c8d-49e3-be10-e351422e43e7',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.50b01746-0c8d-49e3-be10-e351422e43e7'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/50b01746-0c8d-49e3-be10-e351422e43e7'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.kjzcW8nHQj-NueVM4AczKA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.50b01746-0c8d-49e3-be10-e351422e43e7/folders/urn:adsk.wipprod:fs.folder:co.kjzcW8nHQj-NueVM4AczKA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.50b01746-0c8d-49e3-be10-e351422e43e7/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '50b01746-0c8d-49e3-be10-e351422e43e7'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/50b01746-0c8d-49e3-be10-e351422e43e7/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '50b01746-0c8d-49e3-be10-e351422e43e7'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/50b01746-0c8d-49e3-be10-e351422e43e7/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '50b01746-0c8d-49e3-be10-e351422e43e7'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/50b01746-0c8d-49e3-be10-e351422e43e7/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '50b01746-0c8d-49e3-be10-e351422e43e7'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/50b01746-0c8d-49e3-be10-e351422e43e7/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '50b01746-0c8d-49e3-be10-e351422e43e7'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/50b01746-0c8d-49e3-be10-e351422e43e7/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '50b01746-0c8d-49e3-be10-e351422e43e7'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/50b01746-0c8d-49e3-be10-e351422e43e7/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '50b01746-0c8d-49e3-be10-e351422e43e7'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/50b01746-0c8d-49e3-be10-e351422e43e7/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.e5b941e7-5992-48c5-a707-ee1f97436a85',\n",
+ " 'attributes': {'name': 'Test Copy Project 7',\n",
+ " 'scopes': ['b360project.e5b941e7-5992-48c5-a707-ee1f97436a85',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.e5b941e7-5992-48c5-a707-ee1f97436a85'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/e5b941e7-5992-48c5-a707-ee1f97436a85'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.JQ1UeR6gR0WLQ5eXJ5JYCA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.e5b941e7-5992-48c5-a707-ee1f97436a85/folders/urn:adsk.wipprod:fs.folder:co.JQ1UeR6gR0WLQ5eXJ5JYCA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.e5b941e7-5992-48c5-a707-ee1f97436a85/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'e5b941e7-5992-48c5-a707-ee1f97436a85'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/e5b941e7-5992-48c5-a707-ee1f97436a85/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'e5b941e7-5992-48c5-a707-ee1f97436a85'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/e5b941e7-5992-48c5-a707-ee1f97436a85/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'e5b941e7-5992-48c5-a707-ee1f97436a85'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/e5b941e7-5992-48c5-a707-ee1f97436a85/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'e5b941e7-5992-48c5-a707-ee1f97436a85'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/e5b941e7-5992-48c5-a707-ee1f97436a85/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'e5b941e7-5992-48c5-a707-ee1f97436a85'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/e5b941e7-5992-48c5-a707-ee1f97436a85/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'e5b941e7-5992-48c5-a707-ee1f97436a85'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/e5b941e7-5992-48c5-a707-ee1f97436a85/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'e5b941e7-5992-48c5-a707-ee1f97436a85'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/e5b941e7-5992-48c5-a707-ee1f97436a85/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.aee3d7dd-0cbc-4463-b702-e449f3626317',\n",
+ " 'attributes': {'name': 'IS-ACC-Demo2',\n",
+ " 'scopes': ['b360project.aee3d7dd-0cbc-4463-b702-e449f3626317',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.aee3d7dd-0cbc-4463-b702-e449f3626317'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/aee3d7dd-0cbc-4463-b702-e449f3626317'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.7xkEFJ6HR02XsQezwayjTQ'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.aee3d7dd-0cbc-4463-b702-e449f3626317/folders/urn:adsk.wipprod:fs.folder:co.7xkEFJ6HR02XsQezwayjTQ'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.aee3d7dd-0cbc-4463-b702-e449f3626317/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'aee3d7dd-0cbc-4463-b702-e449f3626317'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/aee3d7dd-0cbc-4463-b702-e449f3626317/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'aee3d7dd-0cbc-4463-b702-e449f3626317'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/aee3d7dd-0cbc-4463-b702-e449f3626317/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'aee3d7dd-0cbc-4463-b702-e449f3626317'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/aee3d7dd-0cbc-4463-b702-e449f3626317/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'aee3d7dd-0cbc-4463-b702-e449f3626317'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/aee3d7dd-0cbc-4463-b702-e449f3626317/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'aee3d7dd-0cbc-4463-b702-e449f3626317'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/aee3d7dd-0cbc-4463-b702-e449f3626317/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'aee3d7dd-0cbc-4463-b702-e449f3626317'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/aee3d7dd-0cbc-4463-b702-e449f3626317/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'aee3d7dd-0cbc-4463-b702-e449f3626317'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/aee3d7dd-0cbc-4463-b702-e449f3626317/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.de20b2ef-545f-46c1-818f-23c2c2869e58',\n",
+ " 'attributes': {'name': 'NEI-DTC Take-off Test',\n",
+ " 'scopes': ['b360project.de20b2ef-545f-46c1-818f-23c2c2869e58',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.de20b2ef-545f-46c1-818f-23c2c2869e58'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/de20b2ef-545f-46c1-818f-23c2c2869e58'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.bNmsz_vxTdK2MCxpUBW-XQ'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.de20b2ef-545f-46c1-818f-23c2c2869e58/folders/urn:adsk.wipprod:fs.folder:co.bNmsz_vxTdK2MCxpUBW-XQ'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.de20b2ef-545f-46c1-818f-23c2c2869e58/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'de20b2ef-545f-46c1-818f-23c2c2869e58'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/de20b2ef-545f-46c1-818f-23c2c2869e58/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'de20b2ef-545f-46c1-818f-23c2c2869e58'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/de20b2ef-545f-46c1-818f-23c2c2869e58/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'de20b2ef-545f-46c1-818f-23c2c2869e58'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/de20b2ef-545f-46c1-818f-23c2c2869e58/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'de20b2ef-545f-46c1-818f-23c2c2869e58'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/de20b2ef-545f-46c1-818f-23c2c2869e58/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'de20b2ef-545f-46c1-818f-23c2c2869e58'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/de20b2ef-545f-46c1-818f-23c2c2869e58/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'de20b2ef-545f-46c1-818f-23c2c2869e58'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/de20b2ef-545f-46c1-818f-23c2c2869e58/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'de20b2ef-545f-46c1-818f-23c2c2869e58'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/de20b2ef-545f-46c1-818f-23c2c2869e58/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.d3b4b4fc-6ff1-44f3-bd59-f72ee42f2035',\n",
+ " 'attributes': {'name': 'IS-TEST',\n",
+ " 'scopes': ['b360project.d3b4b4fc-6ff1-44f3-bd59-f72ee42f2035',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.d3b4b4fc-6ff1-44f3-bd59-f72ee42f2035'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/d3b4b4fc-6ff1-44f3-bd59-f72ee42f2035'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.Jnu_8SXzQFifAXp9FSKH_A'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.d3b4b4fc-6ff1-44f3-bd59-f72ee42f2035/folders/urn:adsk.wipprod:fs.folder:co.Jnu_8SXzQFifAXp9FSKH_A'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.d3b4b4fc-6ff1-44f3-bd59-f72ee42f2035/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'd3b4b4fc-6ff1-44f3-bd59-f72ee42f2035'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/d3b4b4fc-6ff1-44f3-bd59-f72ee42f2035/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'd3b4b4fc-6ff1-44f3-bd59-f72ee42f2035'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/d3b4b4fc-6ff1-44f3-bd59-f72ee42f2035/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'd3b4b4fc-6ff1-44f3-bd59-f72ee42f2035'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/d3b4b4fc-6ff1-44f3-bd59-f72ee42f2035/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'd3b4b4fc-6ff1-44f3-bd59-f72ee42f2035'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/d3b4b4fc-6ff1-44f3-bd59-f72ee42f2035/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'd3b4b4fc-6ff1-44f3-bd59-f72ee42f2035'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/d3b4b4fc-6ff1-44f3-bd59-f72ee42f2035/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'd3b4b4fc-6ff1-44f3-bd59-f72ee42f2035'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/d3b4b4fc-6ff1-44f3-bd59-f72ee42f2035/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'd3b4b4fc-6ff1-44f3-bd59-f72ee42f2035'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/d3b4b4fc-6ff1-44f3-bd59-f72ee42f2035/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.bc6d4dab-784c-4011-bad3-a0860749eca1',\n",
+ " 'attributes': {'name': 'CORP-00001-TEST VDC FOLDER PROJECT',\n",
+ " 'scopes': ['b360project.bc6d4dab-784c-4011-bad3-a0860749eca1',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.bc6d4dab-784c-4011-bad3-a0860749eca1'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/bc6d4dab-784c-4011-bad3-a0860749eca1'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.bcJiVR8tSymq9odjHC_a6A'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.bc6d4dab-784c-4011-bad3-a0860749eca1/folders/urn:adsk.wipprod:fs.folder:co.bcJiVR8tSymq9odjHC_a6A'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.bc6d4dab-784c-4011-bad3-a0860749eca1/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'bc6d4dab-784c-4011-bad3-a0860749eca1'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/bc6d4dab-784c-4011-bad3-a0860749eca1/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'bc6d4dab-784c-4011-bad3-a0860749eca1'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/bc6d4dab-784c-4011-bad3-a0860749eca1/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'bc6d4dab-784c-4011-bad3-a0860749eca1'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/bc6d4dab-784c-4011-bad3-a0860749eca1/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'bc6d4dab-784c-4011-bad3-a0860749eca1'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/bc6d4dab-784c-4011-bad3-a0860749eca1/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'bc6d4dab-784c-4011-bad3-a0860749eca1'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/bc6d4dab-784c-4011-bad3-a0860749eca1/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'bc6d4dab-784c-4011-bad3-a0860749eca1'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/bc6d4dab-784c-4011-bad3-a0860749eca1/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'bc6d4dab-784c-4011-bad3-a0860749eca1'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/bc6d4dab-784c-4011-bad3-a0860749eca1/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.77b37151-a277-4c0d-a317-96e59bbcf8a6',\n",
+ " 'attributes': {'name': 'IFAT-GP300_Test',\n",
+ " 'scopes': ['b360project.77b37151-a277-4c0d-a317-96e59bbcf8a6',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.77b37151-a277-4c0d-a317-96e59bbcf8a6'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/77b37151-a277-4c0d-a317-96e59bbcf8a6'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.DGg8aTZAQGC_eluS3C9A_A'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.77b37151-a277-4c0d-a317-96e59bbcf8a6/folders/urn:adsk.wipprod:fs.folder:co.DGg8aTZAQGC_eluS3C9A_A'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.77b37151-a277-4c0d-a317-96e59bbcf8a6/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '77b37151-a277-4c0d-a317-96e59bbcf8a6'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/77b37151-a277-4c0d-a317-96e59bbcf8a6/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '77b37151-a277-4c0d-a317-96e59bbcf8a6'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/77b37151-a277-4c0d-a317-96e59bbcf8a6/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '77b37151-a277-4c0d-a317-96e59bbcf8a6'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/77b37151-a277-4c0d-a317-96e59bbcf8a6/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '77b37151-a277-4c0d-a317-96e59bbcf8a6'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/77b37151-a277-4c0d-a317-96e59bbcf8a6/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '77b37151-a277-4c0d-a317-96e59bbcf8a6'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/77b37151-a277-4c0d-a317-96e59bbcf8a6/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '77b37151-a277-4c0d-a317-96e59bbcf8a6'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/77b37151-a277-4c0d-a317-96e59bbcf8a6/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '77b37151-a277-4c0d-a317-96e59bbcf8a6'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/77b37151-a277-4c0d-a317-96e59bbcf8a6/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.ca790fb5-141d-4ad5-b411-0461af2e9748',\n",
+ " 'attributes': {'name': 'SG_MetaData',\n",
+ " 'scopes': ['b360project.ca790fb5-141d-4ad5-b411-0461af2e9748',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.ca790fb5-141d-4ad5-b411-0461af2e9748'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/ca790fb5-141d-4ad5-b411-0461af2e9748'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.TlWSDFYaSXaz_Kpm3PpuYw'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.ca790fb5-141d-4ad5-b411-0461af2e9748/folders/urn:adsk.wipprod:fs.folder:co.TlWSDFYaSXaz_Kpm3PpuYw'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.ca790fb5-141d-4ad5-b411-0461af2e9748/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'ca790fb5-141d-4ad5-b411-0461af2e9748'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/ca790fb5-141d-4ad5-b411-0461af2e9748/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'ca790fb5-141d-4ad5-b411-0461af2e9748'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/ca790fb5-141d-4ad5-b411-0461af2e9748/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'ca790fb5-141d-4ad5-b411-0461af2e9748'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/ca790fb5-141d-4ad5-b411-0461af2e9748/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'ca790fb5-141d-4ad5-b411-0461af2e9748'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/ca790fb5-141d-4ad5-b411-0461af2e9748/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'ca790fb5-141d-4ad5-b411-0461af2e9748'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/ca790fb5-141d-4ad5-b411-0461af2e9748/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'ca790fb5-141d-4ad5-b411-0461af2e9748'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/ca790fb5-141d-4ad5-b411-0461af2e9748/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'ca790fb5-141d-4ad5-b411-0461af2e9748'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/ca790fb5-141d-4ad5-b411-0461af2e9748/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.a4aceb66-c653-4ef6-b291-378fab119b3e',\n",
+ " 'attributes': {'name': 'COE-BIM 360 training-BIMVDC ATF',\n",
+ " 'scopes': ['b360project.a4aceb66-c653-4ef6-b291-378fab119b3e',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.a4aceb66-c653-4ef6-b291-378fab119b3e'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/a4aceb66-c653-4ef6-b291-378fab119b3e'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.Y1_Yo_iSQfOUchPNMmonGA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.a4aceb66-c653-4ef6-b291-378fab119b3e/folders/urn:adsk.wipprod:fs.folder:co.Y1_Yo_iSQfOUchPNMmonGA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.a4aceb66-c653-4ef6-b291-378fab119b3e/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'a4aceb66-c653-4ef6-b291-378fab119b3e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/a4aceb66-c653-4ef6-b291-378fab119b3e/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'a4aceb66-c653-4ef6-b291-378fab119b3e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/a4aceb66-c653-4ef6-b291-378fab119b3e/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'a4aceb66-c653-4ef6-b291-378fab119b3e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/a4aceb66-c653-4ef6-b291-378fab119b3e/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'a4aceb66-c653-4ef6-b291-378fab119b3e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/a4aceb66-c653-4ef6-b291-378fab119b3e/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'a4aceb66-c653-4ef6-b291-378fab119b3e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/a4aceb66-c653-4ef6-b291-378fab119b3e/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'a4aceb66-c653-4ef6-b291-378fab119b3e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/a4aceb66-c653-4ef6-b291-378fab119b3e/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'a4aceb66-c653-4ef6-b291-378fab119b3e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/a4aceb66-c653-4ef6-b291-378fab119b3e/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.1f7aa830-c6ef-48be-8a2d-bd554779e74b',\n",
+ " 'attributes': {'name': 'SG_Earth_Demo',\n",
+ " 'scopes': ['b360project.1f7aa830-c6ef-48be-8a2d-bd554779e74b',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.1f7aa830-c6ef-48be-8a2d-bd554779e74b'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/1f7aa830-c6ef-48be-8a2d-bd554779e74b'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.5xEujUwySGSwFxxgUoWWKA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.1f7aa830-c6ef-48be-8a2d-bd554779e74b/folders/urn:adsk.wipprod:fs.folder:co.5xEujUwySGSwFxxgUoWWKA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.1f7aa830-c6ef-48be-8a2d-bd554779e74b/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '1f7aa830-c6ef-48be-8a2d-bd554779e74b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/1f7aa830-c6ef-48be-8a2d-bd554779e74b/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '1f7aa830-c6ef-48be-8a2d-bd554779e74b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/1f7aa830-c6ef-48be-8a2d-bd554779e74b/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '1f7aa830-c6ef-48be-8a2d-bd554779e74b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/1f7aa830-c6ef-48be-8a2d-bd554779e74b/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '1f7aa830-c6ef-48be-8a2d-bd554779e74b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/1f7aa830-c6ef-48be-8a2d-bd554779e74b/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '1f7aa830-c6ef-48be-8a2d-bd554779e74b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/1f7aa830-c6ef-48be-8a2d-bd554779e74b/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '1f7aa830-c6ef-48be-8a2d-bd554779e74b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/1f7aa830-c6ef-48be-8a2d-bd554779e74b/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '1f7aa830-c6ef-48be-8a2d-bd554779e74b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/1f7aa830-c6ef-48be-8a2d-bd554779e74b/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.b419675a-f787-465a-b701-ef89f72b1a59',\n",
+ " 'attributes': {'name': 'COE-TRAINING-ACC',\n",
+ " 'scopes': ['b360project.b419675a-f787-465a-b701-ef89f72b1a59',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.b419675a-f787-465a-b701-ef89f72b1a59'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/b419675a-f787-465a-b701-ef89f72b1a59'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.13oQm7HhR6yISNjvlJoBYA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.b419675a-f787-465a-b701-ef89f72b1a59/folders/urn:adsk.wipprod:fs.folder:co.13oQm7HhR6yISNjvlJoBYA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.b419675a-f787-465a-b701-ef89f72b1a59/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'b419675a-f787-465a-b701-ef89f72b1a59'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/b419675a-f787-465a-b701-ef89f72b1a59/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'b419675a-f787-465a-b701-ef89f72b1a59'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/b419675a-f787-465a-b701-ef89f72b1a59/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'b419675a-f787-465a-b701-ef89f72b1a59'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/b419675a-f787-465a-b701-ef89f72b1a59/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'b419675a-f787-465a-b701-ef89f72b1a59'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/b419675a-f787-465a-b701-ef89f72b1a59/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'b419675a-f787-465a-b701-ef89f72b1a59'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/b419675a-f787-465a-b701-ef89f72b1a59/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'b419675a-f787-465a-b701-ef89f72b1a59'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/b419675a-f787-465a-b701-ef89f72b1a59/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'b419675a-f787-465a-b701-ef89f72b1a59'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/b419675a-f787-465a-b701-ef89f72b1a59/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.45801b92-d003-4309-825d-605e4cd7ecb3',\n",
+ " 'attributes': {'name': 'NEI-ISRAEL-PLAYGROUND',\n",
+ " 'scopes': ['b360project.45801b92-d003-4309-825d-605e4cd7ecb3',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.45801b92-d003-4309-825d-605e4cd7ecb3'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/45801b92-d003-4309-825d-605e4cd7ecb3'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.2d8y4DmZQs62bNGQ1WQ3Nw'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.45801b92-d003-4309-825d-605e4cd7ecb3/folders/urn:adsk.wipprod:fs.folder:co.2d8y4DmZQs62bNGQ1WQ3Nw'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.45801b92-d003-4309-825d-605e4cd7ecb3/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '45801b92-d003-4309-825d-605e4cd7ecb3'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/45801b92-d003-4309-825d-605e4cd7ecb3/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '45801b92-d003-4309-825d-605e4cd7ecb3'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/45801b92-d003-4309-825d-605e4cd7ecb3/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '45801b92-d003-4309-825d-605e4cd7ecb3'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/45801b92-d003-4309-825d-605e4cd7ecb3/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '45801b92-d003-4309-825d-605e4cd7ecb3'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/45801b92-d003-4309-825d-605e4cd7ecb3/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '45801b92-d003-4309-825d-605e4cd7ecb3'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/45801b92-d003-4309-825d-605e4cd7ecb3/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '45801b92-d003-4309-825d-605e4cd7ecb3'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/45801b92-d003-4309-825d-605e4cd7ecb3/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '45801b92-d003-4309-825d-605e4cd7ecb3'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/45801b92-d003-4309-825d-605e4cd7ecb3/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.c55523e9-c799-48af-9cd9-0fbed8f0ac45',\n",
+ " 'attributes': {'name': 'Global Wafers',\n",
+ " 'scopes': ['b360project.c55523e9-c799-48af-9cd9-0fbed8f0ac45',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.c55523e9-c799-48af-9cd9-0fbed8f0ac45'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/c55523e9-c799-48af-9cd9-0fbed8f0ac45'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.6i0EgSgFRAmlHD1VDvWmKA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.c55523e9-c799-48af-9cd9-0fbed8f0ac45/folders/urn:adsk.wipprod:fs.folder:co.6i0EgSgFRAmlHD1VDvWmKA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.c55523e9-c799-48af-9cd9-0fbed8f0ac45/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'c55523e9-c799-48af-9cd9-0fbed8f0ac45'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/c55523e9-c799-48af-9cd9-0fbed8f0ac45/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'c55523e9-c799-48af-9cd9-0fbed8f0ac45'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/c55523e9-c799-48af-9cd9-0fbed8f0ac45/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'c55523e9-c799-48af-9cd9-0fbed8f0ac45'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/c55523e9-c799-48af-9cd9-0fbed8f0ac45/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'c55523e9-c799-48af-9cd9-0fbed8f0ac45'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/c55523e9-c799-48af-9cd9-0fbed8f0ac45/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'c55523e9-c799-48af-9cd9-0fbed8f0ac45'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/c55523e9-c799-48af-9cd9-0fbed8f0ac45/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'c55523e9-c799-48af-9cd9-0fbed8f0ac45'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/c55523e9-c799-48af-9cd9-0fbed8f0ac45/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'c55523e9-c799-48af-9cd9-0fbed8f0ac45'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/c55523e9-c799-48af-9cd9-0fbed8f0ac45/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.8a311c43-885a-4657-bea5-c0bf675007b2',\n",
+ " 'attributes': {'name': 'USA-X01-Documentation Sandbox',\n",
+ " 'scopes': ['b360project.8a311c43-885a-4657-bea5-c0bf675007b2',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.8a311c43-885a-4657-bea5-c0bf675007b2'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/8a311c43-885a-4657-bea5-c0bf675007b2'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.Op_f0oMDTyCx28OeZNvoSA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.8a311c43-885a-4657-bea5-c0bf675007b2/folders/urn:adsk.wipprod:fs.folder:co.Op_f0oMDTyCx28OeZNvoSA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.8a311c43-885a-4657-bea5-c0bf675007b2/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '8a311c43-885a-4657-bea5-c0bf675007b2'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/8a311c43-885a-4657-bea5-c0bf675007b2/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '8a311c43-885a-4657-bea5-c0bf675007b2'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/8a311c43-885a-4657-bea5-c0bf675007b2/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '8a311c43-885a-4657-bea5-c0bf675007b2'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/8a311c43-885a-4657-bea5-c0bf675007b2/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '8a311c43-885a-4657-bea5-c0bf675007b2'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/8a311c43-885a-4657-bea5-c0bf675007b2/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '8a311c43-885a-4657-bea5-c0bf675007b2'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/8a311c43-885a-4657-bea5-c0bf675007b2/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '8a311c43-885a-4657-bea5-c0bf675007b2'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/8a311c43-885a-4657-bea5-c0bf675007b2/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '8a311c43-885a-4657-bea5-c0bf675007b2'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/8a311c43-885a-4657-bea5-c0bf675007b2/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.6ca2a5f2-7d52-423b-8f6c-07212d7989b4',\n",
+ " 'attributes': {'name': 'COE-BIM 360 SANDBOX',\n",
+ " 'scopes': ['b360project.6ca2a5f2-7d52-423b-8f6c-07212d7989b4',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.6ca2a5f2-7d52-423b-8f6c-07212d7989b4'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/6ca2a5f2-7d52-423b-8f6c-07212d7989b4'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.3tYGM9izTcqhdWs1xF_tHA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.6ca2a5f2-7d52-423b-8f6c-07212d7989b4/folders/urn:adsk.wipprod:fs.folder:co.3tYGM9izTcqhdWs1xF_tHA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.6ca2a5f2-7d52-423b-8f6c-07212d7989b4/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '6ca2a5f2-7d52-423b-8f6c-07212d7989b4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/6ca2a5f2-7d52-423b-8f6c-07212d7989b4/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '6ca2a5f2-7d52-423b-8f6c-07212d7989b4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/6ca2a5f2-7d52-423b-8f6c-07212d7989b4/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '6ca2a5f2-7d52-423b-8f6c-07212d7989b4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/6ca2a5f2-7d52-423b-8f6c-07212d7989b4/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '6ca2a5f2-7d52-423b-8f6c-07212d7989b4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/6ca2a5f2-7d52-423b-8f6c-07212d7989b4/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '6ca2a5f2-7d52-423b-8f6c-07212d7989b4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/6ca2a5f2-7d52-423b-8f6c-07212d7989b4/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '6ca2a5f2-7d52-423b-8f6c-07212d7989b4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/6ca2a5f2-7d52-423b-8f6c-07212d7989b4/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '6ca2a5f2-7d52-423b-8f6c-07212d7989b4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/6ca2a5f2-7d52-423b-8f6c-07212d7989b4/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.2e498c19-908c-4031-806c-d2f88866420d',\n",
+ " 'attributes': {'name': 'COE_BIM-QM-Development',\n",
+ " 'scopes': ['b360project.2e498c19-908c-4031-806c-d2f88866420d',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.2e498c19-908c-4031-806c-d2f88866420d'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/2e498c19-908c-4031-806c-d2f88866420d'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.jRWgpwWeQO6TkGK-JuQmOw'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.2e498c19-908c-4031-806c-d2f88866420d/folders/urn:adsk.wipprod:fs.folder:co.jRWgpwWeQO6TkGK-JuQmOw'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.2e498c19-908c-4031-806c-d2f88866420d/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '2e498c19-908c-4031-806c-d2f88866420d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/2e498c19-908c-4031-806c-d2f88866420d/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '2e498c19-908c-4031-806c-d2f88866420d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/2e498c19-908c-4031-806c-d2f88866420d/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '2e498c19-908c-4031-806c-d2f88866420d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/2e498c19-908c-4031-806c-d2f88866420d/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '2e498c19-908c-4031-806c-d2f88866420d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/2e498c19-908c-4031-806c-d2f88866420d/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '2e498c19-908c-4031-806c-d2f88866420d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/2e498c19-908c-4031-806c-d2f88866420d/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '2e498c19-908c-4031-806c-d2f88866420d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/2e498c19-908c-4031-806c-d2f88866420d/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '2e498c19-908c-4031-806c-d2f88866420d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/2e498c19-908c-4031-806c-d2f88866420d/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.efd8898f-7c69-4d22-8692-bec475a59055',\n",
+ " 'attributes': {'name': 'CORP-Revit/Plant 3D-P&ID Modeler',\n",
+ " 'scopes': ['b360project.efd8898f-7c69-4d22-8692-bec475a59055',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.efd8898f-7c69-4d22-8692-bec475a59055'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/efd8898f-7c69-4d22-8692-bec475a59055'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.F4Txfw3xTKaA2Bha4LiDBg'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.efd8898f-7c69-4d22-8692-bec475a59055/folders/urn:adsk.wipprod:fs.folder:co.F4Txfw3xTKaA2Bha4LiDBg'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.efd8898f-7c69-4d22-8692-bec475a59055/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'efd8898f-7c69-4d22-8692-bec475a59055'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/efd8898f-7c69-4d22-8692-bec475a59055/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'efd8898f-7c69-4d22-8692-bec475a59055'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/efd8898f-7c69-4d22-8692-bec475a59055/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'efd8898f-7c69-4d22-8692-bec475a59055'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/efd8898f-7c69-4d22-8692-bec475a59055/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'efd8898f-7c69-4d22-8692-bec475a59055'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/efd8898f-7c69-4d22-8692-bec475a59055/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'efd8898f-7c69-4d22-8692-bec475a59055'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/efd8898f-7c69-4d22-8692-bec475a59055/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'efd8898f-7c69-4d22-8692-bec475a59055'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/efd8898f-7c69-4d22-8692-bec475a59055/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'efd8898f-7c69-4d22-8692-bec475a59055'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/efd8898f-7c69-4d22-8692-bec475a59055/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.d680e4db-d1f2-4863-a11c-9eb3c2948dea',\n",
+ " 'attributes': {'name': 'SEA-PELICAN-TI Plant 3D migration',\n",
+ " 'scopes': ['b360project.d680e4db-d1f2-4863-a11c-9eb3c2948dea',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.d680e4db-d1f2-4863-a11c-9eb3c2948dea'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/d680e4db-d1f2-4863-a11c-9eb3c2948dea'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.dOZi-l_1R4qNtAOkXGMvlw'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.d680e4db-d1f2-4863-a11c-9eb3c2948dea/folders/urn:adsk.wipprod:fs.folder:co.dOZi-l_1R4qNtAOkXGMvlw'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.d680e4db-d1f2-4863-a11c-9eb3c2948dea/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'd680e4db-d1f2-4863-a11c-9eb3c2948dea'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/d680e4db-d1f2-4863-a11c-9eb3c2948dea/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'd680e4db-d1f2-4863-a11c-9eb3c2948dea'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/d680e4db-d1f2-4863-a11c-9eb3c2948dea/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'd680e4db-d1f2-4863-a11c-9eb3c2948dea'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/d680e4db-d1f2-4863-a11c-9eb3c2948dea/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'd680e4db-d1f2-4863-a11c-9eb3c2948dea'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/d680e4db-d1f2-4863-a11c-9eb3c2948dea/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'd680e4db-d1f2-4863-a11c-9eb3c2948dea'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/d680e4db-d1f2-4863-a11c-9eb3c2948dea/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'd680e4db-d1f2-4863-a11c-9eb3c2948dea'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/d680e4db-d1f2-4863-a11c-9eb3c2948dea/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'd680e4db-d1f2-4863-a11c-9eb3c2948dea'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/d680e4db-d1f2-4863-a11c-9eb3c2948dea/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.1021d9ec-646e-44dd-8f9a-645a7e42d2ee',\n",
+ " 'attributes': {'name': 'USA-Z00-TakeOffTesting',\n",
+ " 'scopes': ['b360project.1021d9ec-646e-44dd-8f9a-645a7e42d2ee',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.1021d9ec-646e-44dd-8f9a-645a7e42d2ee'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/1021d9ec-646e-44dd-8f9a-645a7e42d2ee'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.-DBNu2FDRwaaZNuEMnTnog'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.1021d9ec-646e-44dd-8f9a-645a7e42d2ee/folders/urn:adsk.wipprod:fs.folder:co.-DBNu2FDRwaaZNuEMnTnog'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.1021d9ec-646e-44dd-8f9a-645a7e42d2ee/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '1021d9ec-646e-44dd-8f9a-645a7e42d2ee'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/1021d9ec-646e-44dd-8f9a-645a7e42d2ee/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '1021d9ec-646e-44dd-8f9a-645a7e42d2ee'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/1021d9ec-646e-44dd-8f9a-645a7e42d2ee/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '1021d9ec-646e-44dd-8f9a-645a7e42d2ee'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/1021d9ec-646e-44dd-8f9a-645a7e42d2ee/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '1021d9ec-646e-44dd-8f9a-645a7e42d2ee'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/1021d9ec-646e-44dd-8f9a-645a7e42d2ee/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '1021d9ec-646e-44dd-8f9a-645a7e42d2ee'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/1021d9ec-646e-44dd-8f9a-645a7e42d2ee/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '1021d9ec-646e-44dd-8f9a-645a7e42d2ee'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/1021d9ec-646e-44dd-8f9a-645a7e42d2ee/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '1021d9ec-646e-44dd-8f9a-645a7e42d2ee'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/1021d9ec-646e-44dd-8f9a-645a7e42d2ee/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.5f582dac-d1d2-47c4-a077-3404cdac3a7b',\n",
+ " 'attributes': {'name': 'DES-Training Project',\n",
+ " 'scopes': ['b360project.5f582dac-d1d2-47c4-a077-3404cdac3a7b',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.5f582dac-d1d2-47c4-a077-3404cdac3a7b'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/5f582dac-d1d2-47c4-a077-3404cdac3a7b'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.lbdM7gHIQEm_z3lpzC0EfA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.5f582dac-d1d2-47c4-a077-3404cdac3a7b/folders/urn:adsk.wipprod:fs.folder:co.lbdM7gHIQEm_z3lpzC0EfA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.5f582dac-d1d2-47c4-a077-3404cdac3a7b/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '5f582dac-d1d2-47c4-a077-3404cdac3a7b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/5f582dac-d1d2-47c4-a077-3404cdac3a7b/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '5f582dac-d1d2-47c4-a077-3404cdac3a7b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/5f582dac-d1d2-47c4-a077-3404cdac3a7b/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '5f582dac-d1d2-47c4-a077-3404cdac3a7b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/5f582dac-d1d2-47c4-a077-3404cdac3a7b/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '5f582dac-d1d2-47c4-a077-3404cdac3a7b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/5f582dac-d1d2-47c4-a077-3404cdac3a7b/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '5f582dac-d1d2-47c4-a077-3404cdac3a7b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/5f582dac-d1d2-47c4-a077-3404cdac3a7b/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '5f582dac-d1d2-47c4-a077-3404cdac3a7b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/5f582dac-d1d2-47c4-a077-3404cdac3a7b/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '5f582dac-d1d2-47c4-a077-3404cdac3a7b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/5f582dac-d1d2-47c4-a077-3404cdac3a7b/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.785cc04c-67e9-4f77-9e58-d380a8ba14a2',\n",
+ " 'attributes': {'name': 'CORP-BIM3602ACC-TEST',\n",
+ " 'scopes': ['b360project.785cc04c-67e9-4f77-9e58-d380a8ba14a2',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.785cc04c-67e9-4f77-9e58-d380a8ba14a2'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/785cc04c-67e9-4f77-9e58-d380a8ba14a2'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.RNV4CxfWTB-C9PFI9Tv1wA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.785cc04c-67e9-4f77-9e58-d380a8ba14a2/folders/urn:adsk.wipprod:fs.folder:co.RNV4CxfWTB-C9PFI9Tv1wA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.785cc04c-67e9-4f77-9e58-d380a8ba14a2/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '785cc04c-67e9-4f77-9e58-d380a8ba14a2'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/785cc04c-67e9-4f77-9e58-d380a8ba14a2/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '785cc04c-67e9-4f77-9e58-d380a8ba14a2'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/785cc04c-67e9-4f77-9e58-d380a8ba14a2/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '785cc04c-67e9-4f77-9e58-d380a8ba14a2'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/785cc04c-67e9-4f77-9e58-d380a8ba14a2/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '785cc04c-67e9-4f77-9e58-d380a8ba14a2'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/785cc04c-67e9-4f77-9e58-d380a8ba14a2/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '785cc04c-67e9-4f77-9e58-d380a8ba14a2'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/785cc04c-67e9-4f77-9e58-d380a8ba14a2/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '785cc04c-67e9-4f77-9e58-d380a8ba14a2'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/785cc04c-67e9-4f77-9e58-d380a8ba14a2/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '785cc04c-67e9-4f77-9e58-d380a8ba14a2'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/785cc04c-67e9-4f77-9e58-d380a8ba14a2/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.e2d9c6a7-8562-42ce-baa8-3e3e62cd9065',\n",
+ " 'attributes': {'name': 'SG_ACC_ModelExtract',\n",
+ " 'scopes': ['b360project.e2d9c6a7-8562-42ce-baa8-3e3e62cd9065',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.e2d9c6a7-8562-42ce-baa8-3e3e62cd9065'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/e2d9c6a7-8562-42ce-baa8-3e3e62cd9065'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.0WhLar85TWyFs7mLnuc_xg'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.e2d9c6a7-8562-42ce-baa8-3e3e62cd9065/folders/urn:adsk.wipprod:fs.folder:co.0WhLar85TWyFs7mLnuc_xg'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.e2d9c6a7-8562-42ce-baa8-3e3e62cd9065/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'e2d9c6a7-8562-42ce-baa8-3e3e62cd9065'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/e2d9c6a7-8562-42ce-baa8-3e3e62cd9065/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'e2d9c6a7-8562-42ce-baa8-3e3e62cd9065'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/e2d9c6a7-8562-42ce-baa8-3e3e62cd9065/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'e2d9c6a7-8562-42ce-baa8-3e3e62cd9065'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/e2d9c6a7-8562-42ce-baa8-3e3e62cd9065/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'e2d9c6a7-8562-42ce-baa8-3e3e62cd9065'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/e2d9c6a7-8562-42ce-baa8-3e3e62cd9065/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'e2d9c6a7-8562-42ce-baa8-3e3e62cd9065'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/e2d9c6a7-8562-42ce-baa8-3e3e62cd9065/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'e2d9c6a7-8562-42ce-baa8-3e3e62cd9065'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/e2d9c6a7-8562-42ce-baa8-3e3e62cd9065/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'e2d9c6a7-8562-42ce-baa8-3e3e62cd9065'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/e2d9c6a7-8562-42ce-baa8-3e3e62cd9065/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.04a7de62-f69e-4c64-bf91-3009beefe65f',\n",
+ " 'attributes': {'name': 'USA-X01-TFS-Sandbox-1',\n",
+ " 'scopes': ['b360project.04a7de62-f69e-4c64-bf91-3009beefe65f',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.04a7de62-f69e-4c64-bf91-3009beefe65f'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/04a7de62-f69e-4c64-bf91-3009beefe65f'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.fBoEbRJuQOKVNv2eL-6hkg'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.04a7de62-f69e-4c64-bf91-3009beefe65f/folders/urn:adsk.wipprod:fs.folder:co.fBoEbRJuQOKVNv2eL-6hkg'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.04a7de62-f69e-4c64-bf91-3009beefe65f/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'a6633258-e599-45ef-8b73-32f524528c70'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/a6633258-e599-45ef-8b73-32f524528c70/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '894bed0f-f02e-4b9c-9922-c540e2608fd4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/894bed0f-f02e-4b9c-9922-c540e2608fd4/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'a6633258-e599-45ef-8b73-32f524528c70'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/a6633258-e599-45ef-8b73-32f524528c70/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'a6633258-e599-45ef-8b73-32f524528c70'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/a6633258-e599-45ef-8b73-32f524528c70/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'a6633258-e599-45ef-8b73-32f524528c70'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/a6633258-e599-45ef-8b73-32f524528c70/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '04a7de62-f69e-4c64-bf91-3009beefe65f'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/04a7de62-f69e-4c64-bf91-3009beefe65f/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '1d147ff8-327a-4ac8-a592-5de3ea547e54'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/1d147ff8-327a-4ac8-a592-5de3ea547e54/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.6e5b3b0d-c985-4cad-a588-88d70ac83722',\n",
+ " 'attributes': {'name': 'SEA-1106410-Fab 10B Training',\n",
+ " 'scopes': ['b360project.6e5b3b0d-c985-4cad-a588-88d70ac83722',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.6e5b3b0d-c985-4cad-a588-88d70ac83722'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/6e5b3b0d-c985-4cad-a588-88d70ac83722'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.uwB-3CA3TtOV64ySjFxgzA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.6e5b3b0d-c985-4cad-a588-88d70ac83722/folders/urn:adsk.wipprod:fs.folder:co.uwB-3CA3TtOV64ySjFxgzA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.6e5b3b0d-c985-4cad-a588-88d70ac83722/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '6e5b3b0d-c985-4cad-a588-88d70ac83722'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/6e5b3b0d-c985-4cad-a588-88d70ac83722/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '6e5b3b0d-c985-4cad-a588-88d70ac83722'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/6e5b3b0d-c985-4cad-a588-88d70ac83722/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '6e5b3b0d-c985-4cad-a588-88d70ac83722'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/6e5b3b0d-c985-4cad-a588-88d70ac83722/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '6e5b3b0d-c985-4cad-a588-88d70ac83722'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/6e5b3b0d-c985-4cad-a588-88d70ac83722/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '6e5b3b0d-c985-4cad-a588-88d70ac83722'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/6e5b3b0d-c985-4cad-a588-88d70ac83722/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '6e5b3b0d-c985-4cad-a588-88d70ac83722'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/6e5b3b0d-c985-4cad-a588-88d70ac83722/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '6e5b3b0d-c985-4cad-a588-88d70ac83722'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/6e5b3b0d-c985-4cad-a588-88d70ac83722/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.01f8e1d3-4b5e-4d09-a39e-2bdc517db442',\n",
+ " 'attributes': {'name': 'Test Copy Project5',\n",
+ " 'scopes': ['b360project.01f8e1d3-4b5e-4d09-a39e-2bdc517db442',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.01f8e1d3-4b5e-4d09-a39e-2bdc517db442'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/01f8e1d3-4b5e-4d09-a39e-2bdc517db442'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.fP24YvXaQ7-GWdrL3SsAew'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.01f8e1d3-4b5e-4d09-a39e-2bdc517db442/folders/urn:adsk.wipprod:fs.folder:co.fP24YvXaQ7-GWdrL3SsAew'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.01f8e1d3-4b5e-4d09-a39e-2bdc517db442/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '01f8e1d3-4b5e-4d09-a39e-2bdc517db442'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/01f8e1d3-4b5e-4d09-a39e-2bdc517db442/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '01f8e1d3-4b5e-4d09-a39e-2bdc517db442'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/01f8e1d3-4b5e-4d09-a39e-2bdc517db442/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '01f8e1d3-4b5e-4d09-a39e-2bdc517db442'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/01f8e1d3-4b5e-4d09-a39e-2bdc517db442/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '01f8e1d3-4b5e-4d09-a39e-2bdc517db442'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/01f8e1d3-4b5e-4d09-a39e-2bdc517db442/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '01f8e1d3-4b5e-4d09-a39e-2bdc517db442'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/01f8e1d3-4b5e-4d09-a39e-2bdc517db442/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '01f8e1d3-4b5e-4d09-a39e-2bdc517db442'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/01f8e1d3-4b5e-4d09-a39e-2bdc517db442/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '01f8e1d3-4b5e-4d09-a39e-2bdc517db442'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/01f8e1d3-4b5e-4d09-a39e-2bdc517db442/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.68a8270d-85e0-48c8-9814-09f0bef84008',\n",
+ " 'attributes': {'name': 'COE_237116-2_ Training Project_Wacker B0017 Extension Halle_Stage 2',\n",
+ " 'scopes': ['b360project.68a8270d-85e0-48c8-9814-09f0bef84008',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.68a8270d-85e0-48c8-9814-09f0bef84008'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/68a8270d-85e0-48c8-9814-09f0bef84008'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.p0lApeznSxy3U0m0xs8kyQ'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.68a8270d-85e0-48c8-9814-09f0bef84008/folders/urn:adsk.wipprod:fs.folder:co.p0lApeznSxy3U0m0xs8kyQ'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.68a8270d-85e0-48c8-9814-09f0bef84008/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '68a8270d-85e0-48c8-9814-09f0bef84008'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/68a8270d-85e0-48c8-9814-09f0bef84008/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '68a8270d-85e0-48c8-9814-09f0bef84008'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/68a8270d-85e0-48c8-9814-09f0bef84008/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '68a8270d-85e0-48c8-9814-09f0bef84008'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/68a8270d-85e0-48c8-9814-09f0bef84008/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '68a8270d-85e0-48c8-9814-09f0bef84008'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/68a8270d-85e0-48c8-9814-09f0bef84008/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '68a8270d-85e0-48c8-9814-09f0bef84008'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/68a8270d-85e0-48c8-9814-09f0bef84008/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '68a8270d-85e0-48c8-9814-09f0bef84008'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/68a8270d-85e0-48c8-9814-09f0bef84008/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '68a8270d-85e0-48c8-9814-09f0bef84008'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/68a8270d-85e0-48c8-9814-09f0bef84008/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.ec0f8261-aeca-4ab9-a1a5-5845f952b17d',\n",
+ " 'attributes': {'name': 'SG_ACC_API_Demo',\n",
+ " 'scopes': ['b360project.ec0f8261-aeca-4ab9-a1a5-5845f952b17d',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.ec0f8261-aeca-4ab9-a1a5-5845f952b17d'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/ec0f8261-aeca-4ab9-a1a5-5845f952b17d'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.4cMyaVf4StuMJP_g--gSRQ'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.ec0f8261-aeca-4ab9-a1a5-5845f952b17d/folders/urn:adsk.wipprod:fs.folder:co.4cMyaVf4StuMJP_g--gSRQ'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.ec0f8261-aeca-4ab9-a1a5-5845f952b17d/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'ec0f8261-aeca-4ab9-a1a5-5845f952b17d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/ec0f8261-aeca-4ab9-a1a5-5845f952b17d/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'ec0f8261-aeca-4ab9-a1a5-5845f952b17d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/ec0f8261-aeca-4ab9-a1a5-5845f952b17d/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'ec0f8261-aeca-4ab9-a1a5-5845f952b17d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/ec0f8261-aeca-4ab9-a1a5-5845f952b17d/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'ec0f8261-aeca-4ab9-a1a5-5845f952b17d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/ec0f8261-aeca-4ab9-a1a5-5845f952b17d/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'ec0f8261-aeca-4ab9-a1a5-5845f952b17d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/ec0f8261-aeca-4ab9-a1a5-5845f952b17d/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'ec0f8261-aeca-4ab9-a1a5-5845f952b17d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/ec0f8261-aeca-4ab9-a1a5-5845f952b17d/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'ec0f8261-aeca-4ab9-a1a5-5845f952b17d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/ec0f8261-aeca-4ab9-a1a5-5845f952b17d/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.314046a7-124e-45e1-bebb-a16fac5f3cd4',\n",
+ " 'attributes': {'name': 'COE-2307330-Roche CORAPP_Training',\n",
+ " 'scopes': ['b360project.314046a7-124e-45e1-bebb-a16fac5f3cd4',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.314046a7-124e-45e1-bebb-a16fac5f3cd4'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/314046a7-124e-45e1-bebb-a16fac5f3cd4'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.p8mPt3TQRIet1agnEjTqLw'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.314046a7-124e-45e1-bebb-a16fac5f3cd4/folders/urn:adsk.wipprod:fs.folder:co.p8mPt3TQRIet1agnEjTqLw'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.314046a7-124e-45e1-bebb-a16fac5f3cd4/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '314046a7-124e-45e1-bebb-a16fac5f3cd4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/314046a7-124e-45e1-bebb-a16fac5f3cd4/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '314046a7-124e-45e1-bebb-a16fac5f3cd4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/314046a7-124e-45e1-bebb-a16fac5f3cd4/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '314046a7-124e-45e1-bebb-a16fac5f3cd4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/314046a7-124e-45e1-bebb-a16fac5f3cd4/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '314046a7-124e-45e1-bebb-a16fac5f3cd4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/314046a7-124e-45e1-bebb-a16fac5f3cd4/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '314046a7-124e-45e1-bebb-a16fac5f3cd4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/314046a7-124e-45e1-bebb-a16fac5f3cd4/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '314046a7-124e-45e1-bebb-a16fac5f3cd4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/314046a7-124e-45e1-bebb-a16fac5f3cd4/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '314046a7-124e-45e1-bebb-a16fac5f3cd4'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/314046a7-124e-45e1-bebb-a16fac5f3cd4/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.fd732111-54d2-4f3c-84a8-27a7db278c65',\n",
+ " 'attributes': {'name': 'CORP-IS-ENG_PlatformDemo',\n",
+ " 'scopes': ['b360project.fd732111-54d2-4f3c-84a8-27a7db278c65',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.fd732111-54d2-4f3c-84a8-27a7db278c65'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/fd732111-54d2-4f3c-84a8-27a7db278c65'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.7cU0SGseTai66lnyvJe2vw'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.fd732111-54d2-4f3c-84a8-27a7db278c65/folders/urn:adsk.wipprod:fs.folder:co.7cU0SGseTai66lnyvJe2vw'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.fd732111-54d2-4f3c-84a8-27a7db278c65/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'fd732111-54d2-4f3c-84a8-27a7db278c65'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/fd732111-54d2-4f3c-84a8-27a7db278c65/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'fd732111-54d2-4f3c-84a8-27a7db278c65'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/fd732111-54d2-4f3c-84a8-27a7db278c65/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'fd732111-54d2-4f3c-84a8-27a7db278c65'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/fd732111-54d2-4f3c-84a8-27a7db278c65/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'fd732111-54d2-4f3c-84a8-27a7db278c65'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/fd732111-54d2-4f3c-84a8-27a7db278c65/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'fd732111-54d2-4f3c-84a8-27a7db278c65'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/fd732111-54d2-4f3c-84a8-27a7db278c65/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'fd732111-54d2-4f3c-84a8-27a7db278c65'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/fd732111-54d2-4f3c-84a8-27a7db278c65/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'fd732111-54d2-4f3c-84a8-27a7db278c65'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/fd732111-54d2-4f3c-84a8-27a7db278c65/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.27e07db0-2447-4de8-9906-dd45a04d8045',\n",
+ " 'attributes': {'name': 'NEA-ID1 Test Project',\n",
+ " 'scopes': ['b360project.27e07db0-2447-4de8-9906-dd45a04d8045',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.27e07db0-2447-4de8-9906-dd45a04d8045'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/27e07db0-2447-4de8-9906-dd45a04d8045'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.M5FXZbyYRumQpYKqXWYhxQ'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.27e07db0-2447-4de8-9906-dd45a04d8045/folders/urn:adsk.wipprod:fs.folder:co.M5FXZbyYRumQpYKqXWYhxQ'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.27e07db0-2447-4de8-9906-dd45a04d8045/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '27e07db0-2447-4de8-9906-dd45a04d8045'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/27e07db0-2447-4de8-9906-dd45a04d8045/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '27e07db0-2447-4de8-9906-dd45a04d8045'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/27e07db0-2447-4de8-9906-dd45a04d8045/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '27e07db0-2447-4de8-9906-dd45a04d8045'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/27e07db0-2447-4de8-9906-dd45a04d8045/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '27e07db0-2447-4de8-9906-dd45a04d8045'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/27e07db0-2447-4de8-9906-dd45a04d8045/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '27e07db0-2447-4de8-9906-dd45a04d8045'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/27e07db0-2447-4de8-9906-dd45a04d8045/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '27e07db0-2447-4de8-9906-dd45a04d8045'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/27e07db0-2447-4de8-9906-dd45a04d8045/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '27e07db0-2447-4de8-9906-dd45a04d8045'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/27e07db0-2447-4de8-9906-dd45a04d8045/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.8c8d742b-a3fc-4c7f-8b86-79917ccc02bd',\n",
+ " 'attributes': {'name': 'Component Library Project 9a2ca935-38e6-49c2-bdad-a432b40767b6',\n",
+ " 'scopes': ['b360project.8c8d742b-a3fc-4c7f-8b86-79917ccc02bd',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.8c8d742b-a3fc-4c7f-8b86-79917ccc02bd'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/8c8d742b-a3fc-4c7f-8b86-79917ccc02bd'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co._MSW6z0jRD-Bkv7sRjkTGA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.8c8d742b-a3fc-4c7f-8b86-79917ccc02bd/folders/urn:adsk.wipprod:fs.folder:co._MSW6z0jRD-Bkv7sRjkTGA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.8c8d742b-a3fc-4c7f-8b86-79917ccc02bd/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '8c8d742b-a3fc-4c7f-8b86-79917ccc02bd'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/8c8d742b-a3fc-4c7f-8b86-79917ccc02bd/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '8c8d742b-a3fc-4c7f-8b86-79917ccc02bd'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/8c8d742b-a3fc-4c7f-8b86-79917ccc02bd/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '8c8d742b-a3fc-4c7f-8b86-79917ccc02bd'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/8c8d742b-a3fc-4c7f-8b86-79917ccc02bd/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '8c8d742b-a3fc-4c7f-8b86-79917ccc02bd'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/8c8d742b-a3fc-4c7f-8b86-79917ccc02bd/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '8c8d742b-a3fc-4c7f-8b86-79917ccc02bd'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/8c8d742b-a3fc-4c7f-8b86-79917ccc02bd/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '8c8d742b-a3fc-4c7f-8b86-79917ccc02bd'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/8c8d742b-a3fc-4c7f-8b86-79917ccc02bd/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '8c8d742b-a3fc-4c7f-8b86-79917ccc02bd'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/8c8d742b-a3fc-4c7f-8b86-79917ccc02bd/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.fddd62c9-8ab3-4cfa-ac9a-c0b3621c863d',\n",
+ " 'attributes': {'name': 'COE-ACC-PLAYGROUND',\n",
+ " 'scopes': ['b360project.fddd62c9-8ab3-4cfa-ac9a-c0b3621c863d',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.fddd62c9-8ab3-4cfa-ac9a-c0b3621c863d'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/fddd62c9-8ab3-4cfa-ac9a-c0b3621c863d'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.SUNLrFxUTUS6qwD25ir5Tg'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.fddd62c9-8ab3-4cfa-ac9a-c0b3621c863d/folders/urn:adsk.wipprod:fs.folder:co.SUNLrFxUTUS6qwD25ir5Tg'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.fddd62c9-8ab3-4cfa-ac9a-c0b3621c863d/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'fddd62c9-8ab3-4cfa-ac9a-c0b3621c863d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/fddd62c9-8ab3-4cfa-ac9a-c0b3621c863d/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'fddd62c9-8ab3-4cfa-ac9a-c0b3621c863d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/fddd62c9-8ab3-4cfa-ac9a-c0b3621c863d/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'fddd62c9-8ab3-4cfa-ac9a-c0b3621c863d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/fddd62c9-8ab3-4cfa-ac9a-c0b3621c863d/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'fddd62c9-8ab3-4cfa-ac9a-c0b3621c863d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/fddd62c9-8ab3-4cfa-ac9a-c0b3621c863d/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'fddd62c9-8ab3-4cfa-ac9a-c0b3621c863d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/fddd62c9-8ab3-4cfa-ac9a-c0b3621c863d/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'fddd62c9-8ab3-4cfa-ac9a-c0b3621c863d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/fddd62c9-8ab3-4cfa-ac9a-c0b3621c863d/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'fddd62c9-8ab3-4cfa-ac9a-c0b3621c863d'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/fddd62c9-8ab3-4cfa-ac9a-c0b3621c863d/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.07f5f68d-e5b9-476f-9ef4-acb985979e8b',\n",
+ " 'attributes': {'name': 'COE-Stuttgart-Nasuni Migration test',\n",
+ " 'scopes': ['b360project.07f5f68d-e5b9-476f-9ef4-acb985979e8b',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.07f5f68d-e5b9-476f-9ef4-acb985979e8b'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/07f5f68d-e5b9-476f-9ef4-acb985979e8b'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.Vu5vwbjJSi6LAzvZwr8VYw'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.07f5f68d-e5b9-476f-9ef4-acb985979e8b/folders/urn:adsk.wipprod:fs.folder:co.Vu5vwbjJSi6LAzvZwr8VYw'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.07f5f68d-e5b9-476f-9ef4-acb985979e8b/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '07f5f68d-e5b9-476f-9ef4-acb985979e8b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/07f5f68d-e5b9-476f-9ef4-acb985979e8b/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '07f5f68d-e5b9-476f-9ef4-acb985979e8b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/07f5f68d-e5b9-476f-9ef4-acb985979e8b/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '07f5f68d-e5b9-476f-9ef4-acb985979e8b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/07f5f68d-e5b9-476f-9ef4-acb985979e8b/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '07f5f68d-e5b9-476f-9ef4-acb985979e8b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/07f5f68d-e5b9-476f-9ef4-acb985979e8b/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '07f5f68d-e5b9-476f-9ef4-acb985979e8b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/07f5f68d-e5b9-476f-9ef4-acb985979e8b/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '07f5f68d-e5b9-476f-9ef4-acb985979e8b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/07f5f68d-e5b9-476f-9ef4-acb985979e8b/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '07f5f68d-e5b9-476f-9ef4-acb985979e8b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/07f5f68d-e5b9-476f-9ef4-acb985979e8b/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.06bdfd0f-e0ab-4c01-83ce-f849243d1dbe',\n",
+ " 'attributes': {'name': 'CORP-VR-Testing',\n",
+ " 'scopes': ['b360project.06bdfd0f-e0ab-4c01-83ce-f849243d1dbe',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.06bdfd0f-e0ab-4c01-83ce-f849243d1dbe'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/06bdfd0f-e0ab-4c01-83ce-f849243d1dbe'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.Xb75FPMzRZaXX6wwpqCJQA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.06bdfd0f-e0ab-4c01-83ce-f849243d1dbe/folders/urn:adsk.wipprod:fs.folder:co.Xb75FPMzRZaXX6wwpqCJQA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.06bdfd0f-e0ab-4c01-83ce-f849243d1dbe/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '06bdfd0f-e0ab-4c01-83ce-f849243d1dbe'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/06bdfd0f-e0ab-4c01-83ce-f849243d1dbe/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '06bdfd0f-e0ab-4c01-83ce-f849243d1dbe'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/06bdfd0f-e0ab-4c01-83ce-f849243d1dbe/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '06bdfd0f-e0ab-4c01-83ce-f849243d1dbe'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/06bdfd0f-e0ab-4c01-83ce-f849243d1dbe/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '06bdfd0f-e0ab-4c01-83ce-f849243d1dbe'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/06bdfd0f-e0ab-4c01-83ce-f849243d1dbe/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '06bdfd0f-e0ab-4c01-83ce-f849243d1dbe'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/06bdfd0f-e0ab-4c01-83ce-f849243d1dbe/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '06bdfd0f-e0ab-4c01-83ce-f849243d1dbe'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/06bdfd0f-e0ab-4c01-83ce-f849243d1dbe/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '87ec9167-3474-4dd7-9854-e3db7376777b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/87ec9167-3474-4dd7-9854-e3db7376777b/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.8c3da569-7aab-4a62-9cb1-e51a3419280c',\n",
+ " 'attributes': {'name': 'CORP-0001-FOLDER-GLOBAL VDC',\n",
+ " 'scopes': ['b360project.8c3da569-7aab-4a62-9cb1-e51a3419280c',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.8c3da569-7aab-4a62-9cb1-e51a3419280c'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/8c3da569-7aab-4a62-9cb1-e51a3419280c'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.ez7-gTbwTiWGUEqzN8T-cg'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.8c3da569-7aab-4a62-9cb1-e51a3419280c/folders/urn:adsk.wipprod:fs.folder:co.ez7-gTbwTiWGUEqzN8T-cg'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.8c3da569-7aab-4a62-9cb1-e51a3419280c/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '8c3da569-7aab-4a62-9cb1-e51a3419280c'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/8c3da569-7aab-4a62-9cb1-e51a3419280c/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '8c3da569-7aab-4a62-9cb1-e51a3419280c'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/8c3da569-7aab-4a62-9cb1-e51a3419280c/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '8c3da569-7aab-4a62-9cb1-e51a3419280c'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/8c3da569-7aab-4a62-9cb1-e51a3419280c/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '8c3da569-7aab-4a62-9cb1-e51a3419280c'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/8c3da569-7aab-4a62-9cb1-e51a3419280c/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '8c3da569-7aab-4a62-9cb1-e51a3419280c'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/8c3da569-7aab-4a62-9cb1-e51a3419280c/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '8c3da569-7aab-4a62-9cb1-e51a3419280c'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/8c3da569-7aab-4a62-9cb1-e51a3419280c/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '8c3da569-7aab-4a62-9cb1-e51a3419280c'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/8c3da569-7aab-4a62-9cb1-e51a3419280c/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.2b55c612-3fc6-4b16-a3ab-f40744a725b7',\n",
+ " 'attributes': {'name': 'CORP-DOCUMENT CONTROL PLAYGROUND',\n",
+ " 'scopes': ['b360project.2b55c612-3fc6-4b16-a3ab-f40744a725b7',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.2b55c612-3fc6-4b16-a3ab-f40744a725b7'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/2b55c612-3fc6-4b16-a3ab-f40744a725b7'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.bi1BOFMxS-aPJ1PF5je-Ag'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.2b55c612-3fc6-4b16-a3ab-f40744a725b7/folders/urn:adsk.wipprod:fs.folder:co.bi1BOFMxS-aPJ1PF5je-Ag'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.2b55c612-3fc6-4b16-a3ab-f40744a725b7/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '2b55c612-3fc6-4b16-a3ab-f40744a725b7'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/2b55c612-3fc6-4b16-a3ab-f40744a725b7/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '2b55c612-3fc6-4b16-a3ab-f40744a725b7'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/2b55c612-3fc6-4b16-a3ab-f40744a725b7/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '2b55c612-3fc6-4b16-a3ab-f40744a725b7'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/2b55c612-3fc6-4b16-a3ab-f40744a725b7/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '2b55c612-3fc6-4b16-a3ab-f40744a725b7'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/2b55c612-3fc6-4b16-a3ab-f40744a725b7/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '2b55c612-3fc6-4b16-a3ab-f40744a725b7'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/2b55c612-3fc6-4b16-a3ab-f40744a725b7/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '2b55c612-3fc6-4b16-a3ab-f40744a725b7'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/2b55c612-3fc6-4b16-a3ab-f40744a725b7/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '2b55c612-3fc6-4b16-a3ab-f40744a725b7'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/2b55c612-3fc6-4b16-a3ab-f40744a725b7/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.e768e9ab-b9db-4b62-aa73-e2929dadb2d9',\n",
+ " 'attributes': {'name': 'COE_ACC Template Setup and Presentation',\n",
+ " 'scopes': ['b360project.e768e9ab-b9db-4b62-aa73-e2929dadb2d9',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.e768e9ab-b9db-4b62-aa73-e2929dadb2d9'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/e768e9ab-b9db-4b62-aa73-e2929dadb2d9'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.kjPcaMhbTwmwzTyyHC4ejg'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.e768e9ab-b9db-4b62-aa73-e2929dadb2d9/folders/urn:adsk.wipprod:fs.folder:co.kjPcaMhbTwmwzTyyHC4ejg'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.e768e9ab-b9db-4b62-aa73-e2929dadb2d9/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'e768e9ab-b9db-4b62-aa73-e2929dadb2d9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/e768e9ab-b9db-4b62-aa73-e2929dadb2d9/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'e768e9ab-b9db-4b62-aa73-e2929dadb2d9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/e768e9ab-b9db-4b62-aa73-e2929dadb2d9/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'e768e9ab-b9db-4b62-aa73-e2929dadb2d9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/e768e9ab-b9db-4b62-aa73-e2929dadb2d9/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'e768e9ab-b9db-4b62-aa73-e2929dadb2d9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/e768e9ab-b9db-4b62-aa73-e2929dadb2d9/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'e768e9ab-b9db-4b62-aa73-e2929dadb2d9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/e768e9ab-b9db-4b62-aa73-e2929dadb2d9/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'e768e9ab-b9db-4b62-aa73-e2929dadb2d9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/e768e9ab-b9db-4b62-aa73-e2929dadb2d9/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'e768e9ab-b9db-4b62-aa73-e2929dadb2d9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/e768e9ab-b9db-4b62-aa73-e2929dadb2d9/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.62a8f3bc-b8af-4471-bf08-58ec58a1382b',\n",
+ " 'attributes': {'name': 'COE-Tool Install-Pilot',\n",
+ " 'scopes': ['b360project.62a8f3bc-b8af-4471-bf08-58ec58a1382b',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.62a8f3bc-b8af-4471-bf08-58ec58a1382b'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/62a8f3bc-b8af-4471-bf08-58ec58a1382b'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.XmNKGBxMQFqgTQdsOaUhnw'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.62a8f3bc-b8af-4471-bf08-58ec58a1382b/folders/urn:adsk.wipprod:fs.folder:co.XmNKGBxMQFqgTQdsOaUhnw'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.62a8f3bc-b8af-4471-bf08-58ec58a1382b/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '62a8f3bc-b8af-4471-bf08-58ec58a1382b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/62a8f3bc-b8af-4471-bf08-58ec58a1382b/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '62a8f3bc-b8af-4471-bf08-58ec58a1382b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/62a8f3bc-b8af-4471-bf08-58ec58a1382b/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '62a8f3bc-b8af-4471-bf08-58ec58a1382b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/62a8f3bc-b8af-4471-bf08-58ec58a1382b/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '62a8f3bc-b8af-4471-bf08-58ec58a1382b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/62a8f3bc-b8af-4471-bf08-58ec58a1382b/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '62a8f3bc-b8af-4471-bf08-58ec58a1382b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/62a8f3bc-b8af-4471-bf08-58ec58a1382b/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '62a8f3bc-b8af-4471-bf08-58ec58a1382b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/62a8f3bc-b8af-4471-bf08-58ec58a1382b/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '62a8f3bc-b8af-4471-bf08-58ec58a1382b'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/62a8f3bc-b8af-4471-bf08-58ec58a1382b/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.4c57b85d-dde1-4f27-b616-35ed75b0ee06',\n",
+ " 'attributes': {'name': 'USA-00190-DEV_TESTING',\n",
+ " 'scopes': ['b360project.4c57b85d-dde1-4f27-b616-35ed75b0ee06',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'BIM360'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.4c57b85d-dde1-4f27-b616-35ed75b0ee06'},\n",
+ " 'webView': {'href': 'https://docs.b360.autodesk.com/projects/4c57b85d-dde1-4f27-b616-35ed75b0ee06'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.YwXfiJXhQBWucU4LpzIefQ'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.4c57b85d-dde1-4f27-b616-35ed75b0ee06/folders/urn:adsk.wipprod:fs.folder:co.YwXfiJXhQBWucU4LpzIefQ'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.4c57b85d-dde1-4f27-b616-35ed75b0ee06/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '4c57b85d-dde1-4f27-b616-35ed75b0ee06'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/4c57b85d-dde1-4f27-b616-35ed75b0ee06/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '4c57b85d-dde1-4f27-b616-35ed75b0ee06'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/4c57b85d-dde1-4f27-b616-35ed75b0ee06/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '4c57b85d-dde1-4f27-b616-35ed75b0ee06'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/4c57b85d-dde1-4f27-b616-35ed75b0ee06/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '4c57b85d-dde1-4f27-b616-35ed75b0ee06'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/4c57b85d-dde1-4f27-b616-35ed75b0ee06/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '4c57b85d-dde1-4f27-b616-35ed75b0ee06'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/4c57b85d-dde1-4f27-b616-35ed75b0ee06/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '4c57b85d-dde1-4f27-b616-35ed75b0ee06'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/4c57b85d-dde1-4f27-b616-35ed75b0ee06/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '4c57b85d-dde1-4f27-b616-35ed75b0ee06'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/4c57b85d-dde1-4f27-b616-35ed75b0ee06/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.4e1b1983-beda-4001-9391-4f231f608912',\n",
+ " 'attributes': {'name': 'TFS- ACC Sandbox',\n",
+ " 'scopes': ['b360project.4e1b1983-beda-4001-9391-4f231f608912',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.4e1b1983-beda-4001-9391-4f231f608912'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/4e1b1983-beda-4001-9391-4f231f608912'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.JAK85PskSzSd7oJQdC-CnA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.4e1b1983-beda-4001-9391-4f231f608912/folders/urn:adsk.wipprod:fs.folder:co.JAK85PskSzSd7oJQdC-CnA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.4e1b1983-beda-4001-9391-4f231f608912/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '4e1b1983-beda-4001-9391-4f231f608912'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/4e1b1983-beda-4001-9391-4f231f608912/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '4e1b1983-beda-4001-9391-4f231f608912'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/4e1b1983-beda-4001-9391-4f231f608912/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '4e1b1983-beda-4001-9391-4f231f608912'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/4e1b1983-beda-4001-9391-4f231f608912/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '4e1b1983-beda-4001-9391-4f231f608912'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/4e1b1983-beda-4001-9391-4f231f608912/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '4e1b1983-beda-4001-9391-4f231f608912'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/4e1b1983-beda-4001-9391-4f231f608912/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '4e1b1983-beda-4001-9391-4f231f608912'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/4e1b1983-beda-4001-9391-4f231f608912/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '4e1b1983-beda-4001-9391-4f231f608912'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/4e1b1983-beda-4001-9391-4f231f608912/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.a24a20c9-84f0-4bf7-bce0-7f82787c93fb',\n",
+ " 'attributes': {'name': 'COE_Revit Templates',\n",
+ " 'scopes': ['b360project.a24a20c9-84f0-4bf7-bce0-7f82787c93fb',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.a24a20c9-84f0-4bf7-bce0-7f82787c93fb'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/a24a20c9-84f0-4bf7-bce0-7f82787c93fb'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.K-YybuOXTEagr3K_PSfP_g'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.a24a20c9-84f0-4bf7-bce0-7f82787c93fb/folders/urn:adsk.wipprod:fs.folder:co.K-YybuOXTEagr3K_PSfP_g'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.a24a20c9-84f0-4bf7-bce0-7f82787c93fb/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'a24a20c9-84f0-4bf7-bce0-7f82787c93fb'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/a24a20c9-84f0-4bf7-bce0-7f82787c93fb/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'a24a20c9-84f0-4bf7-bce0-7f82787c93fb'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/a24a20c9-84f0-4bf7-bce0-7f82787c93fb/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'a24a20c9-84f0-4bf7-bce0-7f82787c93fb'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/a24a20c9-84f0-4bf7-bce0-7f82787c93fb/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'a24a20c9-84f0-4bf7-bce0-7f82787c93fb'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/a24a20c9-84f0-4bf7-bce0-7f82787c93fb/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'a24a20c9-84f0-4bf7-bce0-7f82787c93fb'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/a24a20c9-84f0-4bf7-bce0-7f82787c93fb/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'a24a20c9-84f0-4bf7-bce0-7f82787c93fb'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/a24a20c9-84f0-4bf7-bce0-7f82787c93fb/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'a24a20c9-84f0-4bf7-bce0-7f82787c93fb'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/a24a20c9-84f0-4bf7-bce0-7f82787c93fb/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.82ac337f-5e08-4ba4-94ea-cd40b5235dca',\n",
+ " 'attributes': {'name': 'SEA-S96029-Pelican Testing',\n",
+ " 'scopes': ['b360project.82ac337f-5e08-4ba4-94ea-cd40b5235dca',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.82ac337f-5e08-4ba4-94ea-cd40b5235dca'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/82ac337f-5e08-4ba4-94ea-cd40b5235dca'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.jaicKopMRQefpek7nrf0NA'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.82ac337f-5e08-4ba4-94ea-cd40b5235dca/folders/urn:adsk.wipprod:fs.folder:co.jaicKopMRQefpek7nrf0NA'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.82ac337f-5e08-4ba4-94ea-cd40b5235dca/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '82ac337f-5e08-4ba4-94ea-cd40b5235dca'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/82ac337f-5e08-4ba4-94ea-cd40b5235dca/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '82ac337f-5e08-4ba4-94ea-cd40b5235dca'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/82ac337f-5e08-4ba4-94ea-cd40b5235dca/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '82ac337f-5e08-4ba4-94ea-cd40b5235dca'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/82ac337f-5e08-4ba4-94ea-cd40b5235dca/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '82ac337f-5e08-4ba4-94ea-cd40b5235dca'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/82ac337f-5e08-4ba4-94ea-cd40b5235dca/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '82ac337f-5e08-4ba4-94ea-cd40b5235dca'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/82ac337f-5e08-4ba4-94ea-cd40b5235dca/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '82ac337f-5e08-4ba4-94ea-cd40b5235dca'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/82ac337f-5e08-4ba4-94ea-cd40b5235dca/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '82ac337f-5e08-4ba4-94ea-cd40b5235dca'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/82ac337f-5e08-4ba4-94ea-cd40b5235dca/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.ce5beea3-0825-4346-b628-5ba4a5886a0a',\n",
+ " 'attributes': {'name': 'COE-FRANCE-Training-Testing',\n",
+ " 'scopes': ['b360project.ce5beea3-0825-4346-b628-5ba4a5886a0a',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.ce5beea3-0825-4346-b628-5ba4a5886a0a'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/ce5beea3-0825-4346-b628-5ba4a5886a0a'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.pH6pc9SLRgaNL1W_CPxcYw'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.ce5beea3-0825-4346-b628-5ba4a5886a0a/folders/urn:adsk.wipprod:fs.folder:co.pH6pc9SLRgaNL1W_CPxcYw'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.ce5beea3-0825-4346-b628-5ba4a5886a0a/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': 'ce5beea3-0825-4346-b628-5ba4a5886a0a'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/ce5beea3-0825-4346-b628-5ba4a5886a0a/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': 'ce5beea3-0825-4346-b628-5ba4a5886a0a'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/ce5beea3-0825-4346-b628-5ba4a5886a0a/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': 'ce5beea3-0825-4346-b628-5ba4a5886a0a'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/ce5beea3-0825-4346-b628-5ba4a5886a0a/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': 'ce5beea3-0825-4346-b628-5ba4a5886a0a'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/ce5beea3-0825-4346-b628-5ba4a5886a0a/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': 'ce5beea3-0825-4346-b628-5ba4a5886a0a'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/ce5beea3-0825-4346-b628-5ba4a5886a0a/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': 'ce5beea3-0825-4346-b628-5ba4a5886a0a'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/ce5beea3-0825-4346-b628-5ba4a5886a0a/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': 'ce5beea3-0825-4346-b628-5ba4a5886a0a'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/ce5beea3-0825-4346-b628-5ba4a5886a0a/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.017f8b16-6d24-45c6-9881-ab2536bae6f9',\n",
+ " 'attributes': {'name': 'DES-Playground',\n",
+ " 'scopes': ['b360project.017f8b16-6d24-45c6-9881-ab2536bae6f9',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.017f8b16-6d24-45c6-9881-ab2536bae6f9'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/017f8b16-6d24-45c6-9881-ab2536bae6f9'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.0X6LagYGTIOw2-A0RS3-uw'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.017f8b16-6d24-45c6-9881-ab2536bae6f9/folders/urn:adsk.wipprod:fs.folder:co.0X6LagYGTIOw2-A0RS3-uw'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.017f8b16-6d24-45c6-9881-ab2536bae6f9/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '017f8b16-6d24-45c6-9881-ab2536bae6f9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/017f8b16-6d24-45c6-9881-ab2536bae6f9/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '017f8b16-6d24-45c6-9881-ab2536bae6f9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/017f8b16-6d24-45c6-9881-ab2536bae6f9/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '017f8b16-6d24-45c6-9881-ab2536bae6f9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/017f8b16-6d24-45c6-9881-ab2536bae6f9/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '017f8b16-6d24-45c6-9881-ab2536bae6f9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/017f8b16-6d24-45c6-9881-ab2536bae6f9/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '017f8b16-6d24-45c6-9881-ab2536bae6f9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/017f8b16-6d24-45c6-9881-ab2536bae6f9/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '017f8b16-6d24-45c6-9881-ab2536bae6f9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/017f8b16-6d24-45c6-9881-ab2536bae6f9/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '017f8b16-6d24-45c6-9881-ab2536bae6f9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/017f8b16-6d24-45c6-9881-ab2536bae6f9/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.7d92a5d9-dc9a-406f-96b4-dc506ebb228e',\n",
+ " 'attributes': {'name': 'Test',\n",
+ " 'scopes': ['b360project.7d92a5d9-dc9a-406f-96b4-dc506ebb228e',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.7d92a5d9-dc9a-406f-96b4-dc506ebb228e'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/7d92a5d9-dc9a-406f-96b4-dc506ebb228e'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.O0-R4K1FTFiMl2OYbSm4Tw'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.7d92a5d9-dc9a-406f-96b4-dc506ebb228e/folders/urn:adsk.wipprod:fs.folder:co.O0-R4K1FTFiMl2OYbSm4Tw'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.7d92a5d9-dc9a-406f-96b4-dc506ebb228e/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '7d92a5d9-dc9a-406f-96b4-dc506ebb228e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/7d92a5d9-dc9a-406f-96b4-dc506ebb228e/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '7d92a5d9-dc9a-406f-96b4-dc506ebb228e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/7d92a5d9-dc9a-406f-96b4-dc506ebb228e/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '7d92a5d9-dc9a-406f-96b4-dc506ebb228e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/7d92a5d9-dc9a-406f-96b4-dc506ebb228e/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '7d92a5d9-dc9a-406f-96b4-dc506ebb228e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/7d92a5d9-dc9a-406f-96b4-dc506ebb228e/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '7d92a5d9-dc9a-406f-96b4-dc506ebb228e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/7d92a5d9-dc9a-406f-96b4-dc506ebb228e/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '7d92a5d9-dc9a-406f-96b4-dc506ebb228e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/7d92a5d9-dc9a-406f-96b4-dc506ebb228e/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '7d92a5d9-dc9a-406f-96b4-dc506ebb228e'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/7d92a5d9-dc9a-406f-96b4-dc506ebb228e/trees/default/nodes'}}}}},\n",
+ " {'type': 'projects',\n",
+ " 'id': 'b.4e512220-12c2-41a0-b9f8-3e483113bfe9',\n",
+ " 'attributes': {'name': 'TestGT',\n",
+ " 'scopes': ['b360project.4e512220-12c2-41a0-b9f8-3e483113bfe9',\n",
+ " 'O2tenant.8495666'],\n",
+ " 'extension': {'type': 'projects:autodesk.bim360:Project',\n",
+ " 'version': '1.0',\n",
+ " 'schema': {'href': 'https://developer.api.autodesk.com/schema/v1/versions/projects:autodesk.bim360:Project-1.0'},\n",
+ " 'data': {'projectType': 'ACC'}}},\n",
+ " 'links': {'self': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.4e512220-12c2-41a0-b9f8-3e483113bfe9'},\n",
+ " 'webView': {'href': 'https://acc.autodesk.com/docs/files/projects/4e512220-12c2-41a0-b9f8-3e483113bfe9'}},\n",
+ " 'relationships': {'hub': {'data': {'type': 'hubs',\n",
+ " 'id': 'b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'},\n",
+ " 'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6'}}},\n",
+ " 'rootFolder': {'data': {'type': 'folders',\n",
+ " 'id': 'urn:adsk.wipprod:fs.folder:co.be_JCamfR-q1Ygv77KTagg'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/data/v1/projects/b.4e512220-12c2-41a0-b9f8-3e483113bfe9/folders/urn:adsk.wipprod:fs.folder:co.be_JCamfR-q1Ygv77KTagg'}}},\n",
+ " 'topFolders': {'links': {'related': {'href': 'https://developer.api.autodesk.com/project/v1/hubs/b.1715cf2b-cc12-46fd-9279-11bbc47e72f6/projects/b.4e512220-12c2-41a0-b9f8-3e483113bfe9/topFolders'}}},\n",
+ " 'issues': {'data': {'type': 'issueContainerId',\n",
+ " 'id': '4e512220-12c2-41a0-b9f8-3e483113bfe9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/4e512220-12c2-41a0-b9f8-3e483113bfe9/issues'}}},\n",
+ " 'submittals': {'data': {'type': 'submittalContainerId',\n",
+ " 'id': '4e512220-12c2-41a0-b9f8-3e483113bfe9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/submittals/v1/containers/4e512220-12c2-41a0-b9f8-3e483113bfe9/items'}}},\n",
+ " 'rfis': {'data': {'type': 'rfisContainerId',\n",
+ " 'id': '4e512220-12c2-41a0-b9f8-3e483113bfe9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/rfis/v1/containers/4e512220-12c2-41a0-b9f8-3e483113bfe9/rfis'}}},\n",
+ " 'markups': {'data': {'type': 'markupsContainerId',\n",
+ " 'id': '4e512220-12c2-41a0-b9f8-3e483113bfe9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/issues/v1/containers/4e512220-12c2-41a0-b9f8-3e483113bfe9/markups'}}},\n",
+ " 'checklists': {'data': {'type': 'checklistsContainerId',\n",
+ " 'id': '4e512220-12c2-41a0-b9f8-3e483113bfe9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/checklists/v1/containers/4e512220-12c2-41a0-b9f8-3e483113bfe9/instances'}}},\n",
+ " 'cost': {'data': {'type': 'costContainerId',\n",
+ " 'id': '4e512220-12c2-41a0-b9f8-3e483113bfe9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/cost/v1/containers/4e512220-12c2-41a0-b9f8-3e483113bfe9/budgets'}}},\n",
+ " 'locations': {'data': {'type': 'locationsContainerId',\n",
+ " 'id': '4e512220-12c2-41a0-b9f8-3e483113bfe9'},\n",
+ " 'meta': {'link': {'href': 'https://developer.api.autodesk.com/bim360/locations/v2/containers/4e512220-12c2-41a0-b9f8-3e483113bfe9/trees/default/nodes'}}}}}]}"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "bim360.get_projects(hub_id)"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.11.4"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/APSToolkitPython/src/test/__init__.py b/APSToolkitPython/src/test/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/APSToolkitPython/src/test/_trial_temp/_trial_marker b/APSToolkitPython/src/test/_trial_temp/_trial_marker
new file mode 100644
index 0000000..e69de29
diff --git a/APSToolkitPython/src/test/context.py b/APSToolkitPython/src/test/context.py
new file mode 100644
index 0000000..790db9d
--- /dev/null
+++ b/APSToolkitPython/src/test/context.py
@@ -0,0 +1,16 @@
+import os
+import sys
+
+# Assuming the src folder is at the same level as the test folder
+src_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
+
+sys.path.append(src_dir)
+# Now you can import modules from the project folder
+from aps_toolkit_python import PropReader
+from aps_toolkit_python import PropDbReaderRevit
+from aps_toolkit_python import Auth
+from aps_toolkit_python import Token
+from aps_toolkit_python import BIM360
+
+APS_CLIENT_ID = os.environ["APS_CLIENT_ID"]
+APS_CLIENT_SECRET = os.environ["APS_CLIENT_SECRET"]
diff --git a/APSToolkitPython/src/test/test_auth.py b/APSToolkitPython/src/test/test_auth.py
new file mode 100644
index 0000000..ede0328
--- /dev/null
+++ b/APSToolkitPython/src/test/test_auth.py
@@ -0,0 +1,17 @@
+from unittest import TestCase
+import os
+from .context import Auth
+
+
+class TestAuth(TestCase):
+ def test_auth(self):
+ client_id = os.environ['APS_CLIENT_ID']
+ client_secret = os.environ['APS_CLIENT_SECRET']
+ auth = Auth(client_id, client_secret)
+ token = auth.auth2leg()
+ self.assertNotEquals(token.access_token, "")
+
+ def test_auth2(self):
+ auth = Auth()
+ token = auth.auth2leg()
+ self.assertNotEquals(token.access_token, "")
diff --git a/APSToolkitPython/src/test/test_bim360.py b/APSToolkitPython/src/test/test_bim360.py
new file mode 100644
index 0000000..d69a931
--- /dev/null
+++ b/APSToolkitPython/src/test/test_bim360.py
@@ -0,0 +1,46 @@
+from unittest import TestCase
+import os
+
+from .context import BIM360
+
+from .context import Auth
+
+
+class TestBIM360(TestCase):
+ def setUp(self):
+ self.token = Auth().auth2leg()
+ self.bim360 = BIM360(self.token)
+ self.hub_id = "b.1715cf2b-cc12-46fd-9279-11bbc47e72f6"
+ self.project_id = "b.1f7aa830-c6ef-48be-8a2d-bd554779e74b"
+ self.folder_id = "urn:adsk.wipprod:fs.folder:co.5ufH-U8yRjaZ-USJxxN_Mw"
+ self.item_id = "urn:adsk.wipprod:dm.lineage:DjXtlXoJQyS6D1R-gRhI8A"
+
+ def test_get_hubs(self):
+ hubs = self.bim360.get_hubs()
+ self.assertNotEquals(hubs, 0)
+
+ def test_get_projects(self):
+ hubs = self.bim360.get_hubs()
+ projects = self.bim360.get_projects(hubs['data'][0]['id'])
+ self.assertNotEquals(projects, 0)
+
+ def test_get_top_folders(self):
+ hubs = self.bim360.get_hubs()
+ projects = self.bim360.get_projects(hubs['data'][0]['id'])
+ top_folders = self.bim360.get_top_folders(hubs['data'][0]['id'], projects['data'][0]['id'])
+ self.assertNotEquals(top_folders, 0)
+
+ def test_get_folder_contents(self):
+ hubs = self.bim360.get_hubs()
+ projects = self.bim360.get_projects(hubs['data'][0]['id'])
+ top_folders = self.bim360.get_top_folders(hubs['data'][0]['id'], projects['data'][0]['id'])
+ folder_contents = self.bim360.get_folder_contents(projects['data'][0]['id'], top_folders['data'][0]['id'])
+ self.assertNotEquals(folder_contents, 0)
+
+ def test_get_item_versions(self):
+ items =self.bim360.batch_report_items(self.project_id, self.folder_id)
+ self.assertNotEquals(items, 0)
+
+ def test_batch_report_item_versions(self):
+ df = self.bim360.batch_report_item_versions(self.project_id, self.item_id)
+ self.A(df.empty, True)
diff --git a/APSToolkitPython/src/test/test_prop_reader.py b/APSToolkitPython/src/test/test_prop_reader.py
new file mode 100644
index 0000000..7b5c1d1
--- /dev/null
+++ b/APSToolkitPython/src/test/test_prop_reader.py
@@ -0,0 +1,13 @@
+from unittest import TestCase
+import os
+from .context import PropReader
+from .context import Auth
+
+
+class TestPropDbReader(TestCase):
+ def test_enumerate_properties(self):
+ token = Auth().auth2leg()
+ urn = "dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLjAtYnBtcEpXUWJTRUVNdUFac1VETWc_dmVyc2lvbj0yNQ"
+ prop_reader = PropReader(urn, token)
+ properties = prop_reader.enumerate_properties(1)
+ self.assertNotEquals(properties, 0)
diff --git a/APSToolkitPython/src/test/test_prop_reader_revit.py b/APSToolkitPython/src/test/test_prop_reader_revit.py
new file mode 100644
index 0000000..9c31838
--- /dev/null
+++ b/APSToolkitPython/src/test/test_prop_reader_revit.py
@@ -0,0 +1,47 @@
+from unittest import TestCase
+import os
+from .context import PropDbReaderRevit
+from .context import Auth
+
+
+class TestPropDbReaderRevit(TestCase):
+ def setUp(self):
+ self.token = Auth().auth2leg()
+ self.urn = "dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLjAtYnBtcEpXUWJTRUVNdUFac1VETWc_dmVyc2lvbj0yNQ"
+ self.prop_reader = PropDbReaderRevit(self.urn, self.token)
+
+ def test_get_all_categories(self):
+ categories = self.prop_reader.get_all_categories()
+ print(categories)
+ self.assertNotEquals(categories, 0)
+
+ def test_get_all_families(self):
+ families = self.prop_reader.get_all_families()
+ self.assertNotEquals(families, 0)
+
+ def test_get_all_families_types(self):
+ families_types = self.prop_reader.get_all_families_types()
+ self.assertNotEquals(families_types, 0)
+
+ def test_get_data_by_category(self):
+ df = self.prop_reader.get_data_by_category("Ducts")
+ self.assertNotEquals(df.empty, True)
+
+ def test_get_data_by_categories(self):
+ df = self.prop_reader.get_data_by_categories(["Ducts", "Rooms"])
+ self.assertNotEquals(df.empty, True)
+
+ def test_get_data_by_family(self):
+ family_name = "ex_M_MAU_02"
+ df = self.prop_reader.get_data_by_family(family_name)
+ self.assertNotEquals(df.empty, True)
+
+ def test_get_data_by_family_type(self):
+ family_type = "457x191x67UB"
+ df = self.prop_reader.get_data_by_family_type(family_type)
+ self.assertNotEquals(df.empty, True)
+
+ def test_get_data_by_categories_and_params(self):
+ df = self.prop_reader.get_data_by_categories_and_params(["Ducts"],
+ ["name", "Category", "System Name", "IfcGUID"])
+ self.assertNotEquals(df.empty, True)