Project Service



Project Service


A Project is basically a holder which contains building models.

Create a new project


Resource: projects 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects

Examplehttps://api-stage.bimplus.net/v2/bimplus/projects

JSON Structure

Name

Mandatory / Optional

Type

Description

idwill be ignoredstring (guid)Id of the project

name

mandatory

string

Name of the project

shortDescr

optional

string

Short description of the project

teamNamewill be ignoredstringName of the team to which the project belongs
teamSlugwill be ignoredstringSlug of the team to which the project belongs
hasWriteAccesswill be ignoredbooleanDon't use this property. This property is not deleted to support the older clients
thumbnailwill be ignoredstringDirect download link to project thumbnail

created

will be ignored

string (date)

Creation date of the project

createdBywill be ignoredJSON objectDetails of the Bimplus user who has created the project
changedwill be ignoredstring(date)Modified date of the project
changedBywill be ignoredJSON objectDetails of the Bimplus user who has created the project
addressoptionalstringAddress of the project
modelCountwill be ignoredintNumber of models in this project
memberCountwill be ignoredintNumber of members in this project
topicCountwill be ignoredintNumber of topics in this project
attachmentCountwill be ignoredintNumber of attachments in this project
sizewill be ignoredintSize of the project in bytes
sizeInMBwill be ignoredstringSize of the project in MB
disciplineswill be ignoredJSON objectDisciplines found under this project
rightswill be ignoredJSON objectThe rights the user has for this project



 POST


 Creates a new project.



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json


{
    "name" : "Your Awesome Building",
    "shortDescr" : "Example for creating a project",
    "address" : "My address somewhere"
}




Status: 201 Created


{
    "name": "Your Awesome Building",
    "shortDescr": "Example for creating a project",
    "teamName": "Best Company",
    "teamSlug": "best-company",
    "hasWriteAccess" : true,
    "thumbnail": null,
    "created": "2013-06-01T10:05:00",
    "createdby" : {
        "id": "7c555899-5a5f-44d1-930e-284930678bed",
        "email" : "testuser@bimplus.net"
    },
    "changed": "2013-06-01T10:05:00",
    "changedby" : {
        "id": "7c555899-5a5f-44d1-930e-284930678bed",
        "email" : "testuser@bimplus.net"
    },
    "address" : "My address somewhere",
    "modelCount": 0,
    "memberCount": 1,
    "topicCount": 0,
    "attachmentCount": 0,
    "size": 0,
    "sizeMB": "0",
    "id": "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e"
}



Create copy of the source project


Resource: projects/copyfrom

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/copyfrom

Example:https://api-stage.bimplus.net/v2/bimplus/projects/copyfrom

JSON Structure 

Name

Mandatory / Optional

Type

Description

idmandatorystring(guid)Source project Id. Only projects from 'Bimplus Demo' team are supported by this api function.

name

mandatory

string

Unique name of the newly created project.

shortDescr

optional

string

Description of the newly created project.

 


POST


Creates new project as copy of the source project. The content of source project from "Bimplus Demo" team will be copied to user team.



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json


{
  "id":"1eb8efe0-7611-47e7-a06d-102ec8e2fff6",
  "name":"Copy of the Mallorca V1",
  "shortDescr":"Description of the new copy of the Mallorca V1"
}




Status: 201 Created


{
    "topicCount": 0,
    "attachmentCount": 2,
    "projectAttachmentCount": 0,
    "name": "Copy of the Mallorca V1",
    "shortDescr": "Description of the new copy of the Mallorca V1",
    "hasWriteAccess": false,
    "teamSlug": null,
    "thumbnail": null,
    "created": "2014-02-13T12:39:36",
    "createdby": {
        "id": "e0837206-4bff-65d4-b79f-f3878c3567fd",
        "email": "demo@bimplus.net",
        "firstname": "bim+",
        "lastname": "a service by Allplan"
    },
    "changed": "2019-01-24T11:51:40.55",
    "changedby": {
        "id": "e0837206-4bff-65d4-b79f-f3878c3567fd",
        "email": "demo@bimplus.net",
        "firstname": "bim+",
        "lastname": "a service by Allplan"
    },
    "modelCount": 2,
    "memberCount": 1,
    "size": 32839680,
    "attachmentsSize": 0,
    "sizeMB": "31.32",
    "approvalProcess": 0,
    "id": "990d0772-8b87-479a-9ed6-b0b46a204301"
}



Get the logged in user's project List


Resource: projects 

URLhttps://api-stage.bimplus.net/v2/projects

Examplehttps://api-stage.bimplus.net/v2/projects


 GET


 Gets the entire list of projects in which the logged in user is a member



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json




Status: 200 OK


