Structure Service
- Create a new structure in a project
- Get the structure details
- Create a sub-node under the structure
- Get the structure topology
- Assign an object to the latest/last structure node
- Assign additional objects to the latest structureElement node
- Remove assigned object from the latest structureElement node
- Copy the structure
- Update the structure
- Delete the structure
- Create new Variant in a project
- Get the variant details
- Get the list of existing variants inside a project
- Update the variant
- Delete the variant
- Copy source variant to target variant
Structure Service
A hierarchical tree structure(eg: cost structure) could be added and later retrieved from a project/object using the Structure service
Create a new structure in a project
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/structures
Example:https://api-stage.bimplus.net/v2/bimplus/projects/622272da-f1ff-45ab-a3f0-c8f1255c80e8/structures
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
parentId |
mandatory |
string(guid) |
Parent node id of the structure (for the first structure, projectId is the parentId) |
name |
mandatory |
string |
Name of the structure |
description |
optional |
string |
Description of the structure |
type | optional | string | Type of the structure (eg: costStructure, specificationStructure) |
nr | will be ignored | integer | The index of the structure |
color | optional | integer | Color of the structure |
id | will be ignored | string(guid) | Unique guid of the structure |
startDate | optional | string (date) | Start date ( depends on type of structure ) |
endDate | optional | string (date) | End date ( depends on type of structure ) |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "name": "TestStructure", "description": "FullLifeCycleTest", "type": "CostStructure" }
Status: 201 Created
{ "parentId": "622272da-f1ff-45ab-a3f0-c8f1255c80e8", "name": "TestStructure", "description": "FullLifeCycleTest", "type": "CostStructure", "nr": 1, "color": 0, "id": "179439d6-df16-41cc-bd2c-74d05b7995d5" }
Get the structure details
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<structure_id>
Example:https://api-stage.bimplus.net/v2/bimplus/structures/179439d6-df16-41cc-bd2c-74d05b7995d5
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" }
Create a sub-node under the structure
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<structure_id>
Example:https://api-stage.bimplus.net/v2/bimplus/structures/179439d6-df16-41cc-bd2c-74d05b7995d5
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
parentId |
mandatory |
string(guid) |
Parent node id of the structure (the id specified in the resource url) |
name |
mandatory |
string |
Name of the structure |
description |
optional |
string |
Description of the structure |
type | optional | string | Type of the structure (eg: costStructure, specificationStructure) |
nr | will be ignored | integer | The index of the structure |
color | optional | integer | Color of the structure |
id | will be ignored | string(guid) | Unique guid of the structure |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "name": "Node 1" }
Status: 201 Created
{ "parentId": "179439d6-df16-41cc-bd2c-74d05b7995d5", "name": "Node 1", "type": "TopologyStructure", "nr": 1, "color": 0, "id": "adf506ae-3628-4501-9af1-22bcf27e4ab4" }
Get the structure topology
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<structure_id>/topology
Example:https://api-stage.bimplus.net/v2/bimplus/structures/179439d6-df16-41cc-bd2c-74d05b7995d5/topology
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
{ "parent": null, "name": "TestStructure", "type": "Structure", "children": [ { "parent": "179439d6-df16-41cc-bd2c-74d05b7995d5", "name": "Node 1", "type": "Structure", "children": [], "id": "adf506ae-3628-4501-9af1-22bcf27e4ab4" } ], "id": "179439d6-df16-41cc-bd2c-74d05b7995d5" }
Assign an object to the latest/last structure node
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<structure_id>/assign/<object_id>
Example:https://api-stage.bimplus.net/v2/bimplus/structures/179439d6-df16-41cc-bd2c-74d05b7995d5/assign/df4a81d6-42fb-4187-bbce-82a2fc093b2f
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
color |
optional |
string(guid) |
The id of the last node to which an object will be assigned |
objectId |
will be ignored |
string(guid) |
The id of the object to whom a structure will be assigned |
name |
mandatory |
string |
The name of the structure-object connection |
nr | will be ignored | integer | The index of the structure-object connection |
id | will be ignored | string(guid) | Unique guid of the structure-object connection |
variantType | optional | string(guid) | Variant Type Id to whom the object will be assigned |
IfcGloballyUniqueId | optional | string | IFC globally unique ID |
Assign an object to the latest/last structure node
Note :
Works with two different inputs
- Object ID is present in the url - this object ID is used
- Object ID is not present, but content json contains IfcGloballyUniqueId - a corresponding Bimplus object is found and used as input object ID
- if this IFC id is not found -> return "404 Not Found", if present multiple times -> return "409 Conflict"
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "name": "WallConnection", "variantType" : "35b986c2-e9cd-482e-9281-6000671a49f0" }
Status: 201 Created
{ "structureId": "adf506ae-3628-4501-9af1-22bcf27e4ab4", "objectId": "df4a81d6-42fb-4187-bbce-82a2fc093b2f", "name": "WallConnection", "nr": 1, "id": "35b986c2-e9cd-482e-9281-6000671a49f0" }
Assign additional objects to the latest structureElement node
Resource: structures/<structureElement_id>/assign/<object_id>
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<structureElement_id>/assign/<object_id>
Example:https://api-stage.bimplus.net/v2/bimplus/structures/179439d6-df16-41cc-bd2c-74d05b7995d5/assign/df4a81d6-42fb-4187-bbce-82a2fc093b2f
POST
{ "structureId": "adf506ae-3628-4501-9af1-22bcf27e4ab4", "objectId": "df4a81d6-42fb-4187-bbce-82a2fc093b2f", "name": "WallConnection", "nr": 1, "id": "35b986c2-e9cd-482e-9281-6000671a49f0",
"variantType" : "35b986c2-e9cd-482e-9281-6000671a49f0"
}
Remove assigned object from the latest structureElement node
Resource: structures/<structureElement_id>/delete/<object_id>
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<structureElement_id>/delete/<object_id>
Example: https://api-stage.bimplus.net/v2/bimplus/structures/35b986c2-e9cd-482e-9281-6000671a49f0/delete/df4a81d6-42fb-4187-bbce-82a2fc093b2f
DELETE
HttpStatusCode.OK
Copy Structure
Resource: structures/<structure_id>/copy
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<structure_id>/copy
Example: https://api-stage.bimplus.net/v2/bimplus/structures/35b986c2-e9cd-482e-9281-6000671a49f0/copy
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
|
|
|
|
name |
mandatory |
string |
Name of the new structure |
|
|
|
|
type | optional | string | Type of the new structure (eg: costStructure, specificationStructure) |
nr | will be ignored | integer | The index of the new structure |
color | optional | integer | Color of the new structure |
id | will be ignored | string(guid) | Unique guid of the structure |
startDate | optional | string (date) | Start date ( depends on type of structure ) |
endDate | optional | string (date) | End date ( depends on type of structure ) |
POST
Update the structure
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<structure_id>
Example:https://api-stage.bimplus.net/v2/bimplus/structures/179439d6-df16-41cc-bd2c-74d05b7995d5
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
parentId |
optional |
string(guid) |
Parent node id of the structure (for the first structure, projectId is the parentId) |
name |
optional |
string |
Name of the structure |
description |
optional |
string |
Description of the structure |
type | optional | string | Type of the structure (eg: costStructure, specificationStructure) |
nr | optional | integer | The index of the structure |
color | optional | integer | Color of the structure |
id | will be ignored | string(guid) | Unique guid of the structure |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "name": "Updated Structure" }
Status: 200 OK
{ "parentId": "622272da-f1ff-45ab-a3f0-c8f1255c80e8", "name": "Updated Structure", "description": "FullLifeCycleTest", "type": "CostStructure", "nr": 1, "color": 0, "id": "179439d6-df16-41cc-bd2c-74d05b7995d5" }
Delete the structure
Resource: structures/<structure_id>
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<structure_id>
Example:https://api-stage.bimplus.net/v2/bimplus/structures/db540336-47a3-426e-b3bf-1e532bfac8ea
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
URL: https://api-stage.bimplus.net/v2/<team_slug>/structures/<structure_id>
Example:https://api-stage.bimplus.net/v2/bimplus/structures/179439d6-df16-41cc-bd2c-74d05b7995d5
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
parentId |
optional |
string(guid) |
Parent node id of the structure (for the first structure, projectId is the parentId) |
name |
optional |
string |
Name of the structure |
description |
optional |
string |
Description of the structure |
type | optional | string | Type of the structure (eg: costStructure, specificationStructure) |
nr | optional | integer | The index of the structure |
color | optional | integer | Color of the structure |
id | will be ignored | string(guid) | Unique guid of the structure |
Create a new variant in a project
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/variants
Example:https://api-stage.bimplus.net/v2/bimplus/projects/622272da-f1ff-45ab-a3f0-c8f1255c80e8/variants
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
name |
mandatory |
string |
Name of the variant |
description |
optional |
string |
Description of the variant |
id | will be ignored | string(guid) | Unique guid of the structure |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "name": "TestVariant", "description": "Description of the Test variant" }
Status: 201 Created
{ "name": "TestVariant", "description": "Description of the Test variant", "id": "733e429a-e232-4e5d-a41e-9bd50aa9763c" }
Get the variant details
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/variants/<variant_id>
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
{ "name": "TestVariant", "description": "Description of the Test variant", "id": "733e429a-e232-4e5d-a41e-9bd50aa9763c" }
Get the list of existing variants inside a project
Resource: projects/<project_id>/variants
URL: https://api-stage.bimplus.net/v2/<team_slug>/projects/<project_id>/variants
Example:https://api-stage.bimplus.net/v2/bimplus/projects/622272da-f1ff-45ab-a3f0-c8f1255c80e8/variants
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
[ { "name": "TestVariant1", "description": "Description of the Test variant 1", "id": "6dc03014-8601-49fd-bae9-ef5b185603b6" }, { "name": "TestVariant2", "description": "Description of the Test variant 2", "id": "4c1fda6b-7fd9-42a7-a4ae-88eababd3082" }, { "name": "TestVariant3", "description": "Description of the Test variant 3", "id": "f2cf9b21-c1bb-463d-bbee-a6fbfb5e8b3e" }, { "name": "TestVariant4", "description": "Description of the Test variant 4", "id": "733e429a-e232-4e5d-a41e-9bd50aa9763c" } ]
Update the variant
URL: https://api-stage.bimplus.net/v2/<team_slug>projects/<project_id>/variants/<variant_id>
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
name |
optional |
string |
Name of the variant |
description |
optional |
string |
Description of the variant |
id | will be ignored | string(guid) | Unique guid of the variant |
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "name": "Updated TestVariant4 name" "description": "Updated description of the TestVariant4" }
Status: 200 OK
{ "name": "Updated TestVariant4 name", "description": "Updated description of the TestVariant4", "id": "733e429a-e232-4e5d-a41e-9bd50aa9763c" }
Delete the variant
Resource: projects/<project_id>/variants/<variant_id>
URL: https://api-stage.bimplus.net/v2/<team_slug>projects/<project_id>/variants/<variant_id>
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
Status: 200 OK
Copy source variant to target variant
Resource: projects/<project_id>/variants/<targetvariant_id>/copyfrom
URL: https://api-stage.bimplus.net/v2/<team_slug>projects/<project_id>/variants/<targetvariant_id>/copyfrom
JSON Structure:
Name |
Mandatory / Optional |
Type |
Description |
---|---|---|---|
name |
will be ignored |
string |
Name of the variant |
description |
will be ignored |
string | Description of the variant |
id | mandatory | string(guid) | Unique guid of the source variant |
PUT
Updates the specified target variant with all structure element's assignments of elements from source variant.
Note:
In case when at least one element is already assigned in target variant and the same element is also present in source variant,
such api call will return Conflict response and nothing will be updated.
Authorization: BimPlus 9c1874a62c974dcfa75e0132c423a088 Content-Type: application/json
{ "name": "ignored variant name", "description": "ignored variant description of variant", "id": "f2cf9b21-c1bb-463d-bbee-a6fbfb5e8b3e" }
Status: 200 OK
{ "name": "Updated TestVariant4 name", "description": "Updated description of the TestVariant4", "id": "733e429a-e232-4e5d-a41e-9bd50aa9763c" }