Packs are collections of content that have been added to the content library.
Packs are special files that live in a workspace, and can be shared.
A pack will contain some or all of the following:
Geometries
Usages
Flows
Blocks
Analytics
Data Layers
Report Builder templates
Graphics, annotations, and 3D models
Additionally, packs have some metadata to help people find them in the content library:
A name
A description
Keywords
A thumbnail
Templates vs content packs
A template and a content pack both save your standard content so you can reuse it. They differ in when you use them and what they carry.
A template starts a new project. When you create a project from a template, Giraffe copies the whole template project into it. That includes usages, blocks, analytics, property definitions, flows, layers, apps, layouts, and project defaults such as units. Use a template to give every new project the same starting point.
A content pack adds content to a project you already have. You add a pack from the Content Library at any time. Its layers, usages, blocks, flows, analytics, apps, and layouts merge into the open project, and your existing content stays. Use a pack for a set of tools you only need on some projects, or to bring new content into a project that is already underway.
A content pack can't carry project defaults, such as units. If every project should start with a setting, put it in a template.
Neither one stays linked to the projects that used it. Changes you make to a template or a pack later only reach new projects, or projects you add the pack to again.
How a content pack is stored
A content pack is saved as a single JSON file in your workspace. The file lists everything you chose to include when you published the pack: geometries, usages, flows, blocks, analytics, property definitions, layers, Report Builder templates, apps, and layouts.
Images and 3D models stay outside the JSON file. The pack stores a reference to each file's URL, the same way a geometry does. This keeps a pack small, however many models it uses.
When you add a content pack to a project, Giraffe reads the JSON file and copies its contents into the project. Images and 3D models come across as references to the same files. A project that uses a pack's model shows the file's current content.
Republishing a content pack saves a new JSON file in place of the old one. Projects that already added the pack keep the content they copied in. Add the pack again to bring in the new version.
