Trendsic Platform Service

<back to all web services

BluebeamPreviewRequest

Requires Authentication
The following routes are available for this service:
POST,OPTIONS/v1/projects/{ProjectID}/bluebeam/import/preview
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BluebeamRow:
    row_no: int = 0
    subject: Optional[str] = None
    page_label: Optional[str] = None
    page_index: Optional[int] = None
    author: Optional[str] = None
    date: Optional[str] = None
    status: Optional[str] = None
    color: Optional[str] = None
    comments: Optional[str] = None
    label: Optional[str] = None
    layer: Optional[str] = None
    space: Optional[str] = None
    length: Optional[float] = None
    area: Optional[float] = None
    count: Optional[float] = None
    volume: Optional[float] = None
    measurement: Optional[str] = None
    x: Optional[float] = None
    y: Optional[float] = None
    width: Optional[float] = None
    height: Optional[float] = None
    extras: Dict[str, str] = field(default_factory=dict)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BluebeamMappedRow:
    row_no: int = 0
    target: Optional[str] = None
    title: Optional[str] = None
    description: Optional[str] = None
    area: Optional[str] = None
    trade: Optional[str] = None
    assigned_sub: Optional[str] = None
    priority: Optional[str] = None
    quantity: Optional[float] = None
    quantity_kind: Optional[str] = None
    unit: Optional[str] = None
    task_seq: Optional[int] = None
    reason: Optional[str] = None
    source: Optional[BluebeamRow] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BluebeamPreviewResponse:
    response_status: Optional[ResponseStatus] = None
    file_name: Optional[str] = None
    row_count: int = 0
    columns: List[str] = field(default_factory=list)
    rows: List[BluebeamMappedRow] = field(default_factory=list)
    punch_proposed: int = 0
    rfi_proposed: int = 0
    quantity_proposed: int = 0
    skip_proposed: int = 0


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BluebeamPreviewRequest:
    project_i_d: int = 0

Python BluebeamPreviewRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /v1/projects/{ProjectID}/bluebeam/import/preview HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: application/json
Content-Type: application/json
Content-Length: length

{"ProjectID":0}
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: length

{"ResponseStatus":{"ErrorCode":"String","Message":"String","StackTrace":"String","Errors":[{"ErrorCode":"String","FieldName":"String","Message":"String","Meta":{"String":"String"}}],"Meta":{"String":"String"}},"FileName":"String","RowCount":0,"Columns":["String"],"Rows":[{"RowNo":0,"Target":"String","Title":"String","Description":"String","Area":"String","Trade":"String","AssignedSub":"String","Priority":"String","Quantity":0,"QuantityKind":"String","Unit":"String","TaskSeq":0,"Reason":"String","Source":{"RowNo":0,"Subject":"String","PageLabel":"String","PageIndex":0,"Author":"String","Date":"String","Status":"String","Color":"String","Comments":"String","Label":"String","Layer":"String","Space":"String","Length":0,"Area":0,"Count":0,"Volume":0,"Measurement":"String","X":0,"Y":0,"Width":0,"Height":0,"Extras":{"String":"String"}}}],"PunchProposed":0,"RfiProposed":0,"QuantityProposed":0,"SkipProposed":0}