picomposer_api#
This workspace contains the following packages.
Packages#
picomposer_api#
schema_interface#
Platform-agnostic Dart interface for data models defined by the EXPRESS schema language (ISO 10303-11) — the foundation for engineering data standards like IFC, STEP, and CIS/2. Defines the abstract contracts used to inspect schema definitions (TYPE, ENTITY, SELECT, and ENUM) and to access and manipulate EXPRESS data instances, and provides the foundation for PIComposer's Blockly template system.
| Library | Description |
|---|---|
| schema_interface |
Defines the platform-agnostic Dart contract for working with data models described by the EXPRESS schema language (ISO 10303-11) — the foundation of engineering standards such as IFC, STEP, and CIS/2. Provides schema descriptors (ISchema, IEntityDescriptor, ITypeDescriptor, IEnumDescriptor, ISelectDescriptor) for inspecting TYPE, ENTITY, SELECT, and ENUM definitions, and instance accessors (IInstance) for working with individual data records. The IInstance interface supports both an imperative API (direct typed getters and setters such as getBool, setString) for performance-critical code, and a declarative API (path-based access via PIAttributePath, and JSON-driven bulk updates via setAttributesByJson) suited to scripting, configuration, and template use cases. The package also defines the template interfaces (IBlocklyTemplate, IBlocklyProcedureTemplate, IBlocklyDictionaryTemplate, IBlocklySpatialTemplate, and others) that power PIComposer's Blockly visual scripting system, letting domain experts generate, transform, and define models through block-based templates without writing traditional code.
|
store_interface#
High-level Dart interface for managing structured-data projects, models, backups, and visual-programming templates in PIComposer. Defines the contracts for an IStore singleton that owns IProject containers of IModel data — with specialized IIfcModel (BIM) and ISTPModel (ISO 10303 STEP) types, immutable IReferenceModel overlays with change tracking, and the cross-project ITemplateManager that powers the Blockly workspace.
| Library | Description |
|---|---|
| store_interface | Defines the high-level Dart contract for managing structured-data projects in PIComposer, sitting one layer above schema_interface. The architecture is rooted in the IStore singleton — the entry point that owns a collection of IProject containers, manages license state, and exposes the cross-project ITemplateManager. Each IProject holds a set of IModel instances (the base interface for create, query, save, delete, batch, and path-based attribute operations) together with backup metadata for restore and purge workflows. Two specializations of IModel are defined for standards-based data: IIfcModel (Building Information Modeling, with spatial-hierarchy management across Project → Site → Building → Storey → Element, geometric representation contexts, property-set and material associations, and cross-model copying with composed dependencies) and ISTPModel (ISO 10303 STEP, supporting application protocols AP203, AP210, AP214, AP238, AP242, and CIS/2). The IReferenceModel interface represents an immutable base model with a mutable overlay, recording added, updated, and deleted instances for non-destructive editing, audit trails, and revert or restore. The package also defines ITemplateManager — the registry that backs PIComposer's Blockly visual scripting system — supporting instance, procedure, transform, property-set, quantity-set, spatial, timer-event, user-defined-entity, and dictionary templates shared across all projects. |
