Project Service
Project Service
A Project is basically a holder which contains building models.
Create a new project
Resource: projects
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 |
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"
}
{
"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. |
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"
}
{
"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
URL: https://api-stage.bimplus.net/v2/projects
Example: https://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
[
{
"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
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects
Example: https://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
[
{
"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
GET
Get all the project properties of a project using its id.
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
{
"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>
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 |
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",
}
{
"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
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
[
{
"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
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
DELETE
Delete all the issues belonging to a specified project.
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
Create a new attachment in the project
Resource: projects/<project_id>/attachments
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
POST
Creates a new attachment in a project.
Bimplus supports creating and updating of attachments only 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"
{
"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
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
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
[
{
"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
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
DELETE
Delete all the attachments belonging to a specified project.
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
Get the project topology tree
Resource: projects/<project_id>/topology
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
GET
Get the project topology tree.
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
{
"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
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
GET
Get the spot list from the project
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
[
{
"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
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
GET
Get the layers of a project.
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
[
{
"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
GET
Get all material surfaces used in the project
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
[{
"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
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
POST
Creates or uploads a thumbnail to the project.
{
fileName: "MyThumbnail.jpg"
type: "image/jpeg"
size: 5262
id: "0d2ce2cc-3588-45d6-a59a-f6b89ebed34e"
}
Download the thumbnail
Resource: thumbnail/<thumbnail_id>
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
GET
Downloads the thumbnail.
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
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>
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
GET
Get the structure list from a project
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
[
{
"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
DELETE
Deletes all the structures from a specified project
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
Get the topology of all structures belonging to a project
Resource: structures/<project_id>/topology
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
GET
Get the topology of all structures belonging to a specified project
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
{
"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>
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
DELETE
Deletes a specified project.
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json
Get 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
[
{
"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