Skip to content

feat(speckle_ifc): More granular IFC conversion progress#492

Merged
JR-Morgan merged 11 commits intomainfrom
jrm/ifc-importer-progress
Apr 14, 2026
Merged

feat(speckle_ifc): More granular IFC conversion progress#492
JR-Morgan merged 11 commits intomainfrom
jrm/ifc-importer-progress

Conversation

@JR-Morgan
Copy link
Copy Markdown
Member

@JR-Morgan JR-Morgan commented Apr 13, 2026

With the IFC acc importer, we are occasionally observing ingestions timeout due to ingestion inactivity.
These are mostly super large models with very complex geometry.

While there is a generous 20 min timeout, the IFC Importer produces very few updates, unlike other importers who have far more granular progress.

We can increase the 20min timeout, but this will degrade the experience under other circumstances (such as OOM) where.
So alternativly, the better solution is to architect the IFC importer to send more frequent updates.

Inspired by the IngestionProgressManager we created for the .NET stack, I have created a similar solution here in python.
It behaves a bit differently form the .NET one, mostly because we're performing sync requests here in python.

But the tl;dr is, it allows us to throttle progress updates, which allows us to send updates about geometry/element conversion from IFC.

I'm throttling updates to one every 10 seconds, which is coarse compared to the 1.5 seconds we do for .NET importers, but 10 seconds is the same as .NET connectors. Since python is doing blocking sync updates, I didn't want to degrade performance by doing any more frequent than 10 seconds.


Topics to discuss:

  • speckle_ifc's FileImport class is now dependent on this IngestionProgressManager, which makes it dependent on ingestion API.
    I could have spent some time abstracting this away, but I figured, ingestions are the way forward for our API, and it's python, people can always hack around the typing if they're crazy enough.

@netlify
Copy link
Copy Markdown

netlify bot commented Apr 13, 2026

Deploy Preview for specklepy ready!

Name Link
🔨 Latest commit 8cdb810
🔍 Latest deploy log https://app.netlify.com/projects/specklepy/deploys/69de3a34b2e177000833cd9d
😎 Deploy Preview https://deploy-preview-492--specklepy.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@JR-Morgan JR-Morgan changed the title IFC importer progress feat(speckle_ifc): More granular IFC conversion progress Apr 13, 2026
@JR-Morgan JR-Morgan marked this pull request as draft April 13, 2026 18:18
@JR-Morgan
Copy link
Copy Markdown
Member Author

JR-Morgan commented Apr 13, 2026

TODO: I need to test this properly locally

@linear
Copy link
Copy Markdown

linear bot commented Apr 14, 2026

@codecov
Copy link
Copy Markdown

codecov bot commented Apr 14, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.82%. Comparing base (c1f82fa) to head (8cdb810).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #492      +/-   ##
==========================================
+ Coverage   91.54%   91.82%   +0.28%     
==========================================
  Files         146      149       +3     
  Lines        6895     7011     +116     
==========================================
+ Hits         6312     6438     +126     
+ Misses        583      573      -10     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@JR-Morgan JR-Morgan marked this pull request as ready for review April 14, 2026 12:59
Copy link
Copy Markdown
Member

@gjedlicska gjedlicska left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@JR-Morgan JR-Morgan merged commit 20a412b into main Apr 14, 2026
15 checks passed
@JR-Morgan JR-Morgan deleted the jrm/ifc-importer-progress branch April 14, 2026 13:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants