Required, Optional, and Prohibited Specifications
Lesson 13 of 16 • ~2 min
When defining a Specification, you also indicate how strictly the requirement applies. IDS allows each Specification to be marked as Required, Optional, or Prohibited :
- Required Specification: The specified information must exist in the model. All applicable elements must comply, and at least one applicable element must be present. For example, if a Specification says "all walls must have fire rating," marking it Required means the model must contain walls, and every wall must indeed have that property .
- Optional Specification: The information is needed only if relevant elements are present. If no applicable elements exist, it's not a failure; but if they do exist, they must comply . In the wall fire rating example, if marked Optional, the model is allowed to have no walls at all; but if it has walls, they must have fire ratings.
- Prohibited Specification: The specified information must not appear in the model . This is used to ensure something is absent. For instance, a Prohibited Specification could assert that no walls should have a certain property. If any applicable element has that forbidden information, the model fails the check.
In summary, Required means "we expect to find this," Optional means "only relevant if present," and Prohibited means "we should not find this at all." By default, most IDS use Required for mandatory deliverables, but Optional and Prohibited are useful for flexible or exclusion rules.
(Advanced: Internally, the IDS schema handles this via cardinality constraints. A Required spec corresponds to a minimum occurrence of 1 for the applicable elements, Optional to a minimum of 0, and Prohibited to a maximum of 0 . Similarly, individual requirement facets can be marked required/optional/prohibited to refine whether a particular piece of data is mandatory or just nice-to-have if present . The checking software uses these settings to interpret pass/fail conditions, but as an IDS author you usually just choose from Required/Optional/Prohibited in plain terms.)