[
    {
        "id": "586b02be-43b8-4e27-b698-e067e85e38e2",
        "name": "!!!!!_VORTEILSHAUS V40 SD45 Traufeingang",
        "shortDescr": "Hey, i am your favourite test entry",
        "thumbnail": "",
        "created": "2013-05-01T09:33:18",
        "createdby" : {
            "id" : "f4b1178d-385f-449c-a2a7-6f58b264d90c"
            "email" : "owner@company1.com",
        },
        "changed": "2013-05-01T09:33:18",
        "changedby" : {
            "id" : "f4b1178d-385f-449c-a2a7-6f58b264d90c"
            "email" : "owner@company1.com",
        },
        "address" : "Address of company 1"
        "hasWriteAccess": false,
        "teamSlug": "company1",
        "modelCount" : 3,
        "memberCount" : 3,
        "size" : 63488,
        "sizeMB" : "0.06",
        "rights": {
            "projectAdmin": false,
            "projectDelete": false,
            "projectEdit": false,
            "modelsCreate": false,
            "modelsViewAll": false
        }
    },
    {
        "id": "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e",
        "name": "Your Awesome Building",
        "shortDescr": "Example for creating a project",
        "thumbnail": "",
        "created": "0001-01-01T00:00:00",
        "createdby" : {
            "id": "7c555899-5a5f-44d1-930e-284930678bed",
            "email" : "testuser@bimplus.net"
        },
        "changed": "0001-01-01T00:00:00",
        "changedby" : {
            "id": "7c555899-5a5f-44d1-930e-284930678bed",
            "email" : "testuser@bimplus.net"
        },
        "address" : "My address somewhere",
        "hasWriteAccess": true,
        "teamSlug": "best-company",
        "modelCount": 4,
        "memberCount": 2,
        "size" : 4263936,
        "sizeMB" : "4,07",
        "rights": {
            "projectAdmin": true,
            "projectDelete": true,
            "projectEdit": true,
            "modelsCreate": true,
            "modelsViewAll": true
        }
    }
]



Get the user's project list from a team


Resource: projects 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects

Examplehttps://api-stage.bimplus.net/v2/bimplus/projects


 GET


 Gets the project list with main properties from a particular team in which the user is a member of.



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json


This call also supports filtering and paging



Status: 200 OK


[
    {
        "id": "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e",
        "name": "Your Awesome Building",
        "shortDescr": "Example for creating a project",
        "thumbnail": "",
        "created": "0001-01-01T00:00:00",
        "createdby" : {
            "id": "7c555899-5a5f-44d1-930e-284930678bed",
            "email" : "testuser@bimplus.net"
        },
        "changed": "0001-01-01T00:00:00",
        "changedby" : {
            "id": "7c555899-5a5f-44d1-930e-284930678bed",
            "email" : "testuser@bimplus.net"
        },
        "address" : "My address somewhere",
        "hasWriteAccess": true,
        "teamSlug": "best-company",
        "modelCount": 4,
        "memberCount": 2,
        "size" : 4263936,
        "sizeMB" : "4,07",
        "rights": {
            "projectAdmin": true,
            "projectDelete": true,
            "projectEdit": true,
            "modelsCreate": true,
            "modelsViewAll": true
        }
    },
    {
        "id": "4e87944a-a477-4e4c-862e-e723dcb43066",
        "name": "UC_Fly-over Kerensheide",
        "shortDescr": "",
        "thumbnail": "",
        "created": "2013-05-10T07:13:38",
        "createdby" : {
            "id": "bda91f09-2cc6-45da-bba0-5f92828f58bc",
            "email" : "UserA@bimplus.net"
        },
        "changed": "2013-05-16T07:34:56",
        "changedby" : {
            "id": "7c555899-5a5f-44d1-930e-284930678bed",
            "email" : "testuser@bimplus.net"
        },
        "address" : ""
        "hasWriteAccess": true,
        "teamSlug": "best-company",
        "modelCount": 2,
        "memberCount": 3,
        "size": 63488,
        "sizeMB": "0,06",
        "rights": {
            "projectAdmin": false,
            "projectDelete": false,
            "projectEdit": true,
            "modelsCreate": false,
            "modelsViewAll": true
        }
    }
]



Get the Project Properties


Resource: projects/<project_id>

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>

Examplehttps://api-stage.bimplus.net/v2/bimplus/projects/586b02be-43b8-4e27-b698-e067e85e38e2

Optional query parameters

Name
Type
Default value
Description
disciplinesstring (bool) true

When query parameter "disciplines=false" is defined, the API will return project properties except "disciplines" project property.
e.g. https://api-stage.bimplus.net/v2/bimplus/projects/586b02be-43b8-4e27-b698-e067e85e38e2?disciplines=false
This api call is faster variant when client does not use returned discipline project property .

Otherwise if query parameter "disciplines" is true (this is default) or is missing the call will return all project properties.
e.g. https://api-stage.bimplus.net/v2/bimplus/projects/586b02be-43b8-4e27-b698-e067e85e38e2?disciplines=true 



 GET


 Get all the project properties of a project using its id.



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json




Status: 200 OK


