{"id":28114711,"url":"https://github.com/pyrevitlabs/rpws","last_synced_at":"2025-08-11T07:09:20.263Z","repository":{"id":57462912,"uuid":"102230063","full_name":"pyrevitlabs/rpws","owner":"pyrevitlabs","description":"python wrapper for Revit Server RESTful API","archived":false,"fork":false,"pushed_at":"2024-06-19T15:20:58.000Z","size":43,"stargazers_count":20,"open_issues_count":3,"forks_count":7,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-07-30T23:05:09.030Z","etag":null,"topics":["ironpython","python","revit","revitserver"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pyrevitlabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-02T23:52:41.000Z","updated_at":"2025-06-21T11:15:46.000Z","dependencies_parsed_at":"2024-06-23T11:42:31.374Z","dependency_job_id":null,"html_url":"https://github.com/pyrevitlabs/rpws","commit_stats":{"total_commits":23,"total_committers":2,"mean_commits":11.5,"dds":0.08695652173913049,"last_synced_commit":"c257f8234aa6beabe8266aea5309530fd7b3bc29"},"previous_names":["pyrevitlabs/rpws","eirannejad/rpws"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/pyrevitlabs/rpws","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyrevitlabs%2Frpws","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyrevitlabs%2Frpws/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyrevitlabs%2Frpws/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyrevitlabs%2Frpws/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyrevitlabs","download_url":"https://codeload.github.com/pyrevitlabs/rpws/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyrevitlabs%2Frpws/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269484282,"owners_count":24424742,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-08T02:00:09.200Z","response_time":72,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ironpython","python","revit","revitserver"],"created_at":"2025-05-14T05:26:03.633Z","updated_at":"2025-08-11T07:09:20.255Z","avatar_url":"https://github.com/pyrevitlabs.png","language":"Python","readme":"[![PyPi](https://img.shields.io/pypi/v/rpws.svg)](https://pypi.org/project/rpws)\n\n## python wrapper for Autodesk Revit Server\n\nThis is a python module for interacting with Autodesk Revit Server using its RESTful API. This module depends on python `requests` for handling http requests to the Revit Server.\n\n### Requires:\n- for python 3\n\t- `requests` newer than 2.18.3\n- for IronPython 2.7.7\n\t- `requests` exactly 2.13.0\n\t- `enum` newer than 1.1.6\n\n\n### Installation:\n- for python 3: `pip install rpws`\n- for IronPython 2.7.7: Download this repository and copy the rpws folder to the IronPython `Lib/site-packages` folder.\n\n### Module Files:\n\n- `exceptions.py`: Defines module exceptions and custom exceptions for http status codes returned by the server\n- `api.py`: Documents all standard keys that are returned in JSON dictionaries from server http API calls.\n- `models.py`: Defines classes and namedtuples that wrap the data returned from server http API calls.\n- `server.py`: Defines the server wrapper class. RevitServer class aims to support all the Revit Server http API functionality.\n\n### Documentation:\n\n[Read the documentation here](http://rpws.readthedocs.io/en/latest/#)\n\n\u0026nbsp;\n\n## Examples:\n\n#### Initializing a server\n\n``` python\nname = '\u003cserver name\u003e'\nversion = '2017'    # server version in XXXX format\nrserver = RevitServer(name, version)\n```\n\n#### Getting server info\n\n``` python\n# server root path\nrserver.path\n\nsinfo = rserver.getinfo()\nsinfo.name\nsinfo.version\nsinfo.machine_name\nsinfo.roles\nsinfo.access_level_types\nsinfo.max_path_length\nsinfo.max_name_length\nsinfo.servers\n\n# server drive space and free space\nsdriveinfo = rserver.getdriveinfo()\nsdriveinfo.drive_space\nsdriveinfo.drive_freespace\n```\n\n\n#### Listing All files, folders, and models\n\nMake sure all paths start with root `/`\n\n``` python\nfor parent, folders, files, models in rserver.walk():\n     print(parent)\n     for fd in folders:\n         print('\\t@d {}'.format(fd.path))\n     for f in files:\n         print('\\t@f {}'.format(f.path))\n     for m in models:\n         print('\\t@m {}'.format(m.path))\n```\n\n#### Locking, unlocking files, folders, and models\n\n``` python\nrserver.lock('/path/to/folder/or/model.rvt')\nrserver.unlock('/path/to/folder/or/model.rvt')\n```\n\n\n#### Create, Move, Copy, Delete\n\n``` python\nrserver.mkdir('/path/to/folder')\n\nrserver.rename('/path/to/folder/or/model.rvt',\n               '/path/to/folder/or/model2.rvt')\n\nrserver.rmdir('/path/to/folder/')\nrserver.delete('/path/to/model.rvt')\n\nrserver.copy('/path/to/folder/or/model.rvt',\n             '/path/to/folder/or/model2.rvt', overwrite=True)\n\nrserver.move('/path/to/folder/or/model.rvt',\n             '/path/to/folder/or/model2.rvt', overwrite=True)\n```\n\n#### Getting model history\n\n``` python\nmhistory = rserver.getmodelhistory('/path/to/folder/or/model.rvt')\nfor hist_item in mhistory.items:\n    print(hist_item.user, hist_item.date)\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyrevitlabs%2Frpws","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpyrevitlabs%2Frpws","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyrevitlabs%2Frpws/lists"}