Working with Models and Projects
Reading time: ~5 minutes | Level: Beginner Prerequisites: Walkthrough 2: SDCStudio Overview
What You'll Learn
- How projects organize your work in SDCStudio
- How to create a model using the Model Wizard
- The model lifecycle from Draft to Published
- Versioning strategies for evolving models
- Tips for organizing a multi-model project
Projects
What Projects Are

A project is a top-level container that groups related data models, components, data sources, and clusters. Use projects to organize by:
- Domain: "Healthcare Patient Records", "E-Commerce Orders"
- Department: "Finance Data Models", "HR Analytics"
- Initiative: "Q1 Integration Project", "Data Warehouse Migration"
Each project is public or private, shown as a badge in the list. Public projects, including the public libraries (Default, NIEM, FHIR, NIH_CDE and fourteen more), are curated; there is no user toggle. Their published components can be copied into your own project or referenced from it.
Creating a Project
Your account already has one project, created with it: named after you, private, and set as your default. You can build in it, rename it on its page, or create another to keep this work separate.

New accounts fund the wallet with at least $10 (10,000 credits) at /app/welcome before anything else in the app opens; the public catalog API needs no account.
- On the dashboard, click New Project (or open Projects at
/app/projectsand click New Project) - Fill in:
- Name: a descriptive name (for example "Customer Analytics")
- Description (optional): purpose and scope of the project
- Click Create Project
You are taken to the project page. It has no tabs: a details card (Name, Description, Creator, Created, Last Updated, with Edit and Delete for the owner) and a Data Models (n) list with a New Model button.
Project Organization Tips
One project per domain area: Keep healthcare models separate from finance models. The project's name and description are given to the AI as context during data processing, so a focused project gets better suggestions.
Name projects descriptively: "Customer Management v2" is more useful than "Project 3".
Use descriptions: Future you (and your colleagues) will thank you for explaining what each project is for.
Data Models
What a Model Is
A data model is the core SDC4 artifact. It contains:
- A Data cluster (which contains components)
- Metadata: title, description, about, Dublin Core fields, language, encoding
- Sovereign identity: an auto-generated CUID2 instance_id (mandatory, read-only)
- Source provenance (optional): source_instance_id and source_version_id for tracking data lineage from originating systems
- Status: Draft, Published, or Retired
Models are typically created automatically when you upload a data file and the AI processes it. But you can also create models manually.
Creating a Model with the Model Wizard



- Open Data Models (
/app/models) - Click New Model; the Model Wizard opens at
/app/models/wizard. The New Model button on a project page and the New Data Model card on the dashboard open the same wizard; the smaller Advanced Form link beside either button opens a single-page form with the same fields - The wizard has five steps:
- Basics: Project (required), Model Title (required), Description, About
- Metadata (optional): Dublin Core fields (Subject, Source, Rights, Relation, Coverage, Publisher), language, encoding
- Authors (optional): Author, Contributors
- Data & Provenance (optional): Data Cluster, Subject, Provider, Participations, Protocol, Workflow, Access Control Service, Audits, Attestation, Related Links, and the Source Provenance identifiers (Source Instance ID, Source Version ID)
-
Review & Save

-
Click Create Model (500 credits; a sovereign
instance_idCUID2 is auto-generated)
After creation, the model is in Draft status. You then:
- Add components (manually or from AI processing)
- Organize them into a cluster and choose it as the model's Data Cluster
- Review and refine
- Publish when ready
The Model Lifecycle


Draft → (edit freely) → Published → (optional) Retired
Draft: The model can be edited. Components can be added, removed, or modified. This is where you do all your work.
Published: The model is locked. No further edits are possible. This enables output generation (the Model Generation card).
Retired: Taken out of the lists by the owner or an admin. It stays published and resolvable by its identifier, so nothing that uses it breaks.
There is no way to move backward in this lifecycle. Draft → Published is permanent; there is no Unpublish, and a published model cannot be deleted. The API refuses edits to a published model too (409 published_is_immutable).
The Data Models list offers the same actions on each row, each only when you are allowed to: Publish and Delete on a draft, Retire on a published model.
Viewing a Model
The model detail page shows:
- Model metadata: Title, Description, Project, Instance ID, Source Instance ID, Source Version ID, Status, Created, Last Updated
- Data cluster: the grouping of all data components
- Component list: all components in the model with their types and status
- Actions: while Draft, Publish (owner and admins), Edit and Delete; once Published, Copy and Retire
- Model Generation card (after publication): Generate, then Download Complete Package (ZIP); after that, the Generate App (choose one) card
Versioning Strategy
Since publication is irreversible, versioning is how you evolve models over time.
Naming Convention
Use a consistent naming pattern:
{ModelName} v{version}
Examples:
Customer Demographics v1
Customer Demographics v2
Patient Vitals v1.0
Patient Vitals v1.1
When to Create a New Version
Create a new version when: - You discover errors in a published model - Requirements change and fields need to be added or modified - Validation rules need updating - New semantic links need to be applied
Version Workflow
- Copy the published model: the Copy button on its detail page creates an unpublished "COPY -- ..." model with
prov:wasDerivedFromlineage to the original (Copy is refused for retired sources) - Rename the copy with the new version; the "COPY -- " prefix blocks publishing until you do
- Copy and correct the components that need to change, and update the cluster
- Organize and test: verify all changes
- Publish, following the standard bottom-up process
- Retire the previous version and record what changed in the new model's description
SDC Versioning Convention
The SDC ecosystem uses a modified semantic versioning scheme:
MAJOR.MINOR.PATCH
- MAJOR = SDC Reference Model version (currently 4 for SDC4)
- MINOR = Feature releases for your artifact
- PATCH = Bug fixes and minor updates
All SDC4-compliant artifacts use 4.x.x versioning. The major version always matches the Reference Model version.
Multi-Model Projects
For projects with multiple related models:
Shared Components
Components can be shared across models within a project. Create common components (like "Email Address" or "Currency Amount") once, then include them in multiple models via clusters.
Model Dependencies
If one model references concepts from another (for example an "Order" model references a "Customer" model), document this relationship in the model descriptions. SDCStudio does not enforce cross-model dependencies directly, but clear documentation prevents confusion.
Organization Pattern
A typical multi-model project might look like:
Project: E-Commerce Platform
├── Model: Customer v1
│ └── Cluster: Customer Data
│ └── customer_id, name, email, phone, street, city, state, zip
├── Model: Product Catalog v1
│ └── Cluster: Product Data
│ └── product_id, name, description, price, currency, discount
└── Model: Order v1
└── Cluster: Order Data
└── order_id, order_date, status, product_ref, quantity, unit_price, method, amount, transaction_id
Summary
- Projects organize related models, components, and data sources
- Models are the core SDC4 artifacts, created automatically from uploads or manually via the Model Wizard
- The model lifecycle is Draft → Published (irreversible), with Retired as an optional final state
- Use Copy plus a version suffix (v1, v2, v3) to evolve models after publication
- Shared components enable reuse across models within a project
Where to Go from Here
You have now completed the full walkthrough series. Here are paths for continued learning:
- User Guides: comprehensive reference documentation for every feature
- SDC4 Type Reference: complete SDC4 type specifications
- Generating Outputs Guide: deep dive into each output format
- Semantic Enhancement Guide: advanced ontology integration
- Walkthrough index: the full list