Data Shield is a Speckle Automate function that helps you keep your model data clean, safe, and share-ready. Whether you're sending models to clients or collaborators or just tidying up before archiving, Data Shield has your back.
Data Shield scans your Speckle model for parameters you’d rather not share and takes care of them for you. It creates a fresh, sanitized version of your model while keeping the original intact.
- Privacy Protection — Say goodbye to accidentally sharing sensitive data.
- Data Compliance — Stay on the right side of data protection policies.
- Confident Collaboration — Share models without oversharing.
We know one size doesn’t fit all, so Data Shield offers three modes to suit your style:
Best for: Simple, predictable naming conventions.
Remove parameters that start with a specific prefix.
Example: Want to remove everything starting with
secret_
? Just set that prefix, and Data Shield will do the rest.
Setup:
- Add your prefix (like
internal_
,private_
, orsecret_
) - Toggle strict mode for case sensitivity (on or off — your call)
Best for: Wildcards, regex fans, and complex patterns.
Get fancy and use *
, ?
, or full regular expressions.
Examples:
client_*
matches anything that starts withclient_
?_internal
matchesa_internal
,b_internal
/^(secret|private)_.*$/i
matches parameters starting withsecret_
orprivate_
, ignoring case
Best for: Keeping the structure and hiding the details.
Automatically detect email addresses inside parameter values and anonymize them.
Example:
No setup is needed. Just select and go.
-
Set up your automation:
- In your Speckle project, head to Automations
- Click Add Automation and choose Data Shield
- Set your trigger model
-
Configure your mode:
- Choose Prefix, Pattern, or Anonymization
- Add your prefix or pattern if needed
- Toggle strict mode if you want case sensitivity
-
Run it:
- It’ll run automatically when a new version is published — or you can manually run it
-
Check results:
- Shielded models show up under the
processed/
branch - You’ll get a run report showing what got cleaned
- Highlighted changes can be seen directly in the viewer
- Shielded models show up under the
- Test first! — Run it on a small test model before going full production.
- Start simple. Use prefix matching for clear conventions, pattern matching for complexity, or anonymization for safe sharing.
- Regex pro tip:
- Wrap your regex in
/
- Add
i
for case-insensitive matching - Use
^
(start) and$
(end) for tighter control
- Wrap your regex in
- Use pattern matching with
/^(internal|private|confidential)_.*$/i
- Run before sending out models
- Share confidently!
- Select the Anonymization mode
- Run on any models with contact details
- Use sanitized versions for demos, public decks, or sales pitches
- Prefix matching with something like
projectX_
- Clean your models before turning them into templates
- Not matching anything? Double-check your pattern or prefix.
- Case mismatch? Try turning off strict mode.
- Only partly sanitized? Some complex models might need multiple passes.
- Errors? Check run logs in the automation report for clues.
- Next Gen vs Legacy: While v3 data objects are supported, if you're using non-Revit v2 objects, you might experience varied results. Please report any issues.
No worries — we’ve got your back.
👉 Post your questions in the Speckle Community Forum and someone from the team (or one of our awesome community members) will help you out!