Trendsic Platform Service

<back to all web services

PlanSetListRequest

Requires Authentication
The following routes are available for this service:
GET,OPTIONS/v1/projects/{ProjectID}/plansets
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 SheetPin:
    sheet_pin_i_d: int = 0
    sheet_i_d: int = 0
    entity_type: Optional[str] = None
    entity_i_d: Optional[int] = None
    entity_u_i_d: Optional[str] = None
    x: float = 0.0
    y: float = 0.0
    label: Optional[str] = None
    created_by: Optional[str] = None
    created_at: Optional[datetime.datetime] = None
    entity_no: Optional[str] = None
    entity_title: Optional[str] = None
    entity_status: Optional[str] = None
    inspection_u_i_d: Optional[str] = None
    sheet_number: Optional[str] = None
    sheet_title: Optional[str] = None
    plan_set_i_d: Optional[int] = None
    plan_set_u_i_d: Optional[str] = None
    plan_set_name: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Sheet:
    sheet_i_d: int = 0
    plan_set_i_d: int = 0
    plan_set_u_i_d: Optional[str] = None
    plan_set_name: Optional[str] = None
    project_i_d: int = 0
    page_index: int = 0
    attachment_id: Optional[str] = None
    version_no: int = 0
    sheet_number: Optional[str] = None
    sheet_key: Optional[str] = None
    title: Optional[str] = None
    discipline: Optional[str] = None
    revision: Optional[str] = None
    revision_date: Optional[datetime.datetime] = None
    width_pt: float = 0.0
    height_pt: float = 0.0
    thumb_key: Optional[str] = None
    thumb_url: Optional[str] = None
    thumb_hash: Optional[str] = None
    extract_source: Optional[str] = None
    confidence: Optional[float] = None
    change_kind: Optional[str] = None
    supersedes_sheet_i_d: Optional[int] = None
    is_current: bool = False
    pin_count: int = 0
    updated_by: Optional[str] = None
    updated_at: Optional[datetime.datetime] = None
    pins: List[SheetPin] = field(default_factory=list)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PlanSet:
    plan_set_i_d: int = 0
    plan_set_u_i_d: Optional[str] = None
    project_i_d: int = 0
    name: Optional[str] = None
    source: Optional[str] = None
    source_label: Optional[str] = None
    issued_date: Optional[datetime.datetime] = None
    attachment_id: Optional[str] = None
    attachment_name: Optional[str] = None
    file_size_in_k_b: Optional[float] = None
    version_no: int = 0
    status: Optional[str] = None
    progress: int = 0
    page_count: int = 0
    sheet_count: int = 0
    extract_mode: Optional[str] = None
    error_text: Optional[str] = None
    supersedes_plan_set_i_d: Optional[int] = None
    supersedes_name: Optional[str] = None
    is_current: bool = False
    created_by: Optional[str] = None
    created_at: Optional[datetime.datetime] = None
    processed_at: Optional[datetime.datetime] = None
    age_seconds: int = 0
    sheets: List[Sheet] = field(default_factory=list)
    headline: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PlanSetListResponse:
    response_status: Optional[ResponseStatus] = None
    plan_sets: List[PlanSet] = field(default_factory=list)
    current_sheet_count: int = 0
    needs_review_count: int = 0


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

Python PlanSetListRequest DTOs

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

HTTP + JSV

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

GET /v1/projects/{ProjectID}/plansets HTTP/1.1 
Host: api.dev.dynamics.trendsic.com 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	ResponseStatus: 
	{
		ErrorCode: String,
		Message: String,
		StackTrace: String,
		Errors: 
		[
			{
				ErrorCode: String,
				FieldName: String,
				Message: String,
				Meta: 
				{
					String: String
				}
			}
		],
		Meta: 
		{
			String: String
		}
	},
	PlanSets: 
	[
		{
			PlanSetID: 0,
			PlanSetUID: 00000000000000000000000000000000,
			ProjectID: 0,
			Name: String,
			Source: String,
			SourceLabel: String,
			IssuedDate: 0001-01-01,
			AttachmentId: 00000000000000000000000000000000,
			AttachmentName: String,
			FileSizeInKB: 0,
			VersionNo: 0,
			Status: String,
			Progress: 0,
			PageCount: 0,
			SheetCount: 0,
			ExtractMode: String,
			ErrorText: String,
			SupersedesPlanSetID: 0,
			SupersedesName: String,
			IsCurrent: False,
			CreatedBy: String,
			CreatedAt: 0001-01-01,
			ProcessedAt: 0001-01-01,
			AgeSeconds: 0,
			Sheets: 
			[
				{
					SheetID: 0,
					PlanSetID: 0,
					PlanSetUID: 00000000000000000000000000000000,
					PlanSetName: String,
					ProjectID: 0,
					PageIndex: 0,
					AttachmentId: 00000000000000000000000000000000,
					VersionNo: 0,
					SheetNumber: String,
					SheetKey: String,
					Title: String,
					Discipline: String,
					Revision: String,
					RevisionDate: 0001-01-01,
					WidthPt: 0,
					HeightPt: 0,
					ThumbKey: String,
					ThumbUrl: String,
					ThumbHash: String,
					ExtractSource: String,
					Confidence: 0,
					ChangeKind: String,
					SupersedesSheetID: 0,
					IsCurrent: False,
					PinCount: 0,
					UpdatedBy: String,
					UpdatedAt: 0001-01-01,
					Pins: 
					[
						{
							SheetPinID: 0,
							SheetID: 0,
							EntityType: String,
							EntityID: 0,
							EntityUID: 00000000000000000000000000000000,
							X: 0,
							Y: 0,
							Label: String,
							CreatedBy: String,
							CreatedAt: 0001-01-01,
							EntityNo: String,
							EntityTitle: String,
							EntityStatus: String,
							InspectionUID: 00000000000000000000000000000000,
							SheetNumber: String,
							SheetTitle: String,
							PlanSetID: 0,
							PlanSetUID: 00000000000000000000000000000000,
							PlanSetName: String
						}
					]
				}
			],
			Headline: String
		}
	],
	CurrentSheetCount: 0,
	NeedsReviewCount: 0
}