This 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.
requests
newer than 2.18.3requests
exactly 2.13.0enum
newer than 1.1.6pip install rpws
Lib/site-packages
folder.exceptions.py
: Defines module exceptions and custom exceptions for http status codes returned by the serverapi.py
: Documents all standard keys that are returned in JSON dictionaries from server http API calls.models.py
: Defines classes and namedtuples that wrap the data returned from server http API calls.server.py
: Defines the server wrapper class. RevitServer class aims to support all the Revit Server http API functionality.
name = '<server name>'
version = '2017' # server version in XXXX format
rserver = RevitServer(name, version)
# server root path
rserver.path
sinfo = rserver.getinfo()
sinfo.name
sinfo.version
sinfo.machine_name
sinfo.roles
sinfo.access_level_types
sinfo.max_path_length
sinfo.max_name_length
sinfo.servers
# server drive space and free space
sdriveinfo = rserver.getdriveinfo()
sdriveinfo.drive_space
sdriveinfo.drive_freespace
Make sure all paths start with root /
for parent, folders, files, models in rserver.walk():
print(parent)
for fd in folders:
print('\t@d {}'.format(fd.path))
for f in files:
print('\t@f {}'.format(f.path))
for m in models:
print('\t@m {}'.format(m.path))
rserver.lock('/path/to/folder/or/model.rvt')
rserver.unlock('/path/to/folder/or/model.rvt')
rserver.mkdir('/path/to/folder')
rserver.rename('/path/to/folder/or/model.rvt',
'/path/to/folder/or/model2.rvt')
rserver.rmdir('/path/to/folder/')
rserver.delete('/path/to/model.rvt')
rserver.copy('/path/to/folder/or/model.rvt',
'/path/to/folder/or/model2.rvt', overwrite=True)
rserver.move('/path/to/folder/or/model.rvt',
'/path/to/folder/or/model2.rvt', overwrite=True)
mhistory = rserver.getmodelhistory('/path/to/folder/or/model.rvt')
for hist_item in mhistory.items:
print(hist_item.user, hist_item.date)