{  
	"name" : "Your Awesome Building",
	"shortDescr" : "Example for creating a project"    
	"teamName": "jay-company",
    "teamSlug": "jay-company",
    "hasWriteAccess": true,
    "thumbnail": "/jay-company/projects/de87fc4d-cb5d-44ba-b2ea-1d96ac564a8a/thumbnail/download",
    "created": "2014-02-14T09:48:27",
    "createdby": {
        "id": "71e0ac3b-fa49-e540-ac2f-8caff3dd72ed",
        "email": "jayaraj.purushothaman@gmail.com"
    },
    "changed": "2015-11-19T09:45:51",
    "changedby": {
        "id": "71e0ac3b-fa49-e540-ac2f-8caff3dd72ed",
        "email": "jayaraj.purushothaman@gmail.com"
    },
    "address": "",
    "modelCount": 1,
    "memberCount": 7,
    "topicCount": 30,
    "attachmentCount": 13,
    "size": 99317760,
    "sizeMB": "94,72",
    "disciplines": [
        {
            "id": "0f106af0-a919-44c5-b211-15bd5ef620b6",
            "name": "ID_BuildingModel",
            "divisionId": "b539790e-2ffc-43cd-9582-b4aa27b36693",
            "divisionName": "Model1",
            "divisionTopologyId": "25f38274-7158-436d-9356-f5c917ee44c9",
            "revisions": [
                1
            ],
            "visible": false,
            "opaque": false,
            "opacity": 0
        },
        {
            "id": "30114b52-bc05-47c1-80b5-c7d5485d5840",
            "name": "ID_FinishModel",
            "divisionId": "b539790e-2ffc-43cd-9582-b4aa27b36693",
            "divisionName": "Model1",
            "divisionTopologyId": "25f38274-7158-436d-9356-f5c917ee44c9",
            "revisions": [
                1,2
            ],
            "visible": false,
            "opaque": false,
            "opacity": 0
        },
        {
            "id": "09e623d4-1e12-4a77-b358-ea1d0b28e4a7",
            "name": "ID_RoomModel",
            "divisionId": "b539790e-2ffc-43cd-9582-b4aa27b36693",
            "divisionName": "Model1",
            "divisionTopologyId": "25f38274-7158-436d-9356-f5c917ee44c9",
            "revisions": [
                1
            ],
            "visible": false,
            "opaque": false,
            "opacity": 0
        }
    ],
    "rights": {
        "projectAdmin": true,
        "projectDelete": true,
        "projectEdit": true,
        "modelsCreate": true,
        "modelsViewAll": true
    },
    "id": "5cd37c77-d341-4ab2-9f0d-44467955b218"
}



Update the project


Resource: projects/<project_id>

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>

Examplehttps://api-stage.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e

JSON Structure

Name

Mandatory / Optional

Type

Description

idwill be ignoredstring (guid)Id of the project

name

mandatory

string

Name of the project

shortDescr

optional

string

Short description of the project

teamNamewill be ignoredstringName of the team to which the project belongs
teamSlugwill be ignoredstringSlug of the team to which the project belongs
hasWriteAccesswill be ignoredbooleanDon't use this property. This property is not deleted to support the older clients

created

will be ignored

string (date)

Creation date of the project

createdBywill be ignoredJSON objectDetails of the Bimplus user who has created the project
changedwill be ignoredstring(date)Modified date of the project
changedBywill be ignoredJSON objectDetails of the Bimplus user who has created the project
addressoptionalstringAddress of the project
modelCountwill be ignoredintNumber of models in this project
memberCountwill be ignoredintNumber of members in this project
topicCountwill be ignoredintNumber of topics in this project
attachmentCountwill be ignoredintNumber of attachments in this project
sizewill be ignoredintSize of the project in bytes
sizeInMBwill be ignoredstringSize of the project in MB
disciplineswill be ignoredJSON objectDisciplines found under this project
rightswill be ignoredJSON objectThe rights the user has for this project



 PUT


 Update properties of the specified project.



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json


{
    "name" : "Your Awesome Building updated",
	"shortDescr" : "Example for updating a project",
    "address": "Changed address",
}




Status: 200 OK


{
    "name" : "Your Awesome Building updated",
	"shortDescr" : "Example for updating a project",
    "teamName": "Best Company",
    "teamSlug": "best-company",
    "hasWriteAccess" : true,
    "thumbnail": null,
    "created": "2013-06-01T10:05:00",
    "createdby" : {
        "id": "7c555899-5a5f-44d1-930e-284930678bed",
        "email" : "testuser@bimplus.net"
    },
    "changed": "2013-06-02T10:04:15",
    "changedby" : {
        "id": "7c555899-5a5f-44d1-930e-284930678bed",
        "email" : "testuser@bimplus.net"
    },
    "address" : "Changed address",
    "modelCount": 0,
    "memberCount": 1,
    "topicCount": 0,
    "attachmentCount": 0,
    "size": 0,
    "sizeMB": "0",
    "id": "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e"
}



Create an issue in the project with a view

See Create Issue in Topic Service

Get the Issue List from the project


Resource: projects/<project_id>issues 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/issues

Examplehttps://api-stage.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e/issues


Optional query parameters

NameTypeDefault valueDescription
shortinfobooleanfalseWhen query parameter "shortinfo=true" is defined, the API function returns only classes of all tasks metric.



 GET


Get list of issues of given project.

Response depends on the user rights :

  • for project admin or account owner - returns all existing issues in the project
  • for project editor or viewer - returns only issues where the user is author or responsible ( although still exist the possibility to get all the issues, by using query parameter "?showAll=true" )



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json

