Validation Service Updates

Hi :wave:

In this thread, we will inform you of planned and recently released features of the bSI Validation Service. We will cover new platform features as well as new rules implemented.

:heavy_check_mark: We will be editing this post to update on major releases and minor fixings.

:heavy_multiplication_x: We will not use this post to deal with feature/rule requests or generic questions regarding the Validation Service or Software Certification. For these and other topics unrelated to the update of the Validation Service, please start a new topic. We reserve the right to move off-topic posts to new threads.

If you want to stay updated, turn on notifications for that topic. :bell:

6 Likes

:mega: v.0.6 - Release Note

April 22, 2024

  1. Faster and more reliable platform infrastructure
    Migrated the platform from Flask + RQ + Redis + PostgreSQL to Django + Celery + Redis + PostgreSQL, resulting in increased resilience, improved performance and better scaling options. It builds upon a strong foundation with a “batteries included” philosophy to quickly deliver new functionality - for example API services, background tasks, reporting and administration.

  2. Prerequisite check on official IFC versions
    Gateway check to ensure the uploaded IFC files use one of the official IFC versions, preventing further validations in case they are not.

  3. New rules
    Benefit from 17 new validation rules, including 12 focusing specifically on IfcAlignment and 1 rule on industry practices. All rules, other than syntax and schema checks, are available here.

  4. Easier rule authoring for developers
    Simplified rule authoring processes make it easier to customize and create rules tailored to specific requirements.

  5. Checks of Industry Practices
    Introduced industry best practices checks that provide warnings (not errors) on common practices and sensible defaults. See Industry Practices.

  6. Introduce validation outcome codes
    Validation outcomes (pass, error, warning) are now categorized and assigned to outcome codes. This allows for improved overall metrics for the IFC files being validated.

  7. Introduce ‘Not-Applicable’ status for rules and bSDD
    Previously, there wasn’t a distinction between rules passing on instances from the model versus rules not failing because the relevant data was not present in the model (or schema). For example, a rule that checks the segments of an alignment, is never relevant to an IFC2X3 model, and only relevant to an IFC4.3 model, when the model contains IfcAlignment entities. This distinction is now visible in the reports.

  8. Basic documentation
    All README files and other documentation from the code repositories
    have been combined into a single location and can now be viewed at buildingsmart.github.io/validate. Any corrections or suggestions can be proposed via pull request to the /docs folder in the gh-pages branch of the validate repository.


IMPORTANT
While this upgrade is aimed at improving performance, scalability, and reliability, the migration to a new infrastructure and to a different data model comes with a necessary change: all current validation reports will be deleted with the release of the new version.

We encourage you to take advantage of these enhancements by validating your files again to be checked against the updated rule set. By doing so, you’ll ensure that you receive the most up-to-date and complete validation reports.

6 Likes

:wrench: v.0.6.1

May 02, 2024

  • Bug fixes
  • Rule fix: SPS002
  • Minor improvements

:wrench: v.0.6.2

May 13, 2024

  • Rule fix: PSE001
  • Minor improvements

:wrench: v.0.6.3

June 10, 2024

  • 2 new rules: SPS007, OJT001
  • Rule fix: PSE001
  • Minor performance improvements

v.0.6.4

June 21, 2024

  • :mega: 4 new rules:
    • PJS101 - Project presence (Industry Best Practice)
    • PJS002 - Correct elements related to project
    • IFC102 - Absence of deprecated entities
    • BLT001 - Correct use of operation type attributes for doors
  • :wrench: Rule fixes: SPS007, PSE001, IFC101
1 Like

v.0.6.5

July 22, 2024

  • :mega: 4 new rules:

    • ALS011 - Alignment segment entity type consistency
    • ALS012 - Alignment segment start and length attribute types
    • GEM051 - Presence of Geometric Context
    • GEM052 - Correct geometric subcontexts
  • :wrench: 3 rule fixes:

    • ALA003 - Alignment same segment types in business logic and geometry
    • PJS002 - Correct elements related to project
    • OJT001 - Object Predefined Type
  • :technologist: Platform updates:

    • support for managed database services (eg. Azure Database for PostgreSQL)
    • fix to remove references to bSI hosted configurations & modified whitelist implementation

v.0.6.6

