# Design API Overview

### Creating Trusses

Projects are the top-level containers for layouts and trusses, which means you need to create a project before you can start creating layouts or trusses.

Once you create a project there are three ways to start designing trusses:

* Layout
  * Define a 3D layout (roof and/or floor) and place trusses within the layout
  * Tutorials
    * ["Create layout" tutorial](/api/tutorials/layout-sample-app.md)
  * Samples
    * [LayoutConsoleApp](https://github.com/ParagonTruss/ParagonApiDotnetSamples/tree/main/LayoutConsoleApp) (.NET)
    * [create-gable-roof](https://github.com/ParagonTruss/paragon-api-node-samples/blob/main/create-gable-roof.ts) (Node.js)
    * [create-cross-gable-roof](https://github.com/ParagonTruss/paragon-api-node-samples/blob/main/create-cross-gable-roof.ts) (Node.js)
  * Reference
    * [Layouts](https://designserver.paragontruss.com/api-docs/#tag/layouts)
* Single component insertion
  * Generate a truss based its 2D profile (for pitched chord roof trusses) or its features (for parallel chord trusses)
  * Tutorials
    * [Getting Started with .NET](/api/quickstarts/getting-started-with-.net.md)
    * [Getting Started with REST](/api/quickstarts/getting-started-with-rest.md)
  * Samples
    * [create-profile-trusses](https://github.com/ParagonTruss/paragon-api-node-samples/blob/main/create-profile-trusses.ts) (Node.js)
  * Reference
    * [POST /projects/{guid}/createProfileTruss](https://designserver.paragontruss.com/api-docs/#tag/projects/POST/api/public/projects/{projectGuid}/createProfileTruss)
* File upload
  * Accepts common truss industry files
  * Reference
    * [POST /proejcts/{guid}/uploadFiles](https://designserver.paragontruss.com/api-docs/#tag/projects/POST/api/public/projects/{projectGuid}/uploadFiles)

### Analyzing Trusses

Once you've created a truss using one of the methods above, you're ready to analyze it. There are two options when analyzing trusses:

* Analyze
  * This will analyze the truss without making any modifications to the truss. This will not succeed on a newly created truss from layout or single component insertion, since plates are not added during creation of the truss. You will need to Upgrade and Analyze the truss in order to add plates.
  * Reference
    * [POST /trusses/{guid}/analyze](https://designserver.paragontruss.com/api-docs/#tag/trusses/POST/api/public/trusses/{guid}/analyze)
* Upgrade and Analyze
  * This will analyze the truss and make changes to the lumber material and plates in order to get the truss to pass.
  * Reference
    * [POST /trusses/{guid}/upgradeAndAnalyze](https://designserver.paragontruss.com/api-docs/#tag/trusses/POST/api/public/trusses/{guid}/upgradeAndAnalyze)

If successful, these routes will return an [AnalysisSet](https://designserver.paragontruss.com/api-docs/#model/analysisset) which contains information about the analysis of the truss.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.paragontruss.com/api/design-api-overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
