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