Bulk-Add Materials by Category

Expose your entire material library as swatches in seconds. The Select Material option block has a second authoring mode — From Category — that auto-populates one swatch per material in a category. Adding a material to the category later makes it appear in the share view on next load, with no editor change required.

When to use it

  • You have a library of 20+ materials (woods, fabrics, metals, …) and don't want to click "Add Material" once per material.
  • The materials all apply to the same set of 3D objects/parts — and you can now pick multiple target objects at once (e.g., every wood option goes on both the main roof and the extra roofs).
  • A flat per-material price works for your pricing model (option b in the design — one fixed amount whenever any material is selected).
  • You expect to add/remove materials from the category over time without re-editing the project.

Step-by-step

  1. 1Open Dashboard → Materials. Create or pick a category (e.g., "Woods") and assign every material that belongs to it.
  2. 2Open your project, switch to Options mode, and add a Select Material option block (or open an existing one).
  3. 3At the top of the block properties panel, switch the Source segmented control from "Manual" to "From Category".
  4. 4Pick the category from the dropdown. The "Live Preview" panel below shows the swatches end users will see, including a live count badge.
  5. 5Pick one or more Target Objects (check the 3D models the materials apply to). Leave none checked to apply to every loaded object. Optionally scope each object to specific mesh parts via the parts list — parts are grouped by object + subgroup, with nested groups shown at any depth. Leave a target’s parts empty to cover every mesh in it.
  6. 6Set Sort Materials By (Name / Newest / Oldest). Hover an object or a part to see the affected meshes outline-highlight in the viewport so you can verify your target across all selected objects.
  7. 7Click Preview to verify the swatch list and 3D application work as expected. The Preview modal renders the synthesized variants identically to the share view.
  8. 8Optional: switch to Pricing mode and add a Price Group / Variable / Price Table / Unique Price block linked to this Select Material block to author per-material pricing.

What changes vs Manual mode

AspectManual modeFrom Category mode
Variant authoringPer variant via Add MaterialAutomatic — one swatch per material in the chosen category
Per-variant pricingPrice Group / Variable / Price TableSame — link a pricing block to this option block in Pricing mode
Per-variant conditional rulesYesNo — target the entire block, 3D objects/parts, or materials instead
Adding materials laterRe-edit the project and click Add MaterialJust assign the material to the category — appears automatically on next share-view load
Per-variant targetEach variant has its own target object/partsOne shared target — supports multiple 3D objects (+ nested subgroups) — for every material in the block

Pricing

Pricing for a category-mode block lives in Pricing mode, exactly like Manual mode. Add a Price Group, Variable (For Options), Price Table axis, or Unique Price block and link it to this Select Material block. The Pricing panel automatically shows one price row per material in the category so you can author per-material prices. The pricing key uses the stable synthesized variant value (auto:{materialId}), so renaming a material in the library does not break the price.

Conditional logic

Other blocks can hide or show a category-mode Select Material block at the block level, and the block's materials can be referenced by 3D Objects / 3D Parts / Materials targeting scopes. Per-variant conditional targeting is unavailable in category mode (runtime variant IDs change with category contents). Switch back to Manual if you need per-variant rules.

Tip — keep the category curated. The block exposes every material in the category to end users. If you have a "Materials" catch-all category, create a dedicated subset (e.g., "Living Room Woods") and point the block at that. You can also reorder the swatches with the Sort Materials By control.
Heads-up — switching modes preserves both sides. Flipping the Source control between Manual and From Category does not delete data. Manual-mode dropdownVariants stay in storage but are ignored while in category mode (and vice-versa). Switching back resurfaces the other mode's authoring.
How it works under the hood. The block stores materialSource: 'category' plusmaterialCategoryId and the shared target — categoryTargetObjectIds (the selected objects) and categoryTargetParts (per-object mesh names). Runtime variants are synthesized asauto:{materialId}; with two or more target objects each variant carries a per-modelselectedTargetParts map so the right meshes get the material in every targeted object. The public share viewer lazy-fetches referenced categories in one batchedGET /share/:projectId/:token/category-materials?ids=cat1,cat2 request on first paint, whileGET /share/:projectId/:token/category-materials/:categoryId remains available for a single category. The initial share payload stays light even for large libraries.

More in Materials