Sep 11, 2024

  • :mega: 5 new Activation Checks:
    • ASM000 - Composed elements
    • MAT000 - Materials
    • POR000 - Port Connectivity and Nesting
    • SPA000 - Spaces Information
    • QTY000 - Quantities for objects

:information_source: Activation Checks are used to verify the presence of specific IFC entities. These rules never return an error, and are used mainly to derive metrics from files.

  • :mega: 1 new Industry Best Practice checks:

    • ALS016 - Alignment horizontal segment geometric continuity
  • :wrench: 6 rule fixes:

    • GEM051 - Presence of Geometric Context
    • GEM052 - Correct geometric subcontexts
    • GEM001 - Closed shell edge usage
    • IFC102 - Absence of deprecated entities
    • SPS007 - Spatial Containment
    • IBP001 - Stair decomposition renamed to BLT003 - Stair decomposition
  • :technologist: Platform update:

    • Feedback panel added (try it out!)
    • bSDD compliance check temporarily disabled
    • update to IfcOpenShell v.0.8.0.

:warning: ATTENTION: the last platform update fixes an issue with schema validation. You may get more schema errors reported if you check again a file with this new release.

2 Likes

v.0.6.7

Oct 17, 2024

  • :mega: 2 new activation rules:
    • CLS000 - Classification Association
    • LAY000 - Presentation Layer Assignment

:information_source: Activation rules are used to verify the presence of specific IFC entities. These rules never return an error, and are used mainly to extract metrics from files.

  • :mega: 1 new Industry Best Practice checks:

    • ALB010 - Alignment without referents
  • :mega: 4 new Normative IFC Rules:

    • BLT002 - Correct use of partitioning type attributes for windows
    • PJS003 - Valid Globally Unique Identifiers
    • BRP001 - Polyhedral IfcFace boundary no self-intersections
    • TAS001 - Polygonal face boundary no self-intersections
  • :wrench: 6 rule fixes:

    • IFC102 - Absence of deprecated entities
    • ALA001, 002 and 003 renamed to ALB021, 022, 023
    • GEM052 – Corrected the wording of the report when warnings are raised
    • ALS016 – Additional information included in error report to assist implementers with debugging
  • :technologist: Platform update:

v.0.6.7.1

Oct 30, 2024

:ambulance: Critical hot-fix:

The following two rules have been temporarily disabled due to performance issues. Will be reactivated soon.

  • BRP001 - Polyhedral IfcFace boundary no self-intersections
  • TAS001 - Polygonal face boundary no self-intersections

v.0.6.8

Nov 13, 2024

  • :mega: 4 new activation rules:
    • VER000 - Versioning and revision control
    • ANN000 - Annotations
    • VRT000 - Virtual Elements
    • CTX000 - Presentation colours and textures

:information_source: Activation rules are used to verify the presence of specific IFC entities. These rules never return an error, and are used mainly to extract metrics from files.

  • :mega: 1 new Industry Best Practice checks:

    • ALS017 - Alignment vertical segment geometric continuity
  • :mega: 2 new Normative IFC Rules:

    • ALB012 - Alignment vertical segment RadiusOfCurvature
    • ALB030 - Alignment must have a local placement
  • :wrench: 4 rule fixes:

    • SPS007 - Spatial containment
    • IFC102 - Absence of deprecated entities
    • GEM004 - Constraints on representation identifiers
    • ALS016 - Alignment horizontal segment geometric continuity
  • :technologist: Platform update:

    • Limit the number of errors displayed for the same rule to 10, for faster report’s display
    • Add a counter for the total number of instances failing the same rule
    • Update to IfcOpenShell v0.8.1 to support new alignment rules and the upcoming compliance check of the file header against the header policy
1 Like

v.0.6.9

Nov 28, 2024

:ambulance: Hot-fix:

  • Fix bug with duplicate validation outcomes
  • Fix schema check anomaly

:technologist: Platform update:

  • Add info for Vendor and Version tracking

v.0.6.10

Jan 17, 2025

:ambulance: Hot-fix:

  • Fix entity instance association in schema validation report
  • Fix for quadratic complexity on rule GEM003 (performance only, rule’s behaviour did not change)
1 Like

v.0.6.11

Feb 10, 2025

  • :mega: 1 new activation rule:
    • LIP000 - Linear Placement

