pyrevitlabs / rpws

python wrapper for Revit Server RESTful API
MIT License
16 stars 7 forks source link
ironpython python revit revitserver

PyPi

python wrapper for Autodesk Revit Server

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.

Requires:

Installation:

Module Files:

Documentation:

Read the documentation here

 

Examples:

Initializing a server

name = '<server name>'
version = '2017'    # server version in XXXX format
rserver = RevitServer(name, version)

Getting server info

# 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

Listing All files, folders, and models

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))

Locking, unlocking files, folders, and models

rserver.lock('/path/to/folder/or/model.rvt')
rserver.unlock('/path/to/folder/or/model.rvt')

Create, Move, Copy, Delete

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)

Getting model history

mhistory = rserver.getmodelhistory('/path/to/folder/or/model.rvt')
for hist_item in mhistory.items:
    print(hist_item.user, hist_item.date)