Class Parameter Allowed Values Replaced
The allowed-value set on a ClassParameter binding was replaced wholesale.
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.
| Field | Type | Meaning |
|---|---|---|
classParameterId | ClassParameterId | The assignment whose values were replaced |
objectClassId | ObjectClassId | Class holding the assignment |
parameterKeyId | ParameterKeyId | Canonical key |
allowedValueCount | number | Size of the new set. This is the only event that populates it |
Raised by
ClassParameter.replaceAllowedValues—apps/api-v1/src/modules/bim-ontology/core/domain/class-parameter/ClassParameter.ts, only when the new set actually differs from the current oneReplaceClassParameterAllowedValuesUseCase.replaceClassParameterAllowedValues—apps/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.