As discussed with @alelom - creation of new Specification object consisting of a list of Checks and a Filter.
See images below prototyping (with CustomObjects) a workflow specifically for a DomainCheck based Specification applied to a Derived Properties of a BHoM Object filtered by Type
Verification of the Objects Specification as shown above can can form the basis of an Verification Engine Method - relying on Run ExtensionMethod for Derived Properties - and naturally a simple Property query for Defining Properties. Method can have some intelligence to check and switch depending on the Query being provided - returning Error if no such Property is found.
Discussed with @alelom the concept of IChecks and IFilters both implementing ILogical which can be the basis for logical Boolean operations on the Filters and Checks.
With the following IChecks to be implemented
Value
Tolerance
Domain
Set
Boolean
See concepts of Source and check justification comment as properties of the Check
As discussed with @alelom - creation of new
Specification
object consisting of a list ofChecks
and aFilter
.See images below prototyping (with CustomObjects) a workflow specifically for a
DomainCheck
basedSpecification
applied to a Derived Properties of a BHoM Object filtered by TypeVerification of the Objects Specification as shown above can can form the basis of an
Verification
Engine Method - relying on Run ExtensionMethod for Derived Properties - and naturally a simple Property query for Defining Properties. Method can have some intelligence to check and switch depending on the Query being provided - returning Error if no such Property is found.Discussed with @alelom the concept of
IChecks
andIFilters
both implementingILogical
which can be the basis for logical Boolean operations on the Filters and Checks.With the following
IChecks
to be implementedSee concepts of Source and check justification comment as properties of the Check