Zum Inhalt

Schemaoberfläche

Diese genaue Referenz richtet sich an Menschen, die Software mit Axioval verbinden. Wenn Sie nur eine Prüfung verstehen oder vorbereiten möchten, beginnen Sie stattdessen bei den vier Bausteinen.

Die Quelltextbeispiele bleiben eingeklappt, bis Sie sie bewusst öffnen.

Module

Modul Zuständig für
Types.pkl Bezeichner, semantische Versionen, lokalisierter Text, Paketmetadaten
Citations.pkl bibliografische Quellen, Fundstellen, Zitate und Parameterziele
Values.pkl Markierte Skalar- und Listenwerte sowie Objekt- und Eigenschaftsreferenzen
Selectors.pkl Selektoren für Objekttyp, Eigenschaft, Klassifikation und boolesche Zusammensetzung
Definitions.pkl Vokabulare und wiederverwendbare Fähigkeitsvorlagen
RuleSets.pkl Konkrete Regelinstanzen und rein kosmetische Ordner

Paketmetadaten und Zitate

PackageMetadata.name und description verwenden LocalizedText. Autoren verbinden Sprachen nicht mehr in einer Zeichenkette. Jedes Definitions- oder Regelsatzdokument besitzt einen sources-Katalog. Eine Quelle enthält Art, formale Bezeichnung, lokalisierten Titel sowie optional Herausgeber, Ausgabe, ISO-Veröffentlichungsdatum und HTTPS-URL.

Ein Citation verweist auf eine Quelle und kann geordnete Fundstellen wie Teil, Klausel, Absatz, Tabelle, Abbildung oder Seite angeben. Definitionskomponenten, Regeln und Anforderungen können Zitate tragen. parameterCitations ordnet ein Zitat ausdrücklich Parametern zu, die diese Regel tatsächlich bindet. Unbekannte Quellen-IDs, unsichere URLs, ungültige Daten, doppelte Zitat-IDs oder Fundstellen und unbekannte Parameterziele werden geschlossen abgelehnt.

Zitate sind ausschließlich Herkunftsmetadaten. Sie ändern weder Anwendbarkeit, Nachweise, Auswertung, Ergebnis, Rechtswirkung noch Konformitätsaussagen.

Definitionspaket

Ein normalisiertes Definitionsdokument hat diese Felder der obersten Ebene:

Quelltext oder Befehle anzeigen
{
  "schemaVersion": "0.1.0",
  "package": {},
  "sources": {},
  "objectTypes": {},
  "properties": {},
  "propertySets": {},
  "definitions": {}
}

Mindestens eine wiederverwendbare Komponente muss vorhanden sein. Map-Schlüssel müssen den Komponenten-IDs entsprechen. Doppelte Komponenten-IDs über geladene Pakete hinweg werden abgelehnt.

ObjectTypeDefinition

Ordnet eine stabile Axioval-Objekttyp-ID externen Schemanamen wie IfcWall zu. Objekttypreferenzen können festlegen, ob Untertypen akzeptiert werden.

PropertyDefinition

Ordnet eine stabile Eigenschafts-ID externen Namen und einer valueKind zu. Mengeneigenschaften benötigen außerdem eine qualifizierte unitDimension. Die Eigenschaft ist von jedem Container unabhängig.

PropertySetDefinition

Ordnet eine stabile Qualifizierer-ID externen Containernamen zu. Sie enthält keine Mitgliederliste und begründet keine Eigentumsbeziehung.

RuleDefinition

Deklariert eine Fähigkeit und eine typisierte Parameter-Map. referencedValueKind ist nur für einen propertyReference-Parameter gültig und beschränkt den katalogisierten Typ der referenzierten Eigenschaft.

Referenzwerte

JSON anzeigen
{
  "type": "objectTypeReference",
  "objectType": "axioval:example.ifc.wall",
  "includeSubtypes": true
}
JSON anzeigen
{
  "type": "propertyReference",
  "property": "axioval:example.ifc.is-external"
}
JSON anzeigen
{
  "type": "propertyReference",
  "property": "axioval:example.ifc.load-bearing",
  "propertySet": "axioval:example.ifc.pset-wall-common"
}

Selektoren

Selektoren sind deklarativ und werden rekursiv validiert:

  • all
  • entityType mit einer kanonischen Objekttyp-ID
  • property mit kanonischer Eigenschafts-ID und optionalem Set-Qualifizierer
  • classification
  • allOf, anyOf und not

Ein Vergleichswert auf einem Eigenschaftsselektor muss zur katalogisierten valueKind der referenzierten Eigenschaft passen. exists lehnt einen Vergleichswert ab. Jeder andere Operator benötigt einen.

Umfangreiche Anwendbarkeit

Eine Regel mit mehreren Populationen verwendet ein Applicability-Objekt. Die Map groups gibt jeder Population eine stabile lokale ID, einen lokalisierten Namen, eine optionale Beschreibung und einen rekursiv validierten Selektor. Anforderungen und vertrauenswürdige Host-Adapter können diese Gruppen über ihre ID ansprechen.

Eine Regel für die Schlitz- und Durchbruchsplanung kann zum Beispiel getrennte Gruppen für durchdrungene Bauteile, durchdringende Bauteile und Öffnungen benennen, statt sie als eine flache Auswahl darzustellen. Map-Schlüssel müssen den Gruppen-IDs entsprechen. Leere Gruppen-Maps, unbekannte Begriffe und fehlerhafte Selektoren werden abgelehnt.

Bestehende Regeln dürfen weiterhin direkt einen einzelnen Selektor angeben. Anforderungen benötigen die umfangreiche Form, weil ein flacher Selektor keine adressierbaren Gruppen-IDs hat.

Anforderungen

Eine Requirement besitzt eine stabile ID, eine lokalisierte Aussage, eine optionale Beschreibung und eine oder mehrere targetGroups. Jede referenzierte Gruppe muss in derselben Regel vorhanden sein. Anforderungs-IDs und Gruppenreferenzen müssen eindeutig sein.

Anforderungen erklären den erwarteten Zustand. Sie führen keinen Paketcode aus und ersetzen nicht den Vertrag RuleDefinition.capability, den eine vertrauenswürdige Anwendung umsetzt.

Erklärende Bilder

Eine Regel kann ExplanatoryImage-Einträge mit lokalisiertem Alternativtext und einer optionalen lokalisierten Bildunterschrift enthalten. Bilder sind im Paket enthaltene Dateien mit normalisiertem relativem Pfad und deklariertem Medientyp. PNG, JPEG, WebP und SVG werden unterstützt.

Die Normalisierung lehnt absolute Pfade, Traversierung, Rückwärtsschrägstriche, Abweichungen zwischen Erweiterung und Medientyp, doppelte Bild-IDs, fehlende Dateien, aus dem Paket führende symbolische Links, aktive SVG-Inhalte, externe SVG-Referenzen und falsche Raster-Signaturen ab. Bilder erklären nur und ändern weder Anwendbarkeit noch Ausführung.

Ordner sind kosmetisch

RuleFolder dient Darstellung und Organisation. Seine Position ändert weder Selektorumfang, Regelidentität, Ausführungssemantik noch Vertrauen. Verbraucher können alternative Ansichten darstellen, ohne die Regeln umzuschreiben.

Kompatibilitätsstatus

Die aktuelle Schemaversion ist 0.1.0 und noch nicht stabil. Die geplante Kompatibilitätspolitik steht in der Roadmap, Vertragsänderungen im Changelog.