This call also supports filtering and paging 




Status: 200 OK


[
 {
  "name": "Wall info wrong",
  "author": {
    "id": "7c555899-5a5f-44d1-930e-284930678bed",
    "email": "testuser1@allplan.com",
    "firstname": "Test",
    "lastname": "User1",
    "company": "Allplan Bratislava",
    "fullname": "Test User1"
  },
  "responsible": {
    "id": "0132ecbe-2ac5-4ae1-945d-d38fc3bc1e82",
    "email": "testuser1@allplan.com",
    "firstname": "Test",
    "lastname": "User2",
    "company": "Allplan Bratislava",
    "fullname": "Test User2"
  },
  "scene": null,
  "attachmentsCount": 0,
  "pinsCount": 0,
  "commentsCount": 0,
  "hyperlinksCount": 0,
  "shortId": 4,
  "projectId": "de87fc4d-cb5d-44ba-b2ea-1d96ac564a8a",
  "description": "This wall is wrong",
  "status": "Open",
  "createdAt": "2016-02-15T08:12:49.9831726+01:00",
  "modifiedAt": "2016-02-15T08:12:49.9831726+01:00",
  "dueDate": null,
  "solution": "MySolution",
  "type": "Problem",
  "classification": "Problems",
  "priority": "High",
  "cc": [
    "abc@bimplus.net"
  ],
  "id": "01b5768a-bd19-4049-b72e-b44485514ef8"
 },
 ...
]



Delete all the issues from the project


Resource: projects/<project_id>issues 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/issues

Examplehttps://api-stage.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e/issues


 DELETE


 Delete all the issues belonging to a specified project.



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json




Status: 200 OK



Create a new attachment in the project


Resource: projects/<project_id>/attachments 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/attachments

Examplehttps://api-stage.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e/attachments


 POST


 Creates a new attachment in a project.


Bimplus supports creating and updating of attachments using requests with multipart/form-data content type. By standard, multipart/form-data content consists of several parts, each part containing a file data.

But Bimplus supports only one file sent per call, so only first part of multipart form data content is used, the rest are ignored. The parts are separated by boundaries, each part contains content headers and content data.

Examples :

Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: multipart/form-data; boundary=----MyFormBoundarytlTJWL8i2mvYwGPW


------MyFormBoundarytlTJWL8i2mvYwGPW
Content-Disposition: form-data; name="TestFile"; filename="TestFile.xml"; classification="Report"; tag="ABCDE"
Content-Type: application/xml
 
**** Here are file data  ******
 
------MyFormBoundarytlTJWL8i2mvYwGPW

Where :

  • name and filename are mandatory saved as attachment's "name" and "filename" properties
  • classification and tag are optional, and are saved as attachment's properties "tag" and "classification"
  • Content-Type is mandatory and is saved as attachment's property "type"



Status: 201 Created


{

     "objectIds": [
         "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e"
     ],
     "fileName": "TestFile.xml",
     "type": "application/xml",
     "size": 211258,
     "createdAt": "2013-12-11T10:47:39",
     "creator": {
         "id": "e18941f4-a809-2d01-d27d-cd251f2b6cb6",
         "email": "test@bimplus.net",
         "firstname": "First Name",
         "lastname": "Second Name",
         "company": "Best-Company",
         "fullname": "First Name Second Name",
         "displayname": "Best-Company",
     },
     "changed" : "2013-12-11T10:47:39",
     "changedBy" : {
         "id": "e18941f4-a809-2d01-d27d-cd251f2b6cb6",
         "email": "test@bimplus.net",
     },
     "hash": "68a59c1f-1914-43b8-92fc-1cee4ad1c90c",
     "attachmentType" : "Document",
     "classification" : "Report",
     "tag" : "ABCDE",
     "sizeMB" : "0,21",
     "version" : "1",
     "relatedId" : "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e",
     "rights" : {
         "update" : true,
         "share" : true,
         "delete" : true,
         "download" : true
     },
     "id": "6cea110a-88f4-43ac-9a00-ebaf677be333"
}



Create a new attachment in the project using chunked upload


Resource: projects/<project_id>/attachments/chunked 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/attachments/chunked

Examplehttps://api-stage.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e/attachments/chunked


 PUT


Creates a new attachment in a project. The upload can be performed in chunks that allow it to exceed the 2GB file limit. After uploading the 1st chunk the file gets locked until finishing upload of the last chunk based on the 'Content-Range' header.


Bimplus supports creating and updating attachments in chunks.

After the upload of the first chunk, the response contains a file ID, that should be passed as 'Chunk-FileId' header in upcoming requests.


Examples :

Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Range: bytes 0-20971520/22471573
Chunk-FileId: 6cea110a-88f4-43ac-9a00-ebaf677be333 
Content-Disposition: inline; name="Document"; filename="file.pdf"

Where :

  • name and filename are mandatory saved as Content-Disposition "name" and "filename" properties
  • classification and tag are optional, and are saved as attachment's properties "tag" and "classification"
  • Content-Type is mandatory and is saved as attachment's property "type"



Status: 201 Created


