schema_interface
PIComposer APIPIComposer API

schema_interface#

Provides interfaces for EXPRESS schema definitions—including TYPE, ENTITY, SELECT, and ENUM— represented as descriptors, and for EXPRESS data content, represented as accessors. This package also defines the interfaces for PIComposer's template system.

@license Copyright 2025 Procedure Information System, LLC. All rights reserved. Use of this source code is governed by a commercial license agreement.

Classes#

ClassDescription
IAttributeDescriptor Describes the type information for a single attribute of an ENTITY.
IBlocklyAfterEventProcedureTemplate
IBlocklyBeforeEventProcedureTemplate
IBlocklyDictionaryTemplate Interface for dictionary templates used to define application configuration and user-defined types.
IBlocklyEntityProcedureTemplate A Blockly procedure template that produces an ENTITY instance as its result.
IBlocklyEnumTemplate Specialized template for defining enumeration (ENUM) types.
IBlocklyEventProcedureTemplate
IBlocklyInstanceTemplate A specialized procedure template that combines data and code into a single package.
IBlocklyInstanceTransformTemplate A specialized procedure template designed to update and transform entity instances.
IBlocklyModelProcedureTemplate A specialized procedure template that generates complete models.
IBlocklyModelTransformTemplate A specialized procedure template designed to update and transform PIComposer models.
IBlocklyProcedureTemplate Base type for procedure templates that define executable functionality.
IBlocklyPropertySetTemplate Specialized template for defining property sets (Pset).
IBlocklyQuantitySetTemplate Specialized template for defining quantity sets (Qset).
IBlocklySpatialTemplate Specialized template for generating models with defined spatial structures.
IBlocklyTemplate Base interface for PIComposer's Blockly template system.
IBlocklyTemplateController A specialized model instance designed to track instantiation of instance templates and instance procedures within a model, acting as a transaction log for these templates.
IBlocklyTimerEventProcedureTemplate A generic procedure template that provides continuous repetitive execution of user-defined custom logic at timed intervals.
IBlocklyUserDefinedEntityTemplate Specialized template for defining user-defined entity types.
IComplexInstance Manages the constituent parts of an EXPRESS complex entity instance.
IDerivedAttributeDescriptor Represents a derived attribute whose value is inferred rather than stored.
IEntityDescriptor Descriptor for an ENTITY type in the EXPRESS schema system.
IEnumDescriptor Descriptor for an ENUMERATION type in the EXPRESS schema system.
IInstance The central element of the ISO 10303 application protocol model is the ENTITY.
IInstanceReference Interface for objectifed instance reference. current not in use
InstanceHandle Represents a reference handle to an instance and encodes the lookup key information for the persistent key-value store.
InstancePath An InstancePath combines an InstanceHandle with a path ( List<dynamic> ) to uniquely identify attribute locations within a model.
INullableObject Interface used to indicate that an object represents a null value.
IObjectFactory Factory for creating runtime objects and managing instance identifiers.
ISchema Provides schema definition and description services for EXPRESS schemas.
ISchemaFactory Manages access to ISchema instances within the system.
ISelect Interface for managing EXPRESS SELECT data.
ISelectDescriptor Descriptor for an EXPRESS SELECT type definition.
ISTPObjectFactory An object factory interface for non-IFC schemas.
ITypeDescriptor Descriptor for a defined type in the EXPRESS schema system.
NullChecker
NullEnumDescriptor This descriptor is used as a placeholder or default implementation for handling null or undefined enum types while maintaining null safety. It returns empty or zero values for all enum operations and creates enum instances with a default value.
NullTypeDescriptor This descriptor is used as a placeholder or default implementation for handling null or undefined defined types while maintaining null safety. It returns empty or zero values for all type operations.
PIComposerAPIFFI
PIEnum Represents an instance of an EXPRESS enumeration type.
protected
TemplateInstanceHandle Represents a reference handle to a template instance and encodes the lookup key information for the persistent key-value store.

Enums#

EnumDescription
BlocklyOwnerShip Enumeration defining ownership types for Blockly templates.
EnumSelectExt
ExportFormat Supported formats for exporting model data.
FundamentalType Fundamental logical categorization of instance attribute types.
InstanceRunTimeType
PIAttributeFlag 0 -> normal/explict 1 -> optional 2 -> overrided in sub 3 -> deriver (the sub attribute that derive the super attribute, this attribute does not show up in an instance) 4 -> derived in sub
PILanguages Supported languages for Blockly workspace code generation.
RelationCharacteristics Characteristics of parent-child or from-to relationships between entities.
SupportedSchema ISO 10303 Application Protocol schemas supported by PIComposer.

Extensions#

ExtensiononDescription
IInstanceExtension IInstance Extension on the IInstance interface providing convenient utility functions.

Functions#

