event

Class Parameter Allowed Values Replaced

The allowed-value set on a ClassParameter binding was replaced wholesale.

EventStatus: Implemented in api-v1

Purpose

Records a whole-set replacement of the ParameterValue options permitted on one ClassParameter binding — never an incremental add or remove. The set invariants (no duplicate value, at most one default) are validated before the no-change early return, so a replay that violates them still surfaces the error.

This is the only one of the four ClassParameter* events that does not reach the Revit projection side: changing which values are allowed does not change which object classes contribute to a projection’s category set.

Payload

Envelope is { name, occurredAt, payload } (apps/api-v1/src/modules/shared/domain/events/DomainEvent.ts). All four ClassParameter* events share one payload type.

FieldTypeMeaning
classParameterIdClassParameterIdThe assignment whose values were replaced
objectClassIdObjectClassIdClass holding the assignment
parameterKeyIdParameterKeyIdCanonical key
allowedValueCountnumberSize of the new set. This is the only event that populates it

Raised by

  • ClassParameter.replaceAllowedValuesapps/api-v1/src/modules/bim-ontology/core/domain/class-parameter/ClassParameter.ts, only when the new set actually differs from the current one
  • ReplaceClassParameterAllowedValuesUseCase.replaceClassParameterAllowedValuesapps/api-v1/src/modules/bim-ontology/core/application/use-cases/ClassParameterUseCases.ts
  • HTTP: replaceClassParameterAllowedValues. validateClassParameterAllowedValues runs the same invariants without writing, and emits nothing

Consumers

RenderedParamTemplatesSyncHandler (adapters/inbound/events/) only, registered in bim-ontology.composition.ts. It calls SyncObjectClassRenderedParamTemplatesUseCase so inherited rows on descendant classes pick up the new allowed-value set.

ClassParameterDerivedRevitCategoryHandler is deliberately not registered for this event.