{

     "objectIds": [
         "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e"
     ],
     "fileName": "TestFile.xml",
     "type": "application/xml",
     "size": 211258,
     "createdAt": "2013-12-11T10:47:39",
     "creator": {
         "id": "e18941f4-a809-2d01-d27d-cd251f2b6cb6",
         "email": "test@bimplus.net",
         "firstname": "First Name",
         "lastname": "Second Name",
         "company": "Best-Company",
         "fullname": "First Name Second Name",
         "displayname": "Best-Company",
     },
     "changed" : "2013-12-11T10:47:39",
     "changedBy" : {
         "id": "e18941f4-a809-2d01-d27d-cd251f2b6cb6",
         "email": "test@bimplus.net",
     },
     "hash": "68a59c1f-1914-43b8-92fc-1cee4ad1c90c",
     "attachmentType" : "Document",
     "classification" : "Report",
     "tag" : "ABCDE",
     "sizeMB" : "0,21",
     "version" : "1",
     "relatedId" : "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e",
     "rights" : {
         "update" : true,
         "share" : true,
         "delete" : true,
         "download" : true
     },
     "id": "6cea110a-88f4-43ac-9a00-ebaf677be333"
}




Get the Attachment List from the project


Resource: projects/<project_id>/attachments 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/attachments

Examplehttps://api-stage.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e/attachments


 GET


 Get all the attachments belonging to a specified project. The normal attachment GET call (i.e projects/<project_id>/attachments) returns all the attachments inside a project i.e it iterates through all the objects inside a project and returns everything. If we want to retrieve the only the attachments that belongs to the project directly, then use ?projectOnly=true filter (i.e projects/<project_id>/attachments?projectOnly=true)

This call also supports filtering and paging 



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json




Status: 200 OK


[    
   {

     "objectIds": [
         "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e"
     ],
     "fileName": "TestFile.xml",
     "type": "application/xml",
     "size": 211258,
     "createdAt": "2013-12-11T10:47:39",
     "creator": {
         "id": "e18941f4-a809-2d01-d27d-cd251f2b6cb6",
         "email": "test@bimplus.net",
         "firstname": "First Name",
         "lastname": "Second Name",
         "company": "Best-Company",
         "fullname": "First Name Second Name",
         "displayname": "Best-Company",
     },
     "changed" : "2013-12-11T10:47:39",
     "changedBy" : {
         "id": "e18941f4-a809-2d01-d27d-cd251f2b6cb6",
         "email": "test@bimplus.net",
     },
     "hash": "68a59c1f-1914-43b8-92fc-1cee4ad1c90c",
     "attachmentType" : "Document",
     "classification" : "Report",
     "tag" : "ABCDE",
     "sizeMB" : "0,21",
     "version" : "1",
     "relatedId" : "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e",
     "rights" : {
         "update" : true,
         "share" : true,
         "delete" : true,
         "download" : true
     },
     "id": "6cea110a-88f4-43ac-9a00-ebaf677be333"
  },
  ...
]



Delete all the attachments from the project


Resource: projects/<project_id>/attachments 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/attachments

Examplehttps://api-stage.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e/attachments


 DELETE


 Delete all the attachments belonging to a specified project.



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json




Status: 200 OK




Get the project topology tree


Resource: projects/<project_id>/topology

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/topology

Examplehttps://api-stage.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e/topology


 GET


 Get the project topology tree.



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json




Status: 200 OK


{
    "parent": null,
    "name": My Project,
    "type": "Project",
    "children": [
        {
            "ifcId": "1o1vYcpcH5KRRKl5voLOXN",
            "ifcType": "IfcBuilding",
            "parent": "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e",
            "name": null,
            "type": "ID_TopologyDivision",
            "children": [],
            "id": "195db084-3715-4ebc-b164-3ee47a495b2e"
        }
    ],
    "id": "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e"
}



Get the spot list from the project


Resource: projects/<project_id>/pins 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/pins

Examplehttps://api-stage.bimplus.net/v2/bimplus/projects/586b02be-43b8-4e27-b698-e067e85e38e2/pins


 GET


 Get the spot list from the project



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json




Status: 200 OK