FunctionDescription
blocklyOwnerShipFromString
getFundamentalBaseType Returns the base element type of an aggregate FundamentalType .
getFundamentalTypeDimension Gets the dimensionality of a FundamentalType .
ifcShapeRepresentationType Determines the IFC representation type based on the items in a shape representation.
isAggregate Checks if the given FundamentalType represents a collection type.
isComplexFundamentalType Checks if a given FundamentalType is considered a complex type.
isIfcSchema Determines if the given schema is an IFC (Industry Foundation Classes) type.
isInstanceFundamentalType Checks if a given FundamentalType is an instance type.
isValidPath Validates whether a given attribute path is structurally correct.
removeNonAlphanumeric Removes all non-alphanumeric characters from a string.
schemaFromString Converts a string representation to a SupportedSchema enum value.
stepCompare ISO 10303 compliant string ordering comparison function.
toRealList Converts a dynamic value to a list of doubles, if possible.
toRealList2 Converts a dynamic value to a 2-dimensional list of doubles, if possible.
toRealList3
toTypedList<T> Converts a dynamic value to a typed list of T, if possible.
toTypedList2<T> Converts a dynamic value to a typed 2-dimensional list of T, if possible.
toTypedList3<T>
toTypeId Computes a FNV-1a inspired 32-bit unsigned integer hash from a string.

Properties#

PropertyDescription
AfterEventProcedureTemplateId
AnnotationId
ApplicationId
AsymmetricIShapeProfileDefId
Axis2Placement3DId
Axis2PlacementId
BeforeEventProcedureTemplateId
BuildingStoreyId
CircleHollowProfileDefId
CircleProfileDefId
ComplexEntityInstanceId
CShapeProfileDefId
DictionaryTemplateId
DoorId
DynamicEntityInstanceId
ElementId
ElementQuantityId
EllipseProfileDefId
EnumTemplateId
EventProcedureTemplateId
FeatureElementId
FeatureElementSubtraction
GenericProcedureTemplateId
GeometricRepresentationContextId
GeometricRepresentationItemId
GeometricRepresentationSubContextId
GridId
GridPlacementId
GuidType
ifc_application_reference_types
InstanceTemplateId
InstanceTransformTemplateId
IShapeProfileDefId
LinearElementId
LocalPlacementId const LocalPlacementId
LShapeProfileDefId
MappedItemId
ModelTransformTemplateId
OpeningElementId
OrganizationId
OwnerHistoryId
ParameterizedProfileDefId
PersonAndOrganizationId
PersonId
PIEntityComponentReferenceId
PIEntityId
PIEntityInstanceReferenceId
PolyLineId
PortId
PositioningElementId
PresentationLayerAssignmentId
PresentationLayerWithStyleId
ProceduralEntityTemplateId
ProceduralModelTemplateId
ProcedureTemplateId
ProductDefinitionShapeId
ProductId
ProjectId
PropertySetDefinitionId
PropertySetId
PropertySetTemplateId
QuantitySetTemplateId
RectangleHollowProfileDefId
RectangleProfileDefId
RelAggregatesId
RelAssignsId IfcRelDefines
RelAssociatesId
RelAssociatesMaterialId
RelConnects
RelConnectsElements
RelConnectsPathElementsId
RelConnectsPortsId
RelConnectsPortToElementId
RelConnectsStructuralActivityId
RelConnectsStructuralMemberId
RelConnectsWithEccentricityId
RelConnectsWithRealizingElementsId
RelContainedInSpatialStructureId
RelCoversBldgElementsId
RelCoversSpacesId
RelDeclaresId
RelDecomposesId
RelDefinesByPropertiesId
RelDefinesByTypeId
RelDefinesId
RelFillsElementId
RelFlowControlElementsId
RelInterferesElementsId
RelNestsId
RelPositionsId
RelProjectsId
RelReferencedInSpatialStructureId
RelSequenceId
RelServicesBuildings
RelSpaceBoundaryId
RelVoidsElementId
RepresentationItemId
RepresentationMapId
RoundedRectangleProfileDefId
ShapeRepresentationId
SpatialElementId
SpatialTemplateId
stpRepresentationItemId
stpShapeRepresentationId
StructuralItemId
StyledItemId
TemplateControllerId
TimerEventProcedureTemplateId
TransferControllerId
TrapeziumProfileDefId
TShapeProfileDefId
TypeProductId
UnitAssignmentId
UserDefinedEntityTemplateId
UShapeProfileDefId
WindowId
zero constants:
ZShapeProfileDefId

Constants#

ConstantDescription
ComplexFunTypes Fundamental types that represent complex data structures capable of holding attributes.
guidStrLength
InstanceFunTypes Fundamental types that specifically represent an ENTITY or an aggregate of ENTITY types.
kAddInverseKey
kAtAddressKey kAtAddressKey (value = IInstance.hash )
kComposites
kHasErrorKey
kIndexEscapeKey
kInstanceIdKey
kInstanceTransformInitializer
kInstanceTransformRootFolderName
kInstanceTransfromAPIFileName
kInstanceTransfromAPIFolderName
kInstanceTypeKey kInstanceTypeKey
kInverseKey
kMinInterval
kModelTransformInitializer
kModelTransformRootFolderName
kModelTransfromAPIFileName
kModelTransfromAPIFolderName
kNullVector
kProcedureInstanceAPIFileName
kProcedureInstanceAPIFolderName
kProcedureInstanceInitializer
kProcedureInstanceRootFolderName
kProcedureModelAPIFileName
kProcedureModelAPIFolderName
kProcedureModelInitializer
kProcedureModelRootFolderName
kReferenceKey kReferenceKey (value = Instance)
kTemplateTransformAPIFileName
kTemplateTransformAPIFolderName
kTemplateTransformRootFolderName
kTemplateTransfromInitializer
SizePrefixedOffset

Typedefs#

TypedefDescription
PIAttributePath A path defined as a list of tokens where each token is either a string or an integer.
VoidPointerUtf8
VoidPointerUtf8Native