Upgrade to Pro — share decks privately, control downloads, hide ads and more …

IFC5 Refresher - Budapest

Thomas Krijnen
February 05, 2025
17

IFC5 Refresher - Budapest

Thomas Krijnen

February 05, 2025
Tweet

Transcript

  1. Technical background EXPRESS object-relational, many indirections, complex data -> hampers

    modern workflows, identity of objects highly domain specific, little tooling -> 20y in, still no database, query language, efficient serialization, etc. rigidity of spf -> challenging backwards compatibility and extensibility complex and anachronistic JSON flatter, more self-contained structure ubiquitous flexible
  2. Technical background USD Idiosyncratic serialization Trees of arbitrary depth in

    serialization Many, many mechanisms More of an implementation than a specification
  3. Specifiers Def - Instantiates a root or any of its

    named children (the same, as there is always the pseudo-root that wraps the roots in the data exchange) Class - Creates a generic set of traits to be inherited from (IfcTypeObject) - Used as an indirection in the spatial composition tree for compartmentalization Over - Assigns attributes/components (or additional children in a different layer)
  4. Class and Def { "def": "class", "type": "UsdGeom:Xform", "name": "N25503984660543a18597eae657ff5bea",

    "children": [ { "def": "def", "type": "UsdGeom:Mesh", "name": "Void", "inherits": [ "</N25503984660543a18597eae657ff5bea_Void>"] }, { "def": "def", "type": "UsdGeom:Mesh", "name": "Body", "inherits": [ "</N25503984660543a18597eae657ff5bea_Body>"] }] },
  5. Over for namespaced (component) attributes { "def": "over", "name": "N12499855de8f44f68aaef76e402fcdb9_Body",

    "attributes": { "UsdGeom:Mesh": { "faceVertexIndices": [2,0,1,2,3,0], "points": [ [4.9466066,-2.3841858e-08,1], [4.9466066,-2.3841858e-08,2.2], [5.8466067,-2.3841858e-08,2.2], [5.8466067,-2.3841858e-08,1]] } }
  6. inherits “Inherits acts as a non-destructive “broadcast” operator that applies

    opinions authored on one prim to every other prim that inherits the “source” prim; not only do property opinions broadcast over inherits arcs - all scene description, hierarchically from the source, inherits” Source: https:/ /openusd.org/release/glossary.html#usdglossary-inherits Contrast this with IFC4.x IfcTypeObjects: a specific-purpose, implemented in prose, mechanism that only governs how properties can be inherited/overriden. No mechanism for inheriting *hierarchies*.
  7. Layers! multiple opinions and ‘conflict- free’ collaboration Everybody can author

    opinions on primitives and write to a layer Conflicting opinions get resolved based on strength Strength is based on layer order (configurable at import time) and information locallity (inheritance)
  8. Local placement and spatial dependencies IFC4 [A] <---RelatingObject--- [IfcRelContainedInStructure] ---RelatedObjects

    ---> [B]]] with: B[…].ObjectPlacement.PlacementRelTo == A.ObjectPlacement IFC5 { def: def name: A, children: [{ < children automatically inherit parent inherit: </B’1>, transformation frame automatically name: B1 }, { inherit: </B’2>, name: B2 }] } { def: class name: B’1 }
  9. Entities – Components (to be completed) enum ClassType { Mesh:

    "UsdGeom:Mesh", XForm: "UsdGeom:Xform", BasisCurves: "UsdGeom:BasisCurves", Material: "UsdShade:Material", Shader: "UsdShade:Shader", } alias ComponentType = ifc5alignmentsegmentComponent | ifc5alignmentComponent | UsdShadeMaterialComponent | ifc5spaceboundaryComponent | NLSFBComponent | UsdGeomBasisCurvesComponent | PropertiesComponent | CustomDataComponent | xformOpComponent | UsdShadeMaterialBindingAPIComponent | UsdGeomMeshComponent | UsdGeomVisibilityAPIvisibilityComponent | Ifc5ClassComponent;
  10. Consolidation of behaviour Schema semantics Serialization mechanisms IfcTypeObject (incl pset

    override mechanisms) IfcPropertySet objectified relationships (contains, nests, aggregates, …) inheritance inheritance properties can be grouped in a prim, which is inherited by the occurence subprims (children) Reduce dependency on natural language text Align with industry practices Composed data with fewer indirection IfcMaterialList, ConstituentSet, LayerSet, …