[
    {
        "issueId": "5eac4d92-c65b-49c8-927c-9f255879a5c2",
        "objectId": "442af981-4175-4f1d-90f0-ef1c8641f0cb",
        "topologyNodeId": "4be5ffd3-1e5e-42a7-9844-23b55fb39253",
        "position": {
            "x": 78696.44,
            "y": 9652.251,
            "z": 580
        },
        "normalVector": {
            "x": 0,
            "y": 0,
            "z": 1
        },
        "createdAt": "2014-05-09T12:17:18",
        "id": "3ba43939-5805-4aac-b7a5-8cf3b5833ac3"
    },
    {
        "issueId": "5333bb42-2cb9-4f11-afd8-120c79edef37",
        "objectId": "ae1a139a-1e13-491f-b6d8-a46f699e295e",
        "topologyNodeId": "37a26e8b-566e-4d6e-8ab2-f35a715e83e2",
        "position": {
            "x": 41677.4336,
            "y": 10095.9512,
            "z": -9020
        },
        "normalVector": {
            "x": 0,
            "y": 0,
            "z": 1
        },
        "createdAt": "2014-05-09T12:17:33",
        "id": "fa9acf26-efdf-4297-80b5-2422bbf6e35a"
    },
    {
        "issueId": "5eac4d92-c65b-49c8-927c-9f255879a5c2",
        "objectId": "effc5f9f-dcae-4e5f-9a67-189d4a285612",
        "topologyNodeId": "4be5ffd3-1e5e-42a7-9844-23b55fb39253",
        "position": {
            "x": -440,
            "y": 10767.11,
            "z": -8243.917
        },
        "normalVector": {
            "x": -1,
            "y": 0,
            "z": 0
        },
        "createdAt": "2014-05-27T08:56:46",
        "id": "a014fcf3-c72e-4def-bc41-58b349b31591"
    },
    {
        "issueId": "5333bb42-2cb9-4f11-afd8-120c79edef37",
        "objectId": "367af808-de74-41b4-a3fb-1bfb50559da3",
        "topologyNodeId": "9fc99e93-2f33-4247-b3a4-2a6658a9b750",
        "position": {
            "x": 22525.0254,
            "y": 10334.1377,
            "z": -9172
        },
        "normalVector": {
            "x": 0,
            "y": 0,
            "z": 1
        },
        "createdAt": "2014-05-21T13:34:07",
        "id": "2b693990-a611-4b05-9efd-7485a9aeebbb"
    },
    {
        "issueId": "5eac4d92-c65b-49c8-927c-9f255879a5c2",
        "objectId": "83821c97-0020-480e-b863-9981df590c0a",
        "topologyNodeId": "aa7e1b6f-7324-459b-a114-9833806f89ed",
        "position": {
            "x": 664.999939,
            "y": 7197.733,
            "z": -58535.82
        },
        "normalVector": {
            "x": -1,
            "y": 0,
            "z": 0
        },
        "createdAt": "2014-05-27T09:18:17",
        "id": "f2a9c63f-2514-4c1f-be78-758a984b5430"
    }
]



Get the project disciplines


Resource: projects/<project_id>/disciplines 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/disciplines

Examplehttps://api-stage.bimplus.net/v2/bimplus/projects/586b02be-43b8-4e27-b698-e067e85e38e2/disciplines


 GET


 Get the layers of a project.



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json




Status: 200 OK


[
    {
        "id": "0f106af0-a919-44c5-b211-15bd5ef620b6",
        "name": "ID_BuildingModel",
        "divisionId": "ac21b9a1-8853-4658-9fbf-0cf62340bd18",
        "divisionName": "Model 1",
        "divisionTopologyId": "60c8362a-eb91-412d-ac67-c5d787bf36cb",
        "revisions": [
            1
        ],
        "visible": false,
        "opaque": false,
        "opacity": 0
    },
    {
        "id": "63b069d2-81df-4418-91de-8a954fa12924",
        "name": "ID_DesignModel_Timber",
        "divisionId": "ac21b9a1-8853-4658-9fbf-0cf62340bd18",
        "divisionName": "Model 1",
        "divisionTopologyId": "60c8362a-eb91-412d-ac67-c5d787bf36cb",
        "revisions": [
            1,2
        ],
        "visible": false,
        "opaque": false,
        "opacity": 0
    },
    {
        "id": "30114b52-bc05-47c1-80b5-c7d5485d5840",
        "name": "ID_FinishModel",
        "divisionId": "ac21b9a1-8853-4658-9fbf-0cf62340bd18",
        "divisionName": "Model 1",
        "divisionTopologyId": "60c8362a-eb91-412d-ac67-c5d787bf36cb",
        "revisions": [
            1,2
        ],
        "visible": false,
        "opaque": false,
        "opacity": 0
    },
    {
        "id": "09e623d4-1e12-4a77-b358-ea1d0b28e4a7",
        "name": "ID_RoomModel",
        "divisionId": "ac21b9a1-8853-4658-9fbf-0cf62340bd18",
        "divisionName": "Model 1",
        "divisionTopologyId": "60c8362a-eb91-412d-ac67-c5d787bf36cb",
        "revisions": [
            1
        ],
        "visible": false,
        "opaque": false,
        "opacity": 0
    }
]



Get material surfaces of the project


Resource: projects/<project_id>/materialsurfaces

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/materialsurfaces

Examplehttps://api-stage.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e/materialsurfaces


 GET


 Get all material surfaces used in the project



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json




Status: 200 OK


