Impertio-Studio
- 797 skills
- 0 followers
- 6 hours ago last updated
- ▌ Pdfstudio Impl I18next Solid · impertio-studio bundleUse when modifying translations or language handling in open-pdf-studio. Prevents the common mistake of adding translations without updating all 37 language files or breaking the custom useTranslation SolidJS hook. Covers i18next configuration, 8 namespaces, RTL support, Farsi/Arabic digit conversion, and the SolidJS signal bridge for reactive translations. Keywords: i18next, SolidJS, useTranslation, translations, RTL, namespaces, language detection, Farsi digits, localization, i18n, add new language, translation not showing, language switch, multi-language.
- ▌ Pdfstudio Errors PDF Corruption · impertio-studio bundleUse when debugging PDF corruption, broken annotations, or save failures in open-pdf-studio. Provides a diagnostic decision tree for common failures: buffer detachment, coordinate misalignment, lost annotations, form field corruption, and file locking errors. Keywords: PDF corruption, save failure, buffer detachment, annotation lost, coordinate error, form field, file lock, originalBytesCache, CropBox, saved PDF broken, annotations disappeared, PDF unreadable after save.
- ▌ Pdfstudio Core Pdfjs Pdflib Bridge · impertio-studio bundleUse when modifying PDF loading, saving, or annotation code in open-pdf-studio. Prevents the common mistake of breaking the originalBytesCache bridge between PDF.js (rendering) and pdf-lib (editing), or corrupting coordinate transforms between PDF coordinates, viewport coordinates, and app annotation coordinates. Covers dual-parse architecture, buffer management, color extraction bridge, and the three coordinate systems that interact during annotation save/load. Keywords: PDF.js, pdf-lib, originalBytesCache, annotation coordinates, CropBox, viewport, saver, loader, buffer detachment, dual parse, bridge between viewer and editor, coordinate mismatch, PDF save corrupted.
- ▌ Pdfstudio Impl Annotation Pipeline · impertio-studio bundleUse when modifying annotation handling in open-pdf-studio: loading, rendering, editing, or saving annotations. Prevents the common mistake of breaking the coordinate transform chain or losing annotation data during the full pipeline. Covers the end-to-end flow: PDF file → PDF.js parsing → app model → canvas rendering → user editing → pdf-lib serialization → saved PDF file. Keywords: annotations, pipeline, coordinate transform, CropBox, canvas overlay, dual canvas, rendering, saver, loader, annotation-converter, stamp, freetext, annotations wrong position, add annotation, annotation workflow.
- ▌ Pdfstudio Core Tauri PDF Filesystem · impertio-studio bundleUse when modifying file open/save operations in open-pdf-studio. Prevents the common mistake of using the wrong IPC mechanism (Tauri plugin vs custom invoke) or breaking the file locking system that prevents data loss. Covers dual IPC patterns, Uint8Array transfer, file locking via Rust File handles, and the complete file open/edit/save pipeline through Tauri. Keywords: Tauri, filesystem, invoke, readBinaryFile, writeBinaryFile, file lock, Uint8Array, IPC, Rust commands, save pipeline, file open fails, save not working, file locked, Tauri file operations.
- ▌ Pdfstudio Core Solidjs Vanilla Bridge · impertio-studio bundleUse when modifying UI components or PDF/canvas logic in open-pdf-studio. Prevents the common mistake of breaking the bridge.ts facade that connects SolidJS reactive UI with vanilla JS PDF operations, or mutating state outside the createMutable proxy which breaks SolidJS reactivity. Covers the hybrid architecture, bridge.ts re-export pattern, createMutable shared state, per-document state delegation, and data flow direction rules. Keywords: bridge.ts, SolidJS, vanilla JS, createMutable, state, stores, hybrid architecture, reactivity, facade pattern, multi-document, UI not updating, state out of sync, SolidJS meets vanilla.
- ▌ Crosstech Impl Ifc To Webifc · impertio-studio bundleUse when converting IFC processing between IfcOpenShell (Python, server-side) and web-ifc (WebAssembly, browser-side). Prevents the common mistake of assuming identical property access patterns or geometry processing between the two libraries. Covers IfcOpenShell 0.8.x vs web-ifc 0.0.77 API differences, property access, geometry extraction, streaming large models, and hybrid architecture patterns. Keywords: IfcOpenShell, web-ifc, WebAssembly, IFC parser, property access, geometry extraction, server-side, browser-side, WASM, IFC conversion, parse IFC in browser, Python vs JavaScript IFC, IfcOpenShell vs web-ifc.
- ▌ Crosstech Impl Speckle Revit · impertio-studio bundleUse when sending or receiving BIM elements between Speckle and Revit. Prevents the common mistake of expecting perfect round-trip fidelity or losing Revit family type information during Speckle conversion. Covers Speckle Revit connector, family type mapping, parameter synchronization, view-based filtering, DirectShape receive, and round-trip data integrity. Keywords: Speckle, Revit, connector, BIM elements, family types, parameters, DirectShape, round-trip, send receive, Revit API, share Revit model, Revit to web, sync Revit data, collaborate on BIM.
- ▌ Crosstech Errors Conversion · impertio-studio bundleUse when IFC data conversion fails or produces unexpected results: missing geometry, lost properties, broken relationships, or schema version mismatches. Provides a symptom-to-root-cause decision tree for diagnosing data conversion errors across ALL AEC technology boundaries. Covers IfcOpenShell, web-ifc, Blender, FreeCAD, Three.js, Speckle, and ERPNext conversion failures with specific error messages and fixes. Keywords: IFC conversion error, missing geometry, lost properties, schema mismatch, BREP to mesh, property loss, encoding error, IFC import failure, IFC won't import, data missing after conversion, geometry broken, IFC export error.
- ▌ Crosstech Impl Bim Web Viewer · impertio-studio bundleUse when building an end-to-end BIM web viewer: from IFC file to interactive browser application with navigation, selection, property inspection, and clipping. Prevents the common mistake of building a custom viewer when @thatopen/components provides production-ready functionality out of the box. Covers the full pipeline: IFC parsing, Three.js rendering, UI interaction, section planes, annotations, and performance optimization for large models. Keywords: BIM viewer, web viewer, IFC viewer, @thatopen/components, Three.js, section plane, property panel, model navigation, web-ifc, BIM web application, view IFC in browser, 3D building viewer, online BIM viewer.
- ▌ Crosstech Impl Ifc To Threejs · impertio-studio bundleUse when loading IFC models into Three.js scenes for web-based BIM visualization. Prevents the common mistake of losing IFC metadata in the Three.js scene graph or ignoring the Y-up vs Z-up axis convention difference. Covers web-ifc-three, @thatopen/components, mesh conversion, material mapping, raycasting for selection, property panels, and the Fragments optimization format. Keywords: IFC, Three.js, web viewer, BIM visualization, web-ifc-three, @thatopen/components, raycasting, scene graph, IFC viewer, WebGL, load IFC in Three.js, 3D BIM web, click on building element.
- ▌ Crosstech Impl Qgis Bim Georef · impertio-studio bundleUse when georeferencing BIM models in QGIS, importing IFC footprints onto maps, or transforming coordinates between BIM local and GIS global systems. Prevents the common mistake of importing IFC without CRS assignment or losing the third dimension during 2D projection. Covers IfcOpenShell+PyQGIS extraction, CRS transformation via IfcMapConversion, GeoPackage export, and three integration approaches (GDAL, IfcOpenShell, Speckle). Keywords: QGIS, BIM, georeferencing, IFC, GIS, CRS, IfcMapConversion, PyQGIS, footprint extraction, GeoPackage, coordinate transformation, map overlay, building on map, IFC to GIS, place model on earth.
- ▌ Crosstech Impl Speckle Blender · impertio-studio bundleUse when sending or receiving BIM data between Speckle and Blender via the Speckle connector or SpecklePy. Prevents the common mistake of expecting full IFC fidelity through Speckle or losing materials during conversion. Covers Speckle Base to Blender mesh/curve conversion, material mapping, collection structure, Bonsai/IFC data through Speckle, and SpecklePy API. Keywords: Speckle, Blender, SpecklePy, connector, BIM data, mesh conversion, material mapping, Bonsai, IFC through Speckle, send receive, BIM to Blender, render BIM model, Blender visualization, share model.
- ▌ Crosstech Impl Docker Aec Stack · impertio-studio bundleUse when containerizing AEC tools or deploying multi-service AEC stacks with Docker. Prevents the common mistake of missing geometry dependencies (OCCT/OCC) in IfcOpenShell containers or misconfiguring Speckle Server services. Covers Dockerfiles for IfcOpenShell, Speckle Server deployment, QGIS Server, web-ifc workers, and multi-service docker-compose orchestration. Keywords: Docker, AEC, IfcOpenShell container, Speckle Server, QGIS Server, docker-compose, web-ifc, containerization, AEC deployment, deploy BIM tools, dockerize IFC processing, self-host Speckle.
- ▌ Crosstech Impl N8n Aec Pipeline · impertio-studio bundleUse when automating AEC workflows with n8n: IFC processing pipelines, Speckle webhook integration, model validation, or connecting AEC tools via APIs. Prevents the common mistake of running heavy IFC processing inside n8n nodes instead of delegating to external services. Covers n8n v1.x nodes for AEC, webhook triggers, Execute Command for IfcOpenShell, Speckle/ERPNext API integration, and pipeline patterns. Keywords: n8n, workflow automation, AEC pipeline, IFC processing, Speckle webhook, ERPNext API, model validation, n8n nodes, Execute Command, automate BIM workflow, trigger on model upload, no-code AEC automation.
- ▌ Crosstech Core Ifc Schema Bridge · impertio-studio bundleUse when mapping IFC entities between different AEC tools: IfcOpenShell (Python), web-ifc (WebAssembly), Blender/Bonsai, FreeCAD, Speckle, or Three.js. Prevents the common mistake of losing properties, relationships, or geometry during IFC data conversion across technology boundaries. Covers IFC4/IFC4X3 entity hierarchy, property sets, quantity sets, relationships, and how each concept maps to representations in target tools. Keywords: IFC, schema, mapping, IfcOpenShell, web-ifc, property sets, quantity sets, IfcProduct, IfcRelDefinesByProperties, BIM data conversion, IFC4, IFC4X3, IFC entities, property lost during conversion, IFC data structure.
- ▌ Crosstech Core Coordinate Systems · impertio-studio bundleUse when transforming coordinates between BIM local systems and GIS global systems, handling CRS conversions, or debugging models appearing at wrong locations. Prevents the common mistake of applying wrong EPSG codes, ignoring axis conventions (Y-up vs Z-up), or losing precision in coordinate transformations. Covers IfcMapConversion, IfcProjectedCRS, EPSG codes, pyproj/PROJ transformations, and axis conventions for Blender, Three.js, QGIS, Revit, FreeCAD, and IFC. Keywords: CRS, EPSG, coordinate system, georeferencing, IfcMapConversion, IfcProjectedCRS, pyproj, PROJ, Y-up, Z-up, BIM to GIS, map conversion, model at wrong location, coordinate transform, which EPSG code.
- ▌ Crosstech Impl Freecad Ifc Bridge · impertio-studio bundleUse when working with IFC files in FreeCAD, importing BIM models, or doing round-trip IFC editing. Prevents the common mistake of using legacy import instead of NativeIFC mode or losing IFC data during FreeCAD conversion. Covers FreeCAD 1.0+ BIM Workbench, NativeIFC mode, IfcOpenShell integration, import/export workflows, and round-trip editing patterns. Keywords: FreeCAD, IFC, NativeIFC, BIM Workbench, IfcOpenShell, round-trip, FreeCAD BIM, IFC import, IFC export, Arch module, edit IFC in FreeCAD, open IFC file, FreeCAD BIM modeling, free BIM software.
- ▌ Crosstech Impl Ifc Erpnext Costing · impertio-studio bundleUse when extracting quantities from IFC models and creating cost estimates in ERPNext. Prevents the common mistake of mapping IFC quantities to wrong ERPNext fields or losing unit information during the IFC-to-BOM conversion. Covers IfcElementQuantity extraction via IfcOpenShell, ERPNext BOM structure, IFC classification to Item Group mapping, and the complete quantity-to-cost pipeline. Keywords: IFC costing, BOM, ERPNext, IfcElementQuantity, quantity takeoff, IfcOpenShell, Frappe API, cost estimation, IFC to ERP, extract quantities, building cost estimate, IFC to bill of materials, material takeoff.
- ▌ Crosstech Agents Aec Orchestrator · impertio-studio bundleUse when a user request involves multiple AEC technologies that need to be chained together: multi-hop data pipelines (e.g., Revit → Speckle → Blender → IFC → Web), technology selection guidance, or cross-tool workflow design. Routes to the correct boundary skill(s) for each hop, validates data integrity between steps, and handles error recovery. Keywords: AEC pipeline, multi-hop, workflow orchestration, technology selection, cross-tool integration, BIM pipeline, data integrity validation, connect AEC tools, chain BIM workflow, which tool to use.
- ▌ Crosstech Errors Coordinate Mismatch · impertio-studio bundleUse when BIM models appear at the wrong location, wrong scale, or wrong orientation in GIS or web viewers. Provides a diagnostic decision tree for coordinate-related errors: Y-up vs Z-up axis swap, unit mismatches (mm/m/ft), missing georeferencing, CRS mismatches, and datum transformation errors. Covers coordinate debugging across Blender, Three.js, QGIS, IFC, Revit, and FreeCAD. Keywords: wrong location, coordinate mismatch, Y-up Z-up, scale error, EPSG, georeferencing missing, axis swap, unit mismatch, CRS error, datum shift, model in wrong place, building too small, upside down, rotated model.
- ▌ Pdfjs Agents Review · impertio-studio bundleUse when reviewing or validating generated PDF.js code for correctness, best practices, and common mistakes. Prevents shipping code with missing worker setup, uncancelled render tasks, incorrect DPI handling, or wrong layer stacking order. Covers worker setup verification, render task lifecycle, memory management, v5 API compliance, and anti-pattern detection checklist. Keywords: code review, validation, checklist, anti-pattern, PDF.js review, quality, check my PDF code, verify PDF.js setup, audit viewer.
- ▌ Pdfjs Errors Worker · impertio-studio bundleUse when debugging PDF.js worker loading failures, version mismatch errors, or CSP/CORS violations. Prevents the most common PDF.js error: "API version does not match Worker version" caused by mismatched pdfjs-dist and worker file versions. Covers worker initialization failures, CORS errors, CSP violations, fake worker fallback, missing worker diagnostics, and timeout issues. Keywords: worker error, version mismatch, CORS, CSP, fake worker, workerSrc, API version does not match Worker version, worker failed to load, PDF.js not working, worker setup.
- ▌ Pdfjs Core Architecture · impertio-studio bundleUse when starting a PDF.js project, understanding PDF.js internals, or reasoning about the rendering pipeline. Prevents the common mistake of misunderstanding the three-layer model (Core/Display/Viewer) and worker thread architecture. Covers component hierarchy, pdfjs-dist 5.x package structure, and rendering pipeline overview. Keywords: PDF.js, pdfjs-dist, architecture, worker, PDFDocumentProxy, PDFPageProxy, layers, how PDF.js works, PDF rendering pipeline, what is pdfjs-dist.
- ▌ Pdfjs Errors Document · impertio-studio bundleUse when handling PDF document loading failures, password-protected PDFs, corrupt files, or missing CMap/font data. Prevents unhandled exceptions by covering all PDF.js error types and their recovery patterns. Covers InvalidPDFException, MissingPDFException, PasswordException, network/CORS errors, CJK font issues, and corrupt PDF recovery strategies. Keywords: InvalidPDFException, MissingPDFException, PasswordException, CMap, CORS, corrupt PDF, PDF won't load, broken PDF, can't open PDF, password protected, PDF error.
- ▌ Pdfjs Errors Rendering · impertio-studio bundleUse when debugging canvas rendering errors, blurry text, render task race conditions, or memory issues from PDF page rendering. Prevents blurry rendering by enforcing devicePixelRatio scaling and avoids memory leaks from concurrent render conflicts. Covers canvas errors, text layer positioning, annotation layer z-index issues, and memory management for multi-page rendering. Keywords: blurry PDF, devicePixelRatio, RenderTask, canvas error, memory leak, z-index, PDF looks blurry, text not sharp, blank page, rendering broken, PDF not displaying correctly.
- ▌ Pdfjs Impl Custom Viewer · impertio-studio bundleUse when building a complete PDF viewer from scratch with page navigation, zoom, search, and print functionality. Prevents the critical mistake of rendering all pages at once instead of using lazy loading with IntersectionObserver. Covers page navigation, zoom controls, scroll-based lazy loading, virtual scrolling, thumbnail generation, text search with highlighting, and print support. Keywords: PDF viewer, lazy loading, IntersectionObserver, zoom, search, print, thumbnails, build PDF viewer, render PDF in browser, view PDF online, page navigation, custom reader.
- ▌ Pdfjs Impl Forms And Save · impertio-studio bundleUse when implementing interactive PDF form filling, reading form field values, or saving modified PDFs with user input. Prevents data loss from not persisting AnnotationStorage changes and incorrect form field type handling. Covers AnnotationStorage API, form field types (text, checkbox, radio, dropdown, signature), getFieldObjects(), saveDocument(), and download patterns. Keywords: PDF forms, AnnotationStorage, getFieldObjects, saveDocument, form filling, AcroForm, fill PDF form, save filled PDF, interactive form, read form values, download modified PDF.
- ▌ Pdfjs Syntax Text Layer · impertio-studio bundleUse when adding selectable/searchable text overlay to rendered PDF pages or extracting text content from PDFs. Prevents the common mistake of using the deprecated renderTextLayer() function instead of the v5 TextLayer class. Covers TextLayer class, getTextContent(), streamTextContent(), CSS overlay positioning, text selection, and plain text extraction. Keywords: TextLayer, getTextContent, text selection, text extraction, textContentSource, select text in PDF, copy text from PDF, searchable PDF, extract text, text overlay.
- ▌ Pdfjs Syntax Worker Setup · impertio-studio bundleUse when configuring the PDF.js Web Worker for document parsing or fixing worker loading errors. Prevents the #1 PDF.js mistake: version mismatch between pdfjs-dist and the worker file. Covers GlobalWorkerOptions.workerSrc, CDN URLs, webpack/vite/rollup bundler configuration, fake worker mode, CMap and standard font setup. Keywords: workerSrc, GlobalWorkerOptions, pdf.worker.mjs, CDN, webpack, vite, CMap, configure worker, worker not found, PDF.js setup, how to set up PDF.js worker.
- ▌ Pdfjs Core Memory Management · impertio-studio bundleUse when building PDF viewers that load multiple documents, navigate between pages, or run for extended periods. Prevents the #1 production PDF.js issue: memory leaks from unreleased PDFDocumentProxy, uncleaned pages, and orphaned canvas contexts. Covers destroy/cleanup lifecycle, canvas reuse, render task cancellation, blob URL revocation, and large PDF handling strategies. Keywords: memory leak, destroy, cleanup, PDFDocumentProxy, canvas, blob URL, garbage collection, browser tab slow, PDF viewer uses too much memory, page gets slower, out of memory.
- ▌ Pdfjs Syntax Page Rendering · impertio-studio bundleUse when rendering PDF pages to canvas, handling viewports, or managing render tasks. Prevents blurry rendering by ensuring proper devicePixelRatio handling and avoids race conditions by enforcing render task cancellation before re-rendering. Covers page.render(), getViewport(), RenderTask lifecycle, high-DPI scaling, OffscreenCanvas, and the canvas-text-annotation layer stacking order. Keywords: page.render, getViewport, RenderTask, canvas, devicePixelRatio, viewport, DPI, render PDF page, display PDF, canvas rendering, high resolution PDF, retina display.
- ▌ Pdfjs Impl Bundler Integration · impertio-studio bundleUse when integrating pdfjs-dist with webpack, Vite, Rollup, Next.js, or Nuxt.js build systems. Prevents worker loading failures caused by incorrect bundler configuration for the pdf.worker.mjs file. Covers webpack worker-loader/asset module config, Vite import.meta.url pattern, Rollup config, CMap/font file copying, and tree-shaking considerations. Keywords: webpack, vite, rollup, Next.js, bundler, worker-loader, import.meta.url, PDF.js with Vite, PDF.js with webpack, worker not loading, bundler configuration, Nuxt.js.
- ▌ Pdfjs Syntax Annotation Layer · impertio-studio bundleUse when rendering interactive annotations (links, forms, highlights) on PDF pages or implementing annotation editing. Prevents incorrect layer stacking by enforcing the canvas > TextLayer > AnnotationLayer order. Covers AnnotationLayer class, getAnnotations(), annotation types, link handling, form field rendering, AnnotationStorage, and AnnotationEditorLayer. Keywords: AnnotationLayer, getAnnotations, AnnotationStorage, Widget, Link, form fields, clickable links, interactive PDF, annotations not showing, form overlay, PDF buttons.
- ▌ Pdfjs Syntax Document Loading · impertio-studio bundleUse when loading PDF documents with getDocument(), handling loading progress, or working with PDFDocumentProxy/PDFPageProxy. Prevents common mistakes like forgetting to configure the worker before calling getDocument() or not destroying the document. Covers all source types (URL, ArrayBuffer, TypedArray), password-protected PDFs, metadata extraction, and document lifecycle management. Keywords: getDocument, PDFDocumentLoadingTask, PDFDocumentProxy, PDFPageProxy, password PDF, load PDF file, open PDF, fetch PDF, PDF from URL, load PDF from ArrayBuffer.
- ▌ Pdfjs Agents Project Scaffolder · impertio-studio bundleUse when generating a complete PDF.js project from scratch, scaffolding a new PDF viewer application, or setting up the full rendering pipeline with all layers. Prevents incomplete project setup by ensuring worker, canvas, text layer, and annotation layer are all properly configured. Covers bundler-specific worker config, HTML/CSS templates, TypeScript setup, package.json with correct pdfjs-dist version, and full rendering pipeline. Keywords: scaffold, project setup, boilerplate, PDF viewer template, TypeScript, pdfjs-dist, new PDF viewer, create PDF app, start PDF.js project, build PDF reader.
- ▌ Fluent Impl React · impertio-studio bundleUse when integrating Project Fluent with React via @fluent/react for translated UI components. Prevents misconfigured LocalizationProvider, broken DOM overlays, and incorrect Localized prop usage. Covers provider setup, Localized component, useLocalization hook, DOM overlays, and bundle generation. Keywords: LocalizationProvider, Localized, useLocalization, DOM overlay, ReactLocalization, @fluent/react, translate React component, i18n in React, localize React app, Fluent with React.
- ▌ Fluent Core Langneg · impertio-studio bundleUse when implementing language negotiation or locale fallback chains with @fluent/langneg. Prevents wrong strategy selection and broken fallback behavior. Covers negotiateLanguages() strategies, BCP 47 locale handling, acceptedLanguages() for HTTP headers, and fallback chain construction. Keywords: negotiateLanguages, @fluent/langneg, BCP 47, Accept-Language, locale fallback, filtering, matching, lookup, detect user language, browser language, language fallback, pick best language.
- ▌ Fluent Syntax Terms · impertio-studio bundleUse when defining or referencing terms (-term-name) in FTL for brand names or shared vocabulary. Prevents accidental runtime API access to terms, which is never allowed. Covers term syntax, parameterized terms with named arguments, term attributes for grammatical metadata, and visibility rules. Keywords: FTL terms, -term-name, parameterized terms, term attributes, brand names, grammatical cases, runtime visibility, reusable translation, shared vocabulary, brand name translation, term syntax.
- ▌ Fluent Agents Review · impertio-studio bundleUse when reviewing or validating generated FTL and TypeScript Fluent code for correctness. Prevents shipping broken translations, wrong API usage, and common Fluent anti-patterns. Covers FTL syntax compliance, whitespace rules, select expressions, term visibility, and React integration. Keywords: code review, FTL validation, anti-patterns, select expression, term visibility, API audit, check translations, review FTL file, validate i18n code, translation quality.
- ▌ Fluent Core Bundle API · impertio-studio bundleUse when using FluentBundle or FluentResource API to load, retrieve, or format translations. Prevents incorrect addResource usage, missing error handling, and wrong formatPattern calls. Covers FluentBundle constructor, getMessage, hasMessage, formatPattern, custom functions, and FluentType hierarchy. Keywords: FluentBundle, FluentResource, addResource, formatPattern, getMessage, custom functions, FluentType, get translation, format message, load translations, use Fluent API.
- ▌ Fluent Errors Parsing · impertio-studio bundleUse when encountering FTL parse errors or debugging broken translations that fail to load. Prevents silent failures from indentation mistakes, missing default variants, and identifier violations. Covers tabs vs spaces, comment syntax, junk entry recovery, and @fluent/syntax FluentParser validation. Keywords: FTL parse error, indentation, default variant, junk entry, FluentParser, syntax validation, FTL file broken, translation not loading, syntax error in FTL, whitespace error.
- ▌ Fluent Core Architecture · impertio-studio bundleUse when setting up or understanding Project Fluent architecture. Prevents misconceptions about the bundle-resource-message model and asymmetric localization. Covers design philosophy, FTL format overview, and how Fluent differs from ICU MessageFormat. Keywords: Project Fluent, FTL, FluentBundle, FluentResource, asymmetric localization, i18n architecture, what is Fluent, how Fluent works, Fluent vs ICU, translation system.
- ▌ Fluent Syntax Messages · impertio-studio bundleUse when writing FTL messages, placeables, or multiline translations. Prevents whitespace and indentation errors caused by the dedentation algorithm. Covers simple and multiline messages, variable references, message references, comment system, and special character handling. Keywords: FTL messages, placeables, multiline, dedentation, variables, message references, comments, write FTL message, use variables in translations, multiline translation, FTL syntax.
- ▌ Fluent Impl Project Setup · impertio-studio bundleUse when setting up a new Project Fluent project from scratch or adding Fluent to an existing app. Prevents misconfigured dependencies, wrong directory structures, and missing FTL validation tooling. Covers npm installation, FTL+TypeScript+React configuration, message ID conventions, and file naming. Keywords: @fluent/bundle, @fluent/react, project setup, FTL directory structure, localization scaffold, add i18n to project, install Fluent, internationalize my app, translation setup.
- ▌ Fluent Syntax Functions · impertio-studio bundleUse when formatting numbers, dates, or currencies in FTL or registering custom Fluent functions. Prevents incorrect NUMBER()/DATETIME() option usage and malformed custom function signatures. Covers built-in functions, Intl formatting options, custom function registration, and bidirectional text isolation. Keywords: NUMBER, DATETIME, FluentFunction, Intl.NumberFormat, custom functions, RTL, useGrouping, format number, format date, currency, custom formatting, right-to-left text.
- ▌ Fluent Syntax Selectors · impertio-studio bundleUse when writing select expressions, plural forms, or variant-based translations in FTL. Prevents missing default variants and incorrect CLDR plural category usage. Covers cardinal and ordinal plurals, exact numeric matches, string selectors, and nested selectors. Keywords: select expression, CLDR plural categories, variants, default variant, cardinal, ordinal, gender selector, plural forms, 1 item vs 2 items, handle plurals, gender-specific translation.
- ▌ Fluent Errors Resolution · impertio-studio bundleUse when FluentBundle.formatPattern returns unexpected results, fallback values, or {???} placeholders. Prevents undiagnosed runtime errors from missing messages, variables, terms, and cyclic references. Covers throw vs collect error modes, type mismatches, excessive placeables, and fallback debugging. Keywords: formatPattern, resolution error, missing message, cyclic reference, fallback, error handling, translation shows ???, missing translation, wrong output, variable not replaced.
- ▌ Fluent Impl Locale Loading · impertio-studio bundleUse when loading FTL locale files at runtime via fetch, dynamic import, or lazy bundle generation. Prevents stale translation caches and bundle loading race conditions in multi-locale apps. Covers async fetch loading, generator patterns, CachedSyncIterable, file organization, and code-splitting. Keywords: fetch FTL, FluentResource, CachedSyncIterable, lazy loading, bundle generation, code-splitting, load translations at runtime, async locale loading, dynamic import translations.
- ▌ Fluent Syntax Attributes · impertio-studio bundleUse when adding attributes to FTL messages or terms for HTML element properties, form labels, or ARIA values. Prevents missing .attribute syntax errors and incorrect attribute access in TypeScript and React. Covers message attributes, term attributes, value-less messages, compound messages, and the Localized attrs prop. Keywords: FTL attributes, .placeholder, .aria-label, getMessage, attrs, compound message, translate placeholder, translate aria label, HTML attributes, input translation.
- ▌ Fluent Impl Locale Switching · impertio-studio bundleUse when implementing runtime locale or language switching in Fluent React applications. Prevents full page reloads and broken fallback chains during dynamic language changes. Covers React state re-localization, negotiateLanguages integration, localStorage persistence, and server-side detection. Keywords: language switcher, negotiateLanguages, localStorage, acceptedLanguages, re-render, fallback chain, change language at runtime, language dropdown, switch locale without reload, remember language.
- ▌ Fluent Agents Project Scaffolder · impertio-studio bundleUse when scaffolding a new Fluent i18n project or generating boilerplate for React localization. Prevents incomplete setups by generating all required files with correct configuration. Covers FTL files per locale, FluentBundle config, LocalizationProvider, locale negotiation, and async loading. Keywords: scaffold, boilerplate, LocalizationProvider, @fluent/langneg, locale switching, code generation, new i18n project, add translations, setup localization, multi-language app.
- ▌ Solid Impl Routing · impertio-studio bundleUse when implementing client-side routing, navigation, or URL parameter handling in SolidJS applications. Prevents incorrect router setup, misused navigation hooks, and non-lazy-loaded route bundles. Covers Router/HashRouter setup, A component, useNavigate, useParams, useSearchParams, useBeforeLeave, lazy loading, route preloading, and config-based routing. Keywords: @solidjs/router, Route, useNavigate, useParams, useSearchParams, lazy, route guard, client-side routing, add routing, page navigation, URL parameters, protected routes.
- ▌ Solid Impl Testing · impertio-studio bundleUse when writing unit or integration tests for SolidJS components, signals, or stores. Prevents missing cleanup calls, incorrect async test patterns, and React Testing Library habits that break SolidJS tests. Covers @solidjs/testing-library render, screen queries, fireEvent, cleanup, async testing, renderHook, testEffect, and vitest configuration. Keywords: @solidjs/testing-library, vitest, render, fireEvent, screen, cleanup, renderHook, testEffect, component testing, test SolidJS, unit test, how to test components, testing setup.
- ▌ Solid Syntax Jsx · impertio-studio bundleUse when writing JSX templates, rendering lists, conditional rendering, or using control flow components in SolidJS. Prevents ternary/map anti-patterns from React that bypass SolidJS compiled DOM optimizations. Covers Show, For, Index, Switch/Match, Dynamic, Portal, Suspense, JSX compilation model, and namespaced attributes. Keywords: Show, For, Index, Switch, Match, Dynamic, Portal, Suspense, SolidJS JSX, control flow, conditional rendering, render list, if else in JSX, loop over array, show hide element.
- ▌ Solid Core Overview · impertio-studio bundleUse when starting a SolidJS project, checking API availability, or looking up import paths and version compatibility. Prevents using deprecated APIs such as SolidStart 0.x patterns or pre-0.15 router cache function. Covers version matrix for SolidJS 1.x/2.x and SolidStart, import reference, ecosystem package map, and getting started guidance. Keywords: SolidJS API, version matrix, SolidStart, solid-js imports, @solidjs/router, ecosystem, Vite, what is SolidJS, getting started, which version, API reference.
- ▌ Solid Agents Review · impertio-studio bundleUse when reviewing generated SolidJS code, validating a SolidJS project, or checking for React pattern contamination. Prevents silent reactivity breaks from incorrect signal access, destructured props, wrong control flow, and store mutation errors. Covers signal access patterns, control flow components, props handling, store mutations, event handling, and context usage. Keywords: SolidJS review, code validation, React contamination, signal access, createSignal, Show, For, props, stores, check my SolidJS code, is this correct, review component, validate SolidJS.
- ▌ Solid Impl Solidstart · impertio-studio bundleUse when building SolidStart applications with SSR, file-based routing, or server functions. Prevents incorrect 'use server' placement, broken hydration, and misuse of query/createAsync patterns. Covers file-based routing, data loading with query and createAsync, server functions, actions with form integration, SSR streaming, hydration, and API routes. Keywords: SolidStart, use server, createAsync, query, file-based routing, SSR, hydration, API routes, Vinxi, Nitro, server function, full-stack SolidJS, data loading, server actions.
- ▌ Solid Syntax Stores · impertio-studio bundleUse when managing complex nested state, updating objects or arrays, or choosing between signals and stores in SolidJS. Prevents direct state mutation and spread-copy patterns that destroy store proxy reactivity. Covers createStore, setStore path syntax, produce, reconcile, unwrap, and createMutable. Keywords: createStore, setStore, produce, reconcile, unwrap, createMutable, SolidJS store, nested state, proxy reactivity, complex state, update nested object, array mutation, store not updating.
- ▌ Solid Syntax Context · impertio-studio bundleUse when sharing state between components, creating providers, or implementing dependency injection in SolidJS. Prevents non-reactive context values and missing Provider errors common when porting React context patterns. Covers createContext, useContext, Provider pattern, reactive context with signals and stores, typed context, custom hooks, and nested overrides. Keywords: createContext, useContext, Provider, SolidJS context, dependency injection, shared state, typed context, share data between components, avoid prop drilling, global provider.
- ▌ Solid Syntax Signals · impertio-studio bundleUse when creating signals, effects, memos, resources, or managing component lifecycle in SolidJS. Prevents React useState/useEffect anti-patterns that break fine-grained reactivity tracking. Covers createSignal, createEffect, createMemo, createResource, createRenderEffect, createComputed, batch, untrack, on, onMount, onCleanup, observable, and from. Keywords: createSignal, createEffect, createMemo, createResource, batch, untrack, onMount, onCleanup, SolidJS reactivity, signals, reactive state, side effects, computed value, fetch data, lifecycle hooks.
- ▌ Solid Impl State Patterns · impertio-studio bundleUse when designing state architecture or choosing between signals, stores, and context in SolidJS. Prevents using createEffect for derived state, capturing signal snapshots, and incorrect store mutation patterns. Covers createSignal vs createStore decision matrix, context providers, createMemo for derived state, form state patterns, and state composition strategies. Keywords: createSignal, createStore, createContext, createMemo, global state, context provider, state management, derived state, signal vs store, when to use which, share state between components, global reactive state.
- ▌ Solid Syntax Components · impertio-studio bundleUse when creating components, handling props, working with children, refs, directives, or events in SolidJS. Prevents props destructuring and children access patterns from React that break SolidJS reactivity. Covers Component/ParentComponent/VoidComponent/FlowComponent types, splitProps, mergeProps, children() helper, ref patterns, use: directives, and event delegation. Keywords: splitProps, mergeProps, children, Component, ParentComponent, VoidComponent, FlowComponent, ref, use directive, SolidJS props, event handling, pass props, access children, click handler, component types.
- ▌ Solid Core Reactivity Model · impertio-studio bundleUse when reasoning about SolidJS reactivity, debugging tracking issues, or understanding why components run once. Prevents React mental model contamination such as expecting re-renders, virtual DOM diffing, or stale closure patterns. Covers reactive dependency graph, tracking contexts, ownership tree, synchronous execution model, and direct DOM updates. Keywords: SolidJS reactivity, fine-grained, signals, tracking scope, ownership, createEffect, createMemo, no virtual DOM, how reactivity works, why component runs once, not like React, mental model.
- ▌ Solid Errors Error Handling · impertio-studio bundleUse when implementing error boundaries, Suspense loading states, or error recovery in SolidJS components. Prevents uncaught rendering errors, missing fallback UIs, and incorrect ErrorBoundary/Suspense nesting. Covers ErrorBoundary with reset, Suspense for createResource, nested boundaries, caught vs uncaught errors, and combined error/loading patterns. Keywords: ErrorBoundary, Suspense, error handling, fallback, reset, createResource, loading state, error recovery, app crashes, unhandled error, loading spinner, catch errors in component.
- ▌ Solid Agents Project Scaffolder · impertio-studio bundleUse when creating a new SolidJS project, scaffolding a SolidStart application, or setting up project infrastructure. Prevents misconfigured Vite/TypeScript settings, wrong directory structures, and React-style project patterns. Covers Vite configuration, TypeScript setup, component directory structure, routing, state management, and testing setup. Keywords: SolidJS scaffold, SolidStart project, Vite config, tsconfig, project template, file structure, routing setup, new SolidJS project, start from scratch, create SolidJS app.
- ▌ Solid Errors React Contamination · impertio-studio bundleUse when reviewing SolidJS code for React anti-patterns or converting React components to SolidJS. Prevents destructured props, useState/useEffect habits, Array.map rendering, and all other React patterns that silently break SolidJS reactivity. Covers all 12+ contamination patterns including props destructuring, signal misuse, effect cleanup, list rendering, conditional rendering, refs, children, and navigation. Keywords: React to SolidJS, destructure props, createSignal, createEffect, For component, Show component, anti-pattern, migration, convert from React, React habits, why does my component break, coming from React.
- ▌ Solid Errors Reactivity Debugging · impertio-studio bundleUse when SolidJS reactivity is broken, effects are not firing, or store updates are not reflected in the UI. Prevents lost tracking from destructuring, conditional signal access, async tracking loss, and stale closures. Covers diagnostic flowcharts, solid-devtools debugging, effect tracking issues, store propagation failures, and systematic symptom-to-fix resolution. Keywords: reactivity debugging, effect not firing, store not updating, signal tracking, solid-devtools, stale closure, createEffect, UI not updating, why doesn't my UI update, signal not working, reactive value stale, nothing happens when I change state.
- ▌ Pdflib Impl Merging · impertio-studio bundleUse when merging, splitting, or reordering PDF pages across documents with pdf-lib. Prevents the critical cross-document error: directly adding pages from another document instead of using copyPages() first, which corrupts the PDF. Covers copyPages workflow, merge patterns, page extraction, splitting, reordering. Keywords: copyPages, merge, split, extract, addPage, insertPage, cross-document, merge PDFs, combine PDFs, split PDF, extract pages, join PDF files, reorder pages.
- ▌ Pdflib Syntax Text · impertio-studio bundleUse when drawing text on PDF pages with pdf-lib, including positioning, multiline text, and text measurement. Prevents the common mistake of using top-left coordinates for text positioning (pdf-lib uses bottom-left origin). Covers drawText options, text wrapping with maxWidth, font measurement methods. Keywords: drawText, setFont, setFontSize, widthOfTextAtSize, heightAtSize, multiline, maxWidth, add text to PDF, write text, text wrapping, measure text width, position text.
- ▌ Pdflib Errors Fonts · impertio-studio bundleUse when encountering font errors in pdf-lib — WinAnsi encoding failures, fontkit registration errors, or unicode characters not rendering. Prevents repeated debugging: standard fonts ONLY support Latin-1 (WinAnsi). Any non-Latin text requires custom fonts via @pdf-lib/fontkit. Covers WinAnsi errors, fontkit setup, font embedding failures, form font issues. Keywords: WinAnsi, encoding error, fontkit, unicode, font embedding, Latin-1, diacritics, special characters not showing, font error, accented characters, Chinese Japanese Korean, non-English text.
- ▌ Pdflib Syntax Fonts · impertio-studio bundleUse when embedding fonts in pdf-lib or handling non-ASCII text in PDFs. Prevents the #1 font error: using standard fonts for unicode text, which throws WinAnsi encoding errors. Standard fonts only support Latin-1 characters. Covers StandardFonts, custom TTF/OTF embedding, fontkit registration, text measuring. Keywords: embedFont, StandardFonts, fontkit, registerFontkit, WinAnsi, unicode, TTF, OTF, use custom font, embed font in PDF, font not working, add text with special characters.
- ▌ Pdflib Syntax Forms · impertio-studio bundleUse when working with PDF form fields in pdf-lib — reading, creating, or manipulating fields. Prevents the common mistake of not calling form.flatten() after filling, leaving forms editable when they should be locked. Covers getForm, all field types (text, checkbox, radio, dropdown), field properties, flattening. Keywords: getForm, PDFForm, PDFTextField, PDFCheckBox, PDFRadioGroup, PDFDropdown, flatten, read form fields, create form, add text field, add checkbox, interactive PDF form.
- ▌ Pdflib Syntax Pages · impertio-studio bundleUse when adding, removing, or manipulating pages in a pdf-lib document. Prevents incorrect page sizing by providing the complete PageSizes enum (55 sizes) and correct dimension methods. Covers addPage, insertPage, removePage, getPage, page dimensions, rotation, page boxes, content transformations. Keywords: addPage, insertPage, removePage, getPage, PageSizes, setSize, rotation, add page, remove page, page size, A4, Letter, rotate page, blank page.
- ▌ Pdflib Agents Review · impertio-studio bundleUse when reviewing or validating pdf-lib code before deployment. Prevents shipping broken PDF generation: runs a 7-point checklist covering async/await, coordinate system, font handling, imports, form handling, and known anti-patterns. Catches issues Claude's default code generation misses. Keywords: review, validate, audit, checklist, code review, anti-pattern, quality check, check my PDF code, verify pdf-lib usage, is my PDF correct.
- ▌ Pdflib Errors Common · impertio-studio bundleUse when debugging unexpected pdf-lib behavior — blank pages, wrong positions, missing content, or runtime errors. Prevents the top 10 pdf-lib mistakes: forgotten await, wrong coordinate origin, unsupported image formats, cross-document page errors, case-sensitive field names, color values 0-255 instead of 0-1. Covers async errors, coordinate bugs, image format errors, form field issues. Keywords: debug, blank page, wrong position, undefined, await, coordinate, 0-255, field not found, PDF is blank, text in wrong place, nothing shows up, PDF broken, content missing.
- ▌ Pdflib Syntax Images · impertio-studio bundleUse when embedding or drawing images in pdf-lib PDFs. Prevents the common mistake of using unsupported image formats (only PNG and JPG are supported — no SVG, GIF, or WebP). Covers embedPng, embedJpg, drawImage, image scaling, aspect ratio preservation. Keywords: embedPng, embedJpg, drawImage, PDFImage, scale, scaleToFit, image, PNG, JPG, add image to PDF, insert logo, embed picture, resize image in PDF.
- ▌ Pdflib Errors Loading · impertio-studio bundleUse when PDFDocument.load() fails with encryption errors, malformed PDF errors, or unexpected parsing failures. Prevents silent data loss: pdf-lib cannot decrypt PDFs — ignoreEncryption only skips the check, it does not decrypt content. Covers encrypted PDF handling, malformed PDF recovery, load options, error patterns. Keywords: load error, encrypted, ignoreEncryption, malformed, throwOnInvalidObject, parse error, can't open PDF, PDF won't load, encrypted PDF error, corrupted PDF, PDF parse failed.
- ▌ Pdflib Impl Page Layout · impertio-studio bundleUse when positioning content on PDF pages — margins, centering, columns, or content flow across pages. Prevents the #1 layout mistake: using top-left coordinates instead of pdf-lib's bottom-left origin. Provides a top-down positioning helper pattern (height - y). Covers coordinate strategies, margins, centering, multi-column, page breaks. Keywords: layout, margin, center, column, coordinate, top-down, position, content flow, position content, center text, add margins, multi-column PDF, page break, content overflow.
- ▌ Pdflib Syntax Drawing · impertio-studio bundleUse when drawing shapes, lines, or SVG paths on PDF pages with pdf-lib. Prevents the common color value mistake: pdf-lib uses 0-1 range for rgb/cmyk, not 0-255. Covers drawRectangle, drawCircle, drawLine, drawSvgPath, color constructors (rgb, cmyk, grayscale), rotation helpers. Keywords: drawRectangle, drawCircle, drawLine, drawSvgPath, rgb, cmyk, grayscale, BlendMode, draw shapes, add line, draw on PDF, colors, rectangles circles, SVG path.
- ▌ Pdflib Core Architecture · impertio-studio bundleUse when starting a new pdf-lib project, setting up imports, or understanding the library architecture. Prevents the #1 AI mistake: forgetting async/await on pdf-lib operations and using top-left coordinates instead of bottom-left. Covers PDFDocument lifecycle, key types, coordinate system, installation, fontkit setup. Keywords: pdf-lib, PDFDocument, PDFPage, setup, install, coordinate system, async, await, how pdf-lib works, create PDF, generate PDF, getting started, PDF from scratch.
- ▌ Pdflib Impl Form Filling · impertio-studio bundleUse when filling existing PDF forms or creating form-filling workflows with pdf-lib. Prevents the #1 form mistake: not calling form.updateFieldAppearances() with a custom font before flattening, causing unicode text to disappear. Covers form loading, field filling, checkbox/radio/dropdown, unicode fonts, flattening. Keywords: form.flatten, setText, check, select, updateFieldAppearances, PDFForm, fillable, fill PDF form, auto-fill, populate form fields, lock form after filling, checkbox dropdown.
- ▌ Pdflib Syntax Document · impertio-studio bundleUse when creating, loading, or saving PDFs with pdf-lib, or setting PDF metadata. Prevents common mistakes: missing load options for encrypted PDFs, forgetting saveAsBase64 for browser contexts, and metadata not persisting due to wrong setter order. Covers PDFDocument.create(), load(), save(), metadata, attachments. Keywords: PDFDocument, create, load, save, saveAsBase64, metadata, title, author, encrypt, new PDF, open existing PDF, save PDF to file, download PDF, set PDF properties.
- ▌ Pdflib Impl PDF Generation · impertio-studio bundleUse when building complete PDF documents from scratch with pdf-lib — invoices, reports, certificates, or multi-page layouts. Prevents content overflow by providing page-break detection and content flow patterns. Covers multi-page generation, headers/footers, page numbering, table layouts, templates. Keywords: invoice, report, template, header, footer, page number, table, multi-page, generate, create PDF, generate invoice, build report, make PDF from scratch, PDF with tables.
- ▌ Pdflib Agents Project Scaffolder · impertio-studio bundleUse when scaffolding a new pdf-lib project or adding pdf-lib to an existing project. Prevents incomplete setup: ensures TypeScript config, fontkit registration, and correct imports are all in place from the start. Covers Node.js and browser variants, TypeScript setup, dependency installation. Keywords: scaffold, setup, new project, boilerplate, TypeScript, fontkit, npm install, create PDF project, start pdf-lib, generate PDF app, getting started with pdf-lib.
- ▌ Thatopen Impl Bcf · impertio-studio bundleUse when implementing BCF (BIM Collaboration Format) issue tracking, viewpoint management, or IDS validation in a ThatOpen viewer. Prevents BCF version mismatches and missing topic configuration. Covers BCFTopics (create, load, export), BCF v2.1 and v3.0 support, Viewpoints, topic configuration, IDSSpecifications overview. Keywords: bcf, topic, viewpoint, issue, collaboration, ids, export, import, bim collaboration format, snapshot, share issues, track problems, report clash.
- ▌ Thatopen Impl Viewer · impertio-studio bundleUse when setting up a ThatOpen BIM viewer from scratch, creating worlds, configuring renderers, or initializing the 3D viewport. Prevents missing init() calls and incorrect world setup order. Covers complete viewer setup: Worlds.create(), SimpleScene, SimpleRenderer, PostproductionRenderer, OrthoPerspectiveCamera, Grids, components.init(), container binding, dispose lifecycle. Keywords: viewer, world, scene, renderer, camera, grid, setup, init, dispose, postproduction, viewport, container, webgl, create viewer, embed viewer, viewer not rendering, blank canvas.
- ▌ Thatopen Syntax UI · impertio-studio bundleUse when building BIM user interfaces with ThatOpen UI components, creating panels, toolbars, or property displays. Prevents missing BUI.Manager.init() and incorrect component usage. Covers @thatopen/ui web components (bim-panel, bim-toolbar, bim-table, bim-grid, bim-button, inputs), CSS theming, @thatopen/ui-obc functional components, Lit web component patterns. Keywords: ui, panel, toolbar, table, grid, button, bim-panel, lit, web components, theming, css custom properties, ui-obc, create sidebar, add toolbar, custom BIM interface.
- ▌ Thatopen Core Web Ifc · impertio-studio bundleUse when working with web-ifc directly for IFC parsing, querying IFC entities, extracting geometry, or understanding the WASM engine beneath ThatOpen components. Prevents WASM initialization failures and memory leaks from unclosed models. Covers IfcAPI, SetWasmPath, Init, OpenModel, GetLine, GetFlatMesh, StreamAllMeshes, properties helper, LoaderSettings, schema detection. Keywords: web-ifc, wasm, ifc, parser, ifcapi, geometry, properties, spatial structure, express id, flatmesh, parse IFC in browser, read IFC JavaScript, IFC web.
- ▌ Thatopen Core Fragments · impertio-studio bundleUse when working with ThatOpen's fragment system for BIM model storage, loading, querying, or understanding the optimized geometry pipeline. Prevents worker initialization failures and memory leaks from undisposed models. Covers FragmentsManager, FragmentsModel, ModelIdMap, worker initialization, coordinate alignment, raycast, getData, GUID mapping. Keywords: fragments, fragmentsmanager, modelidmap, worker, instanced mesh, flatbuffers, bim model, load, dispose, raycast, how models are stored, fragment format, model data structure.
- ▌ Thatopen Impl Federation · impertio-studio bundleUse when loading multiple IFC models, coordinating model positions, controlling per-model visibility, or working with multi-model scenarios. Prevents coordinate misalignment and visibility management errors. Covers multi-model loading, coordination matrix, Hider (set/isolate/toggle), BoundingBoxer (fit, camera orientation), per-model visibility, cross-model queries via ModelIdMap. Keywords: federation, multi-model, coordination, hider, visibility, isolate, bounding box, alignment, model, hide, show, load multiple models, combine IFC files, show hide elements.
- ▌ Thatopen Impl Navigation · impertio-studio bundleUse when configuring camera navigation modes, switching between orbit and first-person views, or implementing plan view for floor plans. Prevents incorrect projection usage and navigation mode conflicts. Covers OrthoPerspectiveCamera modes (Orbit, FirstPerson, Plan), projection switching, fit() framing, custom navigation modes, camera controls, frustum settings, user input toggling. Keywords: navigation, camera, orbit, first person, plan, projection, perspective, orthographic, fit, controls, zoom, pan, rotate, fly to, look at, camera position, walk through model.
- ▌ Thatopen Errors Loading · impertio-studio bundleUse when IFC loading fails, WASM initialization errors occur, or fragment worker initialization problems arise. Prevents common loading failures by documenting exact error patterns. Covers WASM init failures, IFC parse errors, WASM path misconfiguration, web-ifc version mismatches, worker initialization failures, missing IFC classes, silent failures, COORDINATE_TO_ORIGIN issues. Keywords: error, loading, wasm, ifc, parse, failed, worker, init, setup, path, version, mismatch, crash, fix, model won't load, IFC loading failed, wasm not found, blank screen.
- ▌ Thatopen Core Architecture · impertio-studio bundleUse when creating a ThatOpen BIM application, understanding the component system, or reasoning about the ThatOpen architecture. Prevents direct component instantiation instead of using components.get(). Covers Components container, Component base class, lifecycle interfaces, World system, package split (core vs front), Event system, DataMap/DataSet. Keywords: thatopen, components, world, scene, renderer, camera, lifecycle, disposable, updateable, configurable, bim, architecture, how ThatOpen works, component system, project structure.
- ▌ Thatopen Impl Highlighting · impertio-studio bundleUse when implementing element selection, hover effects, outline visualization, or converting fragments to meshes in a ThatOpen viewer. Prevents missing Highlighter setup and style configuration errors. Covers Highlighter (click selection with styles), Hoverer (hover animation), Outliner (post-processing outlines), Mesher (fragment-to-mesh), FastModelPicker (GPU picking), multi-select, zoom-to-selection, autoToggle. Keywords: highlighter, selection, hover, outline, pick, highlight, multi-select, color, style, mesher, fast model picker, click to select, hover effect, selected element color.
- ▌ Thatopen Impl Measurements · impertio-studio bundleUse when adding measurement tools to a ThatOpen BIM viewer, including distance, area, volume, and angle measurements. Prevents measurement lifecycle errors and missing snapping configuration. Covers LengthMeasurement, AreaMeasurement, VolumeMeasurement, AngleMeasurement, Measurement base class, snapping, units, modes, valueFormatter, measurement lifecycle (create/end/cancel/delete). Keywords: measurement, length, area, volume, angle, distance, snap, dimension, measure, units, picker, measure distance, how far apart, calculate area in viewer.
- ▌ Thatopen Impl Clipping Plans · impertio-studio bundleUse when adding clipping planes, floor plan views, or cross-section visualization to a ThatOpen BIM viewer. Prevents using deprecated v2 Plans/ClipEdges patterns. Covers Clipper (create, delete, drag), ClipStyler (styles, createFromView, createFromClipping), View system, Plan camera mode, edge visualization, programmatic plane creation. Keywords: clipper, clipping, plane, section, floor plan, clip edges, clip styler, view, cut, cross section, slice model, cut through building, show floor plan.
- ▌ Thatopen Syntax Components · impertio-studio bundleUse when accessing ThatOpen components, implementing custom components, or working with the component lifecycle and event system. Prevents direct instantiation of components instead of using get(). Covers components.get() singleton pattern, component registration, lifecycle interface implementation, Event system, DataMap, DataSet reactive collections. Keywords: components, get, singleton, uuid, lifecycle, event, datamap, dataset, disposable, updateable, configurable, component api, how to use components, register component.
- ▌ Thatopen Syntax Properties · impertio-studio bundleUse when querying IFC properties, classifying model elements, or extracting data from loaded ThatOpen fragments. Prevents inefficient property queries and missing classifications. Covers Classifier (byCategory, byIfcBuildingStorey, byModel), find() queries, FragmentsManager.getData(), ItemsFinder, IFC relationships. Keywords: classifier, properties, ifc, category, storey, find, getdata, spatial structure, property set, quantity set, classification, get properties, read pset, filter by type.
- ▌ Thatopen Errors Performance · impertio-studio bundleUse when experiencing memory leaks, slow rendering, browser tab crashes, or performance issues with large BIM models. Prevents memory leaks from undisposed resources and main thread blocking. Covers disposal patterns, memory management, worker usage, BVH raycasting, polygon offset z-fighting, fragment optimization, large model strategies. Keywords: performance, memory, leak, dispose, slow, crash, large model, worker, optimization, z-fighting, disposal, gpu, browser, laggy, low FPS, browser freezes, out of memory.