:information_source: Activation rules are used to verify the presence of specific IFC entities. These rules never return an error, and are used mainly to extract metrics from files.

  • :mega: 5 new Normative IFC Rules:

    • BRP002 - Single component in connected face set
    • GEM113 - Indexed poly curve arcs must not be defined using colinear points
    • IFC105 - Resource entities need to be referenced by rooted entity
    • SWE001 - Arbitrary profile boundary no self-intersections
    • SWE002 - Mirroring within IfcDerivedProfileDef shall not be used
  • :wrench: 1 rule fix:

    • ALS017 - Correction to alignment segment geometry calculations
  • :technologist: Platform update:

    • Schema validation enhancement: Express NUMBER type to allow both INTEGER and FLOAT types
    • fix unsupported operand type(s) causing parse_info to fail
    • upgrade to ifcopenshell v0.8.1 for multiple fixes related to geometry processing

v.0.6.12

Feb 13, 2025

:ambulance: Hot-fix:

  • Fix rule SWE001

v.0.7.0

Feb 19, 2025

  • :wrench: 1 rule fix:

    • IFC105 - Exclude materials from the requirement for entities to be linked to the IFC root
  • :technologist: Platform update:

    • Introduce Header Policy compliance check
    • Various platform improvements
1 Like

v.0.7.1

11 Mar, 2025

  • :mega: 2 New Normative IFC Rules:

    • BRP003 – Planar faces are planar
    • GEM112 – No duplicated points within an indexed poly curve
  • :mega: 1 new Industry Best Practice check:

    • PSE002 – Custom properties and property sets validation
  • :wrench: 10 rule fixes:

    • ALS004 – final scenario now correctly checks entity type (version 2)
    • ALS005 – fix handling of alignments with horizontal only (version 2)
    • BLT001 – improve descriptions in feature file (no version change)
    • BLT002 – improve descriptions in feature file (no version change)
    • BRP002 – add consideration for loop connectivity (version 2)
    • CTX000 – revise entity selection for improved runtime performance (version 2)
    • IFC105 – add exceptions for ‘HasColours’ and ‘HasTextures’ (version 3)
    • PSE001 – stricter checking of reserved “Pset_” prefix (version 3)
    • SPS002 – consider subtypes of applicable entities (version 3)
    • SPS007 – revise entity selection for improved runtime performance (version 4)

:information_source: Rule versions are incremented when there is a change to processing logic. Edits to clarify descriptions, address typos, or similar edits that do not affect the rule validation outcomes are not considered a new version of the rule.

  • :technologist: Platform update:
    • Fixes for header validation and information parsing
    • Files with a valid header now display with green information icon
    • Various backend platform improvements
1 Like

v.0.7.2

18 Mar, 2025

  • :ambulance: Hot-fix:

    • header validation and information parsing
    • various backend platform improvements
  • :wrench: 1 rule fix:

    • ALB010 – Fix simple type error (no version change)

:information_source: Rule versions are incremented when there is a change to processing logic. Edits to clarify descriptions, address typos, or similar edits that do not affect the rule validation outcomes are not considered a new version of the rule.

1 Like

v.0.7.3

31 Mar, 2025

  • :mega: 4 new activation rules:

    • BBX000 – Bounding Boxes
    • OJP000 – Object Placement
    • BLT000 – Built Elements
    • LOP000 – Local Placement
  • :mega: 1 new Industry Best Practice check:

    • LIP002 – Fallback coordinates as fallback for linear placements
  • :wrench: 5 rule fixes:

    • SWE001 – Apply unit factor to convert precision value (version 3)
    • ALB010 – Rule only applies when alignment nests an IfcAlignmentHorizontal (version 2)
    • SPS007 – Add exceptions for hosted annotations (version 5)
    • BRP003 – Set correct precision to prevent accumulating rounding errors (version 2)
    • GEM113 – Set correct precision to prevent accumulating rounding errors (version 2)

:information_source: Rule versions are incremented when there is a change to processing logic. Edits to clarify descriptions, address typos, or similar edits that do not affect the rule validation outcomes are not considered a new version of the rule.

  • :technologist: Platform update:
    • Introduced a confirmation screen to verify or reconfirm self-declared affiliation with a company that develops software supporting IFC.
    • Various backend platform improvements