[{
    "diffuseColor":8421504,
    "transparency":0,
    "argb":-8355712,
    "reflection":0,
    "refraction":1,
    "scaleX":0,
    "scaleY":0,
    "translateX":0,
    "translateY":0,
    "rotation":0,
    "diffuseReflectivity":100,
    "colorKeyTolerance":0,
    "multiToneFactor":0,
    "colorMixing":false,
    "alphaFromTexture":true,
    "useColorKey":false,
    "repeat":true,
    "metric":true,
    "emission":0,
    "bumpAmplitude":0,
    "roughness":0,
    "colorKey":0,
    "textures":[{
        "objectIds":["cdbd7fbc-0d02-4be5-adb3-04b7f0b2a638"
        ],
        "fileName":"diffuse-texture-image.jpg",
        "type":"image/jpeg",
        "size":31590,
        "createdAt":"2016-12-06T18:44:57.143",
        "creator":{
          "id":"78a94d0e-0d58-3f85-aafa-1e631c51b5d2",
          "email":null,
          "firstname":null,
          "lastname":null,
          "company":null,
          "fullname":"",
          "displayname":null
        },
        "changed":"2016-12-06T18:44:57.143",
        "changedBy":{
          "id":"78a94d0e-0d58-3f85-aafa-1e631c51b5d2",
          "email":null
        },
        "hash":"de78a77e-8bc7-4ffa-b4ac-a201b100a1ed",
        "attachmentType":"AllplanResource",
        "tag":"eDIFFUSE1|eDIFFUSE2|eDIFFUSE3|eDIFFUSE4",
        "sizeMB":"0,03",
        "version":1,
        "relatedId":"cdbd7fbc-0d02-4be5-adb3-04b7f0b2a638",
        "id":"1eeec814-bb81-4876-a608-fc28f864984f"
      }
    ],
    "id":"cdbd7fbc-0d02-4be5-adb3-04b7f0b2a638"
  },
  ...
]




Create / Upload a thumbnail to the project


Resource: projects/<project_id>/thumbnail

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/thumbnail

Examplehttps://api-stage.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e/thumbnail


 POST


 Creates or uploads a thumbnail to the project.


Headers and content are the same as for Create attachment



Status: 201 Created


{
  fileName: "MyThumbnail.jpg"
  type: "image/jpeg"
  size: 5262
  id: "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e"
}



Download the thumbnail


Resource: thumbnail/<thumbnail_id>

URLhttps://api-stage.bimplus.net/v2/<team_slug>/thumbnail/<thumbnail_id>

Examplehttps://api-stage.bimplus.net/v2/bimplus/thumbnail/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e


 GET


 Downloads the thumbnail.



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088




Status: 200 OK

Response content type is the same as is the "type" of the thumbnail, e.g. "image/jpeg"


Get the structure list from a project


Resource: structures/<structure_id> 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/structures

Example:https://api-stage.bimplus.net/v2/bimplus/projects/179439d6-df16-41cc-bd2c-74d05b7995d5/structures


 GET


 Get the structure list from a project



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json




Status: 200 OK


[
    {
        "name": "TestStructure",
        "description": "FullLifeCycleTest",
        "type": "CostStructure",
        "nr": 1,
        "color": 0,
        "id": "179439d6-df16-41cc-bd2c-74d05b7995d5"
    },
    {
        "name": "TestStructure2",
        "description": "Another Structure",
        "type": "SpecificationStructure",
        "nr": 2,
        "color": 0,
        "id": "279439d6-df16-41cc-bd2c-74d05b7995d5"
    }
]



Delete all the structures from a project


Resource: projects/<project_id>/structures

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/structures

Example:https://api-stage.bimplus.net/v2/bimplus/projects/db540336-47a3-426e-b3bf-1e532bfac8ea/structures


 DELETE


 Deletes all the structures from a specified project



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json




Status: 200 OK



Get the topology of all structures belonging to a project


Resource: structures/<project_id>/topology 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/structures/<project_id>/topology

Examplehttps://api-stage.bimplus.net/v2/bimplus/structures/db540336-47a3-426e-b3bf-1e532bfac8ea>/topology


 GET


 Get the topology of all structures belonging to a specified project



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json




Status: 200 OK


{
    "parent": null,
    "name": "Test for Structure",
    "type": "ID_Project",
    "children": [
        {
            "parent": "622272da-f1ff-45ab-a3f0-c8f1255c80e8",
            "name": "TestStructure",
            "type": "Structure",
            "children": [
                {
                    "parent": "179439d6-df16-41cc-bd2c-74d05b7995d5",
                    "name": "Node 1",
                    "type": "Structure",
                    "children": [
                        {
                            "parent": "adf506ae-3628-4501-9af1-22bcf27e4ab4",
                            "name": "WallConnection",
                            "type": "StructureElement",
                            "children": [
                                {
                                    "parent": "35b986c2-e9cd-482e-9281-6000671a49f0",
                                    "name": "Wall-005",
                                    "type": "ID_ArchWall",
                                    "children": [],
                                    "id": "df4a81d6-42fb-4187-bbce-82a2fc093b2f"
                                }
                            ],
                            "id": "35b986c2-e9cd-482e-9281-6000671a49f0"
                        }
                    ],
                    "id": "adf506ae-3628-4501-9af1-22bcf27e4ab4"
                }
            ],
            "id": "179439d6-df16-41cc-bd2c-74d05b7995d5"
        }
    ],
    "id": "622272da-f1ff-45ab-a3f0-c8f1255c80e8"
}



Get all the comments, hyperlinks from the project


Resource: comments, hyperlinks

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/comments OR https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/hyperlinks

Examplehttps://api-stage.bimplus.net/v2/bimplus/projects/db540336-47a3-426e-b3bf-1e532bfac8ea>/comments OR https://api-stage.bimplus.net/v2/bimplus/projects/db540336-47a3-426e-b3bf-1e532bfac8ea>/hyperlinks


 GET


 Get all the comments, hyperlinks from the project



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json




