Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

 


Anchor
projectService
projectService

...

Deck of Cards
idbimCreateCopyProjectFromSourceProject


Card
labelUrl / Resource /Json

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.

 


Card
labelHttpMethod

POST


Card
labelDescription

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


Card
labelRequest


Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json


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



Card
labelResponse


Code Block
borderColorGreen
langxml
titleStatus
Status: 201 Created


Code Block
borderColorRed
langxml
titleJSON
{
    "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"
}



...

Deck of Cards
idbimGetProjectList


Card
defaulttrue
labelURL / Resource / JSON Structure
Resource: projects 

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

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


Card
labelHTTP Method
 GET


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


Card
labelRequest


Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json

 


This call also supports filtering and paging


Card
labelResponse


Code Block
borderColorGreen
langxml
titleStatus
Status: 200 OK


Code Block
borderColorRed
langxml
titleJSON
[
    {
        "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
        }
    }
]



...

Deck of Cards
idbimGetIssueListFromProject


Card
defaulttrue
labelURL / Resource / JSON Structure
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.



Card
labelHTTP Method
 GET


Card
labelDescription

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


Card
labelRequest


Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json

This call also supports filtering and paging  



Card
labelResponse


Code Block
borderColorGreen
langxml
titleStatus
Status: 200 OK


Code Block
borderColorRed
langxml
titleJSON
[
 {
  "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"
 },
 ...
]



...

Deck of Cards
idbimCreateAttachmentInProject


Card
defaulttrue
labelURL / Resource / JSON Structure
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


Card
labelHTTP Method
 POST


Card
labelDescription
 Creates a new attachment in a project.


Card
labelRequest

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, each part contains content headers and content data.

Examples :

Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: multipart/form-data; boundary=----MyFormBoundarytlTJWL8i2mvYwGPW


Code Block
titleContent
------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"


Card
labelResponse


Code Block
borderColorGreen
langxml
titleStatus
Status: 201 Created


Code Block
borderColorRed
langxml
titleJSON
{

     "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"
}



Anchor
createChunkedAttachment
createChunkedAttachment

Create a new attachment in the project using chunked upload
Deck of Cards
idbimCreateChunkedAttachmentInProject


Card
defaulttrue
labelURL / Resource / JSON Structure
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


Card
labelHTTP Method
 PUT


Card
labelDescription

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.


Card
labelRequest

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 :

Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-TypeRange: multipart/form-data; boundary=----MyFormBoundarytlTJWL8i2mvYwGPW
Code Block
titleContent
------MyFormBoundarytlTJWL8i2mvYwGPWbytes 0-20971520/22471573
Chunk-FileId: 6cea110a-88f4-43ac-9a00-ebaf677be333 
Content-Disposition: form-datainline; name="TestFileDocument"; filename="TestFile.xml"; classification="Report"; tag="ABCDE"
Content-Type: application/xml
 
**** Here are file data  ******
 
------MyFormBoundarytlTJWL8i2mvYwGPWfile.pdf"

Where :

  • name and filename are mandatory saved as attachment's 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"


Card
labelResponse


Code Block
borderColorGreen
langxml
titleStatus
Status: 201 Created


Code Block
borderColorRed
langxml
titleJSON
{

     "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"
}



...

Deck of Cards
idbimGetProjectMaterialSurfaces


Card
labelURL / Resource / JSON Structure

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


Card
labelHTTP Method
 GET


Card
labelDescription
 Get all material surfaces used in the project


Card
labelRequest


Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json



Card
labelResponse


Code Block
borderColorGreen
langxml
titleStatus
Status: 200 OK


Code Block
borderColorRed
langxml
titleJSON
[{
    "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"
  },
  ...
]

 




Anchor
createThumbnail
createThumbnail

...

Deck of Cards
idbimProjectActionsRights


Card
defaulttrue
labelURL / Resource / JSON Structure
Resource: project-actions-rights 

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


Card
labelHTTP Method
GET


Card
labelDescription

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, ..
 



Card
labelRequest


Code Block
borderColorGreen
langxml
titleHeaders
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088
Content-Type: application/json



Card
labelResponse


Code Block
borderColorGreen
langxml
titleStatus
Status: 200 OK


Code Block
borderColorRed
langxml
titleJSON
[
  {
    "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"
  },
  ...
]

...

 





Anchor
FilteringAndPaging
FilteringAndPaging

Filtering and paging

 


Filtering and paging is implemented for following requests:

...

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