Topic Service
- Create issue
- Get details of the issue
- Get all the issue types
- Get details of the issue type
- Create a new pin for the issue
- Get all the pins of the issue
- Delete all the pins from the issue
- Create a new comment for the issue
- Get all the comments of the issue
- Create a new attachment for the issue
- Get the attachment list from the issue
- Delete all the attachments from the issue
- Working with hyperlinks belonging to an issue
- Update the issue
- Delete the issue
- Get rights for issue
Topic Service
Issues are problems or remarks which can be assigned to any project. Comments or attachments can be added to the issue. Please see the detailed structure of the issue in the Object Model
Create issue
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
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
shortId | will be ignored | number | Readable unique issue number (always starts with 1 for each project) |
projectId |
will be ignored |
string (guid) |
Id of the project |
name |
optional |
string |
Name of the issue |
description |
optional |
string |
Description of the issue |
author |
optional |
object |
Author of the issue |
responsible | optional | object | Responsible person for the issue |
responsibles | optional | object | List of responsible people for the issue, they have to be members of project |
status |
optional |
string |
Status of the issue. Should have one of the values: Open, Solved or Closed. Default value is Open. |
createdAt |
will be ignored |
string (date) |
Creation date of the issue |
dueDate |
optional |
string (date) |
The date in which the issue is planned to be finished |
type | optional | string | Type of the issues. Possible values : Problem, Remark, Task, Appointment, Document, Contact, Clash. Default values is Problem. |
solution |
optional |
string |
The proposed solution for the issue |
classification |
optional |
string |
The classification to which the issues belongs |
priority |
optional |
string |
The priority of the issue. Should have one of the values: Low, Medium or High |
tag | optional | string | custom classification |
modifiedAt | optional | string | Modified date of the issue |
scene | optional | Fixed template | Scene/View of this topic. The pre-defined template is present here |
cc | optional | array of string | List of emails, of users that will be additionally informed about changes in the issue. |
viewers | optional | object | List of viewer people for the issue, they have to be members of project |
clashId | optional | string ( guid ) | Id of the clash ( only if issue type = Clash ) |
attachmentsCount | will be ignored | int | Count of attachments attached to the issue |
pinsCount | will be ignored | int | Count of pins of the issue |
commentsCount | will be ignored | int | Count of comments to the issue |
hyperlinksCount | will be ignored | int | Count of hyperlinks attached to the issue |
published | optional false | string (bool) | Set issue as draft or published. When published is not defined is default set how published (published = true). |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "name" : "Wall info wrong", "description" : "This wall is wrong", "responsible" : { "id" : "0132ecbe-2ac5-4ae1-945d-d38fc3bc1e82" }, "responsibles" : [ {"id" : "07C38B65-423F-41C1-99E7-07B09C22C297"}, {"id" : "72EBC3C7-2492-4068-9A05-7A4D27555415"} ], "status" : "Open", "type" : "Problem", "solution" : "MySolution", "priority" : "High", "published": true, "tag" : "Wall problems", "classification" : "Problems", "cc" : [ "testuser@bimplus.net" ], "viewers" : [ {"id" : "29C9EC49-773F-4B80-9180-C634BCA1428C"}, {"id" : "2E256E70-3576-4CA6-860B-CCA813A08711"} ] }
Status: 201 Created
{ "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" }, "responsibles" : [ { "id":"07C38B65-423F-41C1-99E7-07B09C22C297", "email":"testuser3@allplan.com", "firstname":"Test", "lastname":"User3", "company":"Allplan Bratislava", "fullname":"Test User3" }, { "id":"72EBC3C7-2492-4068-9A05-7A4D27555415", "email":"testuser4@allplan.com", "firstname":"Test", "lastname":"User4", "company":"Allplan Bratislava", "fullname":"Test User4" } ], "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", "published": true, "cc": [ "abc@bimplus.net" ], "viewers" : [ { "id":"07C38B65-423F-41C1-99E7-07B09C22C297", "email":"testuser3@allplan.com", "firstname":"Test", "lastname":"User3", "company":"Allplan Bratislava", "fullname":"Test User3" }, { "id":"72EBC3C7-2492-4068-9A05-7A4D27555415", "email":"testuser4@allplan.com", "firstname":"Test", "lastname":"User4", "company":"Allplan Bratislava", "fullname":"Test User4" } ], "id": "01b5768a-bd19-4049-b72e-b44485514ef8" }
Get details of the issue
URL: https://api-stage.bimplus.net/v2/<team_slug>/issues/<issue_id>
Example: https://api-stage.bimplus.net/v2/bimplus/issues/8ead8bfe-ab23-4340-ac47-38181e83bff3
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
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" }, "responsibles" : [ { "id":"07C38B65-423F-41C1-99E7-07B09C22C297", "email":"testuser3@allplan.com", "firstname":"Test", "lastname":"User3", "company":"Allplan Bratislava", "fullname":"Test User3" }, { "id":"72EBC3C7-2492-4068-9A05-7A4D27555415", "email":"testuser4@allplan.com", "firstname":"Test", "lastname":"User4", "company":"Allplan Bratislava", "fullname":"Test User4" } ], "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", "published": true, "cc": [ "abc@bimplus.net" ], "viewers" : [ { "id":"07C38B65-423F-41C1-99E7-07B09C22C297", "email":"testuser3@allplan.com", "firstname":"Test", "lastname":"User3", "company":"Allplan Bratislava", "fullname":"Test User3" }, { "id":"72EBC3C7-2492-4068-9A05-7A4D27555415", "email":"testuser4@allplan.com", "firstname":"Test", "lastname":"User4", "company":"Allplan Bratislava", "fullname":"Test User4" } ], "id": "01b5768a-bd19-4049-b72e-b44485514ef8" }
Get all the issue types (Not implemented)
URL: https://api-stage.bimplus.net/v2/<team_slug>/issues/types
Example: https://api-stage.bimplus.net/v2/bimplus/issues/types
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
Get details of the issue type (Not implemented)
URL: https://api-stage.bimplus.net/v2/<team_slug>/issues/types/<type_id>
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
Create a new pin for the issue
URL: https://api-stage.bimplus.net/v2/<team_slug>/issues/<issue_id>/pins
Example: https://api-stage.bimplus.net/v2/bimplus/issues/8ead8bfe-ab23-4340-ac47-38181e83bff3/pins
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
issueId |
will be ignored |
string (guid) |
The id of the issue to which the pin is related |
objectId |
mandatory |
string (guid) |
The id of the object to which the pin is related |
topologyNodeId |
will be ignored |
string (guid) |
The id of the topology to which the pin is attached |
position |
optional |
object |
The position of the issue in the building (x,y,z co-ordinates) |
normalVector |
optional |
object |
The direction of the issue in the 3D space (x,y,z co-ordinates) |
createdAt |
will be ignored |
date |
Creation date of the pin |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "objectId": "7cf910cb-e357-43f6-aa3a-b45c26380f75", "position": { "x": "123.45", "y": "234.56", "z": "345.67" }, "normalVector": { "x": "0", "y": "1", "z": "2" } }
Status: 201 Created
{ "issueId": "8ead8bfe-ab23-4340-ac47-38181e83bff3", "objectId": "7cf910cb-e357-43f6-aa3a-b45c26380f75", "topologyNodeId": "387fa6cc-b6f9-4470-8c42-c07982aba660", "position": { "x": "123.45", "y": "234.56", "z": "345.67" }, "normalVector": { "x": "0", "y": "1", "z": "2" }, "createdAt": "2013-06-07T10:07:00+00:00", "id": "8836308d-f09f-4bb7-b6d2-354a2db205a6" }
Get all the pins of the issue
URL: https://api-stage.bimplus.net/v2/<team_slug>/issues/<issue_id>/pins
Example: https://api-stage.bimplus.net/v2/bimplus/issues/8ead8bfe-ab23-4340-ac47-38181e83bff3/pins
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
[ { "issueId": "8ead8bfe-ab23-4340-ac47-38181e83bff3", "objectId": "00000000-0000-0000-0000-000000000000", "topologyNodeId": "387fa6cc-b6f9-4470-8c42-c07982aba660", "position": { "x": 123.45, "y": 234.56, "z": 345.67 }, "normalVector": { "x": 0, "y": 1, "z": 2 }, "createdAt": "2013-06-07T10:07:00", "id": "8836308d-f09f-4bb7-b6d2-354a2db205a6" } ]
Delete all the pins from the issue
URL: https://api-stage.bimplus.net/v2/<team_slug>/issues/<issue_id>/pins
Example: https://api-stage.bimplus.net/v2/bimplus/issues/8ead8bfe-ab23-4340-ac47-38181e83bff3/pins
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
Create a new comment for the issue
Please note that you can also use the Bimplus Object Service for working with the comments belonging to an issue
URL: https://api-stage.bimplus.net/v2/<team_slug>/issues/<issue_id>/comments
Example: https://api-stage.bimplus.net/v2//issues/cb96a9b1-48c9-4d97-8c9e-262476c1c6b2/comments
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
issueId | will be ignored | string(guid) | The id of the issue |
text |
mandatory |
string |
The comment text |
createdAt |
will be ignored |
string (date) |
Creation date of the comment |
modifiedAt | will be ignored | string (date) | Modified date of the comment |
author |
will be ignored |
object |
The author of the comment |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "text": "The fire exit should be x:120, y: 120; z: 340" }
Status: 201 Created
{ "issueId": "cb96a9b1-48c9-4d97-8c9e-262476c1c6b2", "text": "The fire exit should be x:120, y: 120; z: 340", "createdAt": "2013-07-02T13:26:18.8932853+00:00", "author": { "id": "00000000-0000-0000-0000-000000000000", "email": "", "firstname": "Unknown", "lastname": "User", "company": "", "fullname": "Unknown User", "displayname": "Unknown User", "info": "", "gender": "", "phoneWork": "", "phoneHome": "", "fax": "", "mobile": "", "birthDate": "0000-00-00", "address": { "street": "", "streetNr": "", "zip": "", "city": "", "country": "" }, "preferedLanguage": null }, "id": "d258c905-c8af-4463-b0d8-ac09dbcfc255" }
Get all the comments of the issue
URL: https://api-stage.bimplus.net/v2/<team_slug>/issues/<issue_id>/comments
Example: https://api-stage.bimplus.net/v2//issues/cb96a9b1-48c9-4d97-8c9e-262476c1c6b2/comments
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
[ { "issueId": "cb96a9b1-48c9-4d97-8c9e-262476c1c6b2", "text": "The fire exit should be x:120, y: 120; z: 340", "createdAt": "2013-07-02T13:26:18+00:00", "modifiedAt": "2013-07-03T13:26:18+00:00", "author": { "id": "00000000-0000-0000-0000-000000000000", "email": "", "firstname": "Unknown", "lastname": "User", "company": "", "fullname": "Unknown User", "displayname": "Unknown User", "info": "", "gender": "", "phoneWork": "", "phoneHome": "", "fax": "", "mobile": "", "birthDate": "0000-00-00", "address": { "street": "", "streetNr": "", "zip": "", "city": "", "country": "" }, "preferedLanguage": null }, "id": "d258c905-c8af-4463-b0d8-ac09dbcfc255" } ]
Create a new attachment for the issue
Please note that you can also use the Bimplus Object Service for working with the attachments belonging to an issue
URL: https://api-stage.bimplus.net/v2/issues/<issue_id>/attachments
Example:https://api-stage.bimplus.net/v2/bimplus/issues/8ead8bfe-ab23-4340-ac47-38181e83bff3/attachments
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"
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 issue
URL: https://api-stage.bimplus.net/v2/<team_slug>/issues/<issue_id>/attachments
Example: https://api-stage.bimplus.net/v2/bimplus/issues/8ead8bfe-ab23-4340-ac47-38181e83bff3/attachments
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 issue
URL: https://api-stage.bimplus.net/v2/issues/<issue_id>/attachments
Example:https://api-stage.bimplus.net/v2/bimplus/issues/8ead8bfe-ab23-4340-ac47-38181e83bff3/attachments
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
Working with hyperlinks belonging to an issue
Please use the Bimplus Object Service for working with hyperlinks belonging to an issue
Update the issue
URL: https://api-stage.bimplus.net/v2/<team_slug>/issues/<issue_id>
Example: https://api-stage.bimplus.net/v2/bimplus/issues/8ead8bfe-ab23-4340-ac47-38181e83bff3
JSON Structure: see Create issue
Optional query parameters
Name | Type | Default value | Description |
---|---|---|---|
withoutscene | string (boolean) | false | if true return response body without scene |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "name" : "Wall info wrong", "description" : "This wall is wrong", "responsible" : { "id" : "0132ecbe-2ac5-4ae1-945d-d38fc3bc1e82" }, "status" : "Open", "type" : "Problem", "solution" : "MySolution", "priority" : "High", "published": true, "tag" : "Wall problems", "classification" : "Problems", "cc" : [ "testuser@bimplus.net" ] }
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", "published": true, "cc": [ "abc@bimplus.net" ], "id": "01b5768a-bd19-4049-b72e-b44485514ef8" }
Delete the issue
URL: https://api-stage.bimplus.net/v2/<team_slug>/issues/<issue_id or selection_id>
Example: https://api-stage.bimplus.net/v2/bimplus/issues/8ead8bfe-ab23-4340-ac47-38181e83bff3
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
Get rights for issue
URL: https://api-stage.bimplus.net/v2/<team_slug>/issues/<issue_id>/rights
Example: https://api-stage.bimplus.net/v2/bimplus/issues/8ead8bfe-ab23-4340-ac47-38181e83bff3/rights
This API that returns list of allowed actions and editable properties the user might use for the given issue.
Returns two lists :
- "editableProperties"
- list of issue properties the user is allowed to change ( the rest will be readonly )
- it can also return list of allowed enum values for a property - in the optional property variable "enumValue"
- name of the properties are identical with the property names of an issue json
- "actions"
- list of actions the user is allowed to execute for the issue
- the action names are identical with the actions returned in api call for project action rights
Clients can use this call to automatically handle user access to an issue, e.g. disabling/enabling buttons or edit/combo boxes. So once something will change on the Bimplus server, it will be automatically reflected on the client side, without need for code change.
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
{ "editableProperties": [ { "name": "name" }, { "name": "description" }, { "name": "priority", "enumValues": [ "Low", "Medium", "High" ] }, { "name": "responsible" }, { "name": "cc" }, { "name": "dueDate" }, { "name": "type", "enumValues": [ "Problem", "Remark", "Task", "Appointment", "Document", "Contact", "Clash" ] }, { "name": "solution" }, { "name": "scene" }, { "name": "status", "enumValues": [ "Open", "Solved", "Closed" ] } ], "actions": [ "GET_COMMENT", "GET_COMMENTS", "CREATE_COMMENT", "GET_ATTACHMENT", "GET_ATTACHMENTS", "DOWNLOAD_ATTACHMENT", "GET_HYPERLINK", "GET_HYPERLINKS", "GET_PIN", "GET_PINS", "CREATE_ATTACHMENT", "UPDATE_ATTACHMENT", "DELETE_ATTACHMENT", "CREATE_HYPERLINK", "UPDATE_HYPERLINK", "DELETE_HYPERLINK", "CREATE_PIN", "UPDATE_PIN", "DELETE_PIN", "DELETE_ISSUE", ... ] }