Skip to content

Latest commit

 

History

History
91 lines (46 loc) · 5.09 KB

WhatIsBIS.md

File metadata and controls

91 lines (46 loc) · 5.09 KB

What is BIS?

BIS is a set of object oriented relational schemas that define the data model for an iModel.

Core Schema Concepts


Entity Class

Like a table in a standard relational database adds support for single inheritance and polymorphism.

Relationship Class

Like a link table or foreign key in a standard relational database adds support for single inheritance and polymorphism. Each relationship lists two Entity Classes as endpoints.

Property Definition

Added to a class defining what would be a column in a standard database.

Navigation Property

A special kind of property which represents a Foreign Key for a Relationship Class.

Mixin

A special type of class definition that can be a relationship endpoint and can add classes to an entity class. An Entity class may implement more than one mixin.

Instance

Like a row in a standard relational database it is the instantiation of an Entity or Relationship class.

Core BIS Concepts

For more on these core concepts checkout Modeling with BIS


Elements

An Element is an Entity class that serves as the base class for all data stored in an iModel.

Each Element may have one parent and any number of children, this parent/child hierarchy is used to build assemblies. This is defined using the Relationship Class ElementOwnsChildElements persisted using the navigation property Element.Parent.

Element Aspects

An Element Aspect Class is an Entity class that adds properties to a Instance of an Element.

There are two types of Aspect class, Unique Aspect and Multi Aspect. Only one instance of a Unique Aspect class may apply to an Element instance, any number of instances of an Multi Aspect may apply to a single Element instance.

Each Element Aspect Instance belongs to one and only one Element Instance and uses a navigation property ElementAspect.Element to point back to the Element it belongs to. Unique Aspects use the ElementOwnsUniqueAspect relationship class and Multi Aspects use the ElementOwnsMultiAspects relationship

Models

A Model is an Entity class that serves as a container for Elements. A Model and the Elements it contains 'break down' an Element providing a more detailed representation of that element.

Secondary BIS Concepts

These concepts help search for and understand data in an iModel


PhysicalElement Class

The Bis.PhysicalElement class is the base class for all elements that model real physical things.

FunctionalElement Class

The Functional.FunctionalElement class is the base class for all elements that define requirements of a system

Codes

Codes are unique, human readable identifiers for an Element. Not every Element Instance is required to have a code. Plant Tags are a good example of a use for code.

TypeDefinition Classes

Type Definitions are special Element classes whose instances are used to represent catalog items (Like a Pump, Door or Beam) that have fixed values. The Type Definition is referenced by a normal Element instance using the TypeDefinition navigation property.

Categories

Categories group Element instances and is similar to levels in MicroStation, layers in AutoCAD and categories in Revit. Elements that can be categorized have a Category navigation property

ElementRefersToElements Relationship Class

The ElementRefersToElements relationship class defines the primary link table used to relate two Elements together. It is used for things like grouping, linking drawings to the elements the represent, linking the functional and physical representations of an object.

Subject Class

Subject Elements define high level grouping of the data within an iModel. For example the Model Tree in Design Review is built using the subject hierarchy. See this Example Information Hierarchy for an idea of what they look like.

Next: iModel File Structure