Project Service
- Create a new project
- Create copy of the source project
- Get the logged in user's project list
- Get the user's project list from a team
- Get the properties of the project
- Update the project
- Create an issue in the project with a view
- Get the issue list from the project
- Delete all the issues from the project
- Create a new attachment in the project
- Create a new attachment in the project using chunked upload
- Get the attachment list from the project
- Delete all the attachments from the project
- Get the project topology
- Get the project layers
- Get material surfaces of the project
- Get the spot list from the project
- Create / Upload a thumbnail to the project
- Download the thumbnail
- Get the structure list from the project
- Delete all the structures from the project
- Get the topology of all structures belonging to the project
- Get all the comments, hyperlinks from the project
- Delete the project
- Get project actions rights
- Filtering and paging
Project Service
A Project is basically a holder which contains building models.
Create a new project
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects
Example: https://api-stage.bimplus.net/v2/bimplus/projects
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
id | will be ignored | string (guid) | Id of the project |
name |
mandatory |
string |
Name of the project |
shortDescr |
optional |
string |
Short description of the project |
teamName | will be ignored | string | Name of the team to which the project belongs |
teamSlug | will be ignored | string | Slug of the team to which the project belongs |
hasWriteAccess | will be ignored | boolean | Don't use this property. This property is not deleted to support the older clients |
thumbnail | will be ignored | string | Direct download link to project thumbnail |
created |
will be ignored |
string (date) |
Creation date of the project |
createdBy | will be ignored | JSON object | Details of the Bimplus user who has created the project |
changed | will be ignored | string(date) | Modified date of the project |
changedBy | will be ignored | JSON object | Details of the Bimplus user who has created the project |
address | optional | string | Address of the project |
modelCount | will be ignored | int | Number of models in this project |
memberCount | will be ignored | int | Number of members in this project |
topicCount | will be ignored | int | Number of topics in this project |
attachmentCount | will be ignored | int | Number of attachments in this project |
size | will be ignored | int | Size of the project in bytes |
sizeInMB | will be ignored | string | Size of the project in MB |
disciplines | will be ignored | JSON object | Disciplines found under this project |
rights | will be ignored | JSON object | The rights the user has for this 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
URL: https://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 |
---|---|---|---|
id | mandatory | string(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
URL: https://api-stage.bimplus.net/v2/projects
Example: https://api-stage.bimplus.net/v2/projects
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
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects
Example: https://api-stage.bimplus.net/v2/bimplus/projects
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
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>
Example: https://api-stage.bimplus.net/v2/bimplus/projects/586b02be-43b8-4e27-b698-e067e85e38e2
Optional query parameters
Name
|
Type
|
Default value
|
Description
|
---|---|---|---|
disciplines | string (bool) | true | When query parameter "disciplines=false" is defined, the API will return project properties except "disciplines" project property. Otherwise if query parameter "disciplines" is true (this is default) or is missing the call will return all project properties. |
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
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>
Example: https://api-stage.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
id | will be ignored | string (guid) | Id of the project |
name |
mandatory |
string |
Name of the project |
shortDescr |
optional |
string |
Short description of the project |
teamName | will be ignored | string | Name of the team to which the project belongs |
teamSlug | will be ignored | string | Slug of the team to which the project belongs |
hasWriteAccess | will be ignored | boolean | Don'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 |
createdBy | will be ignored | JSON object | Details of the Bimplus user who has created the project |
changed | will be ignored | string(date) | Modified date of the project |
changedBy | will be ignored | JSON object | Details of the Bimplus user who has created the project |
address | optional | string | Address of the project |
modelCount | will be ignored | int | Number of models in this project |
memberCount | will be ignored | int | Number of members in this project |
topicCount | will be ignored | int | Number of topics in this project |
attachmentCount | will be ignored | int | Number of attachments in this project |
size | will be ignored | int | Size of the project in bytes |
sizeInMB | will be ignored | string | Size of the project in MB |
disciplines | will be ignored | JSON object | Disciplines found under this project |
rights | will be ignored | JSON object | The rights the user has for this 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
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/issues
Example: https://api-stage.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e/issues
Optional query parameters
Name | Type | Default value | Description |
---|---|---|---|
shortinfo | boolean | false | When query parameter "shortinfo=true" is defined, the API function returns only classes of all tasks metric. |
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
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/issues
Example: https://api-stage.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e/issues
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
Create a new attachment in the project
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/attachments
Example: https://api-stage.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e/attachments
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
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/attachments/chunked
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
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/attachments
Example: https://api-stage.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e/attachments
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
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/attachments
Example: https://api-stage.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e/attachments
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
Get the project topology tree
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/topology
Example: https://api-stage.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e/topology
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
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/pins
Example: https://api-stage.bimplus.net/v2/bimplus/projects/586b02be-43b8-4e27-b698-e067e85e38e2/pins
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
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/disciplines
Example: https://api-stage.bimplus.net/v2/bimplus/projects/586b02be-43b8-4e27-b698-e067e85e38e2/disciplines
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
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/materialsurfaces
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
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/thumbnail
Example: https://api-stage.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e/thumbnail
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
URL: https://api-stage.bimplus.net/v2/<team_slug>/thumbnail/<thumbnail_id>
Example: https://api-stage.bimplus.net/v2/bimplus/thumbnail/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e
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
URL: https://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
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
URL: https://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
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
Get the topology of all structures belonging to a project
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<project_id>/topology
Example: https://api-stage.bimplus.net/v2/bimplus/structures/db540336-47a3-426e-b3bf-1e532bfac8ea>/topology
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
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/comments OR https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/hyperlinks
Example: https://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
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
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>
Example: https://api-stage.bimplus.net/v2/bimplus/projects/0d2ce2cc-3588-45d6-a59a-f6b89ebed34e
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
Get project actions rights
URL: https://api-stage.bimplus.net/v2/project-actions-rights
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:
- get list of projects
- get project attachments
- get project issues ( only paging, not filtering )
Paging
Using following query parameters :
- page - requested number of page
- pageSize - size of page
- sortColumn - name of the column ( property ) by which the list is sorted
- sortDirection - asceding or descending
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