Status: 200 OK


{
    "parent": null,
    "name": "Test for Structure",
    "type": "ID_Project",
    "children": [
        {
            "parent": "622272da-f1ff-45ab-a3f0-c8f1255c80e8",
            "name": "TestStructure",
            "type": "Structure",
            "children": [
                {
                    "parent": "179439d6-df16-41cc-bd2c-74d05b7995d5",
                    "name": "Node 1",
                    "type": "Structure",
                    "children": [
                        {
                            "parent": "adf506ae-3628-4501-9af1-22bcf27e4ab4",
                            "name": "WallConnection",
                            "type": "StructureElement",
                            "children": [
                                {
                                    "parent": "35b986c2-e9cd-482e-9281-6000671a49f0",
                                    "name": "Wall-005",
                                    "type": "ID_ArchWall",
                                    "children": [],
                                    "id": "df4a81d6-42fb-4187-bbce-82a2fc093b2f"
                                }
                            ],
                            "id": "35b986c2-e9cd-482e-9281-6000671a49f0"
                        }
                    ],
                    "id": "adf506ae-3628-4501-9af1-22bcf27e4ab4"
                }
            ],
            "id": "179439d6-df16-41cc-bd2c-74d05b7995d5"
        }
    ],
    "id": "622272da-f1ff-45ab-a3f0-c8f1255c80e8"
}



Delete the project


Resource: projects/<project_id> 

URLhttps://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>

Examplehttps://api-stage.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e


 DELETE


 Deletes a specified project.



Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json




Status: 200 OK



Get project actions rights


Resource: project-actions-rights 

URLhttps://api-stage.bimplus.net/v2/project-actions-rights


GET


Purpose of this API call is to get required project rights for a Bimplus action.
This is a static API call, meaning it's global for all the projects, and the response can only change after the deploy.

Returns list of pairs of :
- name of the action ( event )
- required right the user must have for a project, to be able to execute that action

Currently used project rights are:
- ProjectAdmin
- ProjectDelete
- ProjectEdit
- ProjectView
- ModelViewAll
- ModelCreate

Clients can use this API to automatically handle access to Bimplus actions according to the role the user have in the project, e.g. enable/disable action buttons, ...

And if Bimplus server will decide to change required project user rights for some action, this change will be reflected on the client automatically, without having to change the client's code.


Important note:

  • this call does not includes all the Bimplus actions, but mostly those related to project and issues : actions of projects, models, issues, attachments, comments, pins, slides, slideshows, bcf, ..




Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json




Status: 200 OK


[
  {
    "action": "UPDATE_PROJECT",
    "right": "ProjectEdit"
  },
  {
    "action": "DELETE_PROJECT",
    "right": "ProjectDelete"
  },
  {
    "action": "CREATE_MODEL",
    "right": "ModelCreate"
  },
  {
    "action": "UPDATE_MODEL",
    "right": "ProjectEdit"
  },
  {
    "action": "GET_MODEL",
    "right": "ProjectView"
  },
  {
    "action": "DELETE_MODEL",
    "right": "ProjectEdit"
  },
  {
    "action": "DOWNLOAD_MODEL",
    "right": "ProjectView"
  },
  {
    "action": "CREATE_ISSUE",
    "right": "ProjectEdit"
  },
  {
    "action": "GET_PROJECT_ISSUES",
    "right": "ProjectView"
  },
  {
    "action": "DELETE_PROJECT_ISSUES",
    "right": "ProjectAdmin"
  },
  {
    "action": "CREATE_COMMENT",
    "right": "ProjectEdit"
  },
  ...
]





Filtering and paging


Filtering and paging is implemented for following requests:


Paging

Using following query parameters :

 Examples :

 GET https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/attachments?page=1&pageSize=5&sortColumn=fileName&sortDirection=descending

 GET https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/issues?page=2&pageSize=10

 GET https://api-stage.bimplus.net/v2/<team_slug>/projects?sortColumn=name&sortDirection=ascending


Filtering :

Using a filter added as a query parameter. Filter has following format : ?filter=<property><operator><value>

For the "property" you may use any property of the requested resource, or even inner property, e.g. creator.Email

Supported operators are : "=", "!=", "<", ">", ">=", "<=" and "*"

It is also possible to combine expressions in filter using AND operator : ?filter=<property1><operator1><value1>%26<property2><operator2><value2>%26,,,

The %26 is just url encoding of '&' = AND. The encoding is required because otherwise it will be considered as another query parameter, and not part of a filter. Combination using OR is not supported


Examples :

 GET https://api-stage.bimplus.net/v2/<team_slug>/projects?filter=name=MyProject   - get project by name

 GET https://api-stage.bimplus.net/v2/<team_slug>/projects?filter=name=MyProject*   - get projects where name starts with "MyProject"

 GET https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/attachments?filter=size>500000  - get attachments with size greater then ...

 GET https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/attachments?filter=creator.email=myuser@allplan.com%26createdAt>2016-07-27T07:00:00 - get attachments created by the given user since the time