Grids

alias: grids

version: 1.0.0

defines elements used as an aid in locating structural and design and/or other elements

This schema contains class definitions for grids.

These are used to build structural,spaceplanning and other grids. A Grid is a collection of GridSurfaces. Every GridSurface has a GridAxis, which is currently primarily used for grouping surfaces into subgroups. intersection of GridSurfaces may create a GridCurve (driven by GridCurveBundle element).

Schema:

<ECSchema schemaName="Grids" alias="grids" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
    <ECSchemaReference name="BisCore" version="01.00.00" alias="bis" />
    <ECSchemaReference name="AecUnits" version="01.00.00" alias="AECU" />

Grids Grids

Entity Classes

CircularAxis

typeName: EntityClass

description: an element which groups all PlanCircumferentialGridSurface elements in a RadialGrid together

baseClass: Grids:GridAxis

A subcollection of PlanCircumferentialGridSurface in a RadialGrid.

Naming:

  1. Matches with Circular Axis in AECOsim Building Designer

Schema:

<ECEntityClass typeName="CircularAxis" description="an element which groups all PlanCircumferentialGridSurface in a RadialGrid together">
  <BaseClass>GridAxis</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00" />
  </ECCustomAttributes>
</ECEntityClass>

ElevationGrid

typeName: EntityClass

description: An ElevationGrid contains planar surfaces that are parallel to the local XY plane

baseClass: Grids:Grid

A collection of ElevationGridSurfaces. has one or more GeneralGridAxis. typically used to slice a building. every surface is positioned across the Z axis of ElevationGrid Placement.

Naming:

  1. ElevationGrid because GridSurfaces are positioned based on their .Elevation and grid .Placement properties

Geometry Use:

  1. No geometry
  2. Local Coordinates : defines the origin and direction for surfaces

Properties:

  1. DefaultElevationIncrement - suggested elevation increment with which a new surface would be inserted (highest elevation surface + .DefaultElevationIncrement)
  2. DefaultSurface2d - a suggested surface for new ElevationGridSurface, could be null

Schema:

<ECEntityClass typeName="ElevationGrid" description="An ElevationGrid contains planar surfaces that are parallel to the local XY plane">
  <BaseClass>Grid</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00" />
  </ECCustomAttributes>
  <ECProperty propertyName="DefaultElevationIncrement" displayLabel="DefaultElevationIncrement" typeName="double" kindOfQuantity="AECU:LENGTH"/>
  <ECProperty propertyName="DefaultSurface2d" displayLabel="DefaultSurface2d" typeName="Bentley.Geometry.Common.IGeometry"/>
</ECEntityClass>

Properties

Name Description Type Extended Type
DefaultElevationIncrement double
DefaultSurface2d Bentley.Geometry.Common.IGeometry

ElevationGridSurface

typeName: EntityClass

description: A PlanarGridSurface that is parallel with its Grid’s x-y plane (always contained in an ElevationGrid).

baseClass: Grids:GridPlanarSurface

A planar GridSurface used in ElevationGrid. this is the only type of GridSurface allowed in an ElevationGrid.

Naming:

  1. Named by combining ElevationGrid and GridSurface

Geometry Use:

  1. A CurveVector
  2. Local Coordinates : grid coordinates + Elevation property in Z axis

Properties:

  1. Elevation - elevation this surface is located at, relative to Grid coordinate system.
  2. Surface2d - a property for the 2d surface geometry.

Schema:

<ECEntityClass typeName="ElevationGridSurface" description="A PlanarGridSurface that is parallel with its Grid’s x-y plane (always contained in an ElevationGrid).">
  <BaseClass>GridPlanarSurface</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00" />
  </ECCustomAttributes>
  <ECProperty propertyName="Elevation" displayLabel="Elevation" typeName="double" kindOfQuantity="AECU:LENGTH"/>
  <ECProperty propertyName="Surface2d" displayLabel="Surface2d" typeName="Bentley.Geometry.Common.IGeometry"/>
</ECEntityClass>

Properties

Name Description Type Extended Type
Elevation double
Surface2d Bentley.Geometry.Common.IGeometry

FreeGrid

typeName: EntityClass

description: An FreeGrid contains surfaces that do not need to follow any rules

baseClass: Grids:Grid

A collection of unconstrained surfaces (FreeGridSurface).

Naming:

  1. FreeGrid because it is not constrained and can contain surfaces of any geometry and orientation

Geometry Use:

  1. No geometry
  2. Local Coordinates : defines the origin and direction for surfaces

Schema:

<ECEntityClass typeName="FreeGrid" description="An FreeGrid contains surfaces that do not need to follow any rules">
  <BaseClass>Grid</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00" />
  </ECCustomAttributes>
</ECEntityClass>

FreeGridSurface

typeName: EntityClass

description: a GridSurface of any geometry.

baseClass: Grids:GridSurface

GeneralGridAxis

typeName: EntityClass

description: an element which groups GridSurface elements together in other grids

baseClass: Grids:GridAxis

A subcollection of GridSurface instances in a Grid. Used solely for grouping elements.

Naming:

  1. Matches with Grid Axis in AECOsim Building Designer

Schema:

<ECEntityClass typeName="GeneralGridAxis" description="an element which groups GridSurfaces together in other grids">
  <BaseClass>GridAxis</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00" />
  </ECCustomAttributes>
</ECEntityClass>

GeneralGridCurve

typeName: EntityClass

description: a GridCurve that is a result of 2 non-planar surfaces

baseClass: Grids:GridCurve

GridCurve representing other geometry (typically 3d splines). GeneralGridCurve can be created by intersecting other pairs of GridSurface instances.

Naming:

  1. Matches with Grid Curve in AECOsim Building Designer

Geometry Use:

  1. Open CurveVector with a single curve
  2. Inherits from baseclass. Local Coordinates : origin at the start of the curve, aligned to creating GridSurface.

Schema:

    <ECEntityClass typeName="GeneralGridCurve" description="a gridcurve that is a result of 2 non-planar surfaces">
      <BaseClass>GridCurve</BaseClass>
      <ECCustomAttributes>
        <ClassHasHandler xmlns="BisCore.01.00.00" />
      </ECCustomAttributes>
    </ECEntityClass>

Grid Abstract

typeName: EntityClass

description: A grid is a collection of gridsurface elements.

baseClass: BisCore:SpatialLocationElement

A collection of GridSurface instances.

Grids known in other products like IAI IfcGrid or Grid in AECOsim Building Designer contain curves, rather than surfaces. However, those curves are later referenced over different elevations, which makes those elements conceptually surfaces intersecting those elevations. in BIS - Grid is a collection of surfaces rather than curves. curves are a result of surfaces intersecting, known as GridCurve. While this approach ensures compatibility with legacy grids it also is more flexible. i.e. by manipulating the .EndElevation properties of individual instances of IPlanGridSurface in a PlanGrid intersecting ElevationGrid, individual GridCurve instances could be made not to appear on higher elevations. curves could be made to appear on certain elevations by using the GridCurveBundle element (i.e. appear on story-1 and story-3, but skip story-2). number of axes is also unlimited in SketchGrid, ElevationGrid and FreeGrid.

Naming:

  1. Equivalent with IAI IfcGrid

Geometry Use:

  1. No geometry
  2. Local Coordinates : defines the origin for surfaces

Schema:

<ECEntityClass typeName="Grid" modifier="Abstract" description="A grid is a collection of gridsurfaces.">
  <BaseClass>bis:SpatialLocationPortion</BaseClass>
</ECEntityClass>

GridArc

typeName: EntityClass

description: a GridCurve that is a result of a planar and arc surface

baseClass: Grids:GridCurve

An object representing a grid arc. GridArc can be created by intersecting instances of GridPlanarSurface and GridArcSurface together.

Naming:

  1. Matches with Grid Arc in AECOsim Building Designer

Geometry Use:

  1. Open CurveVector with a single arc
  2. Inherits from baseclass. Local Coordinates : origin at the start of the curve, aligned to creating GridSurface.

Schema:

    <ECEntityClass typeName="GridArc" description="a gridcurve that is a result of a planar and arc surface">
      <BaseClass>GridCurve</BaseClass>
      <ECCustomAttributes>
        <ClassHasHandler xmlns="BisCore.01.00.00" />
      </ECCustomAttributes>
    </ECEntityClass>

GridArcSurface Abstract

typeName: EntityClass

description: A GridSurface that is parallel to extruded arc.

baseClass: Grids:GridSurface

A GridSurface that is parallel to extruded arc.

Naming:

  1. Named to note that this is an arc GridSurface

Schema:

<ECEntityClass typeName="GridArcSurface" modifier="Abstract" description="A grid surface that is parallel to extruded arc.">
  <BaseClass>GridSurface</BaseClass>
</ECEntityClass>

GridAxis Abstract

typeName: EntityClass

description: an element which groups (typically parallel) GridSurface elements

baseClass: BisCore:GroupInformationElement

A subcollection of GridSurfaces in a Grid. Typically used to group parallel surfaces together.

Naming:

  1. Matches with Grid Axis in AECOsim Building Designer

Schema:

<ECEntityClass typeName="GridAxis" modifier="Abstract">
  <BaseClass>bis:DefinitionElement</BaseClass>
  <ECProperty propertyName="Name" displayLabel="Name" typeName="string"/>
  <ECNavigationProperty propertyName="Grid" relationshipName="GridHasAxes" direction="Backward" description="Grid this axis belong to" />
</ECEntityClass>

Properties

Name Description Type Extended Type
Name string

GridCurve Abstract

typeName: EntityClass

description: an element representing a GridCurve - typically intersection of 2 surfaces

baseClass: BisCore:SpatialLocationElement

An object representing a grid curve. GridCurve is similar to IfcGridAxis in that it represents a curve geometry on a (usually planar) surface. it is also similar to Grid Curves as known in AECOsim Building Designer. Gridcurves can be found in submodels of GridCurvesPortion elements.

Naming:

  1. Matches with Grid Curve in AECOsim Building Designer

Geometry Use:

  1. Open CurveVector with a single curve
  2. Local Coordinates : origin at the start of the curve, aligned to creating GridSurface.

Schema:

    <ECEntityClass typeName="GridCurve" modifier="Abstract">
      <BaseClass>bis:SpatialLocationElement</BaseClass>
    </ECEntityClass>

GridCurveBundle (GridCurve bundle)

typeName: EntityClass

description: a driver bundle element between surfaces and the GridCurve elements

baseClass: BisCore:DriverBundleElement

A bundle class for GridCurve creation. Drives the creation of GridCurve

Naming:

  1. A bundle for driving GridCurve

Schema:

<ECEntityClass typeName="GridCurveBundle" displayLabel="GridCurve bundle">
  <BaseClass>bis:DriverBundleElement</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00" />
  </ECCustomAttributes>
</ECEntityClass>

Properties

Name Description Type Extended Type
CurvesSet Created GridCurve elements will be put into this GridCurvesSet navigation

GridCurvesSet

typeName: EntityClass

description: a set which holds GridCurve elements

baseClass: BisCore:SpatialLocationElement

GridLabel Sealed

typeName: EntityClass

description: label of grid curve that is usually generated by a GridSurface

baseClass: BisCore:InformationRecordElement

Properties

Name Description Type Extended Type
HasLabelAtStart label should appear at start of a grid curve boolean
HasLabelAtEnd label should appear at end of a grid curve boolean

GridLine

typeName: EntityClass

description: a GridCurve that is a result of 2 planar surfaces

baseClass: Grids:GridCurve

An object representing a grid line. GridLine can be created by 2 intersecting instances of GridPlanarSurface.

Naming:

  1. Matches with Grid Line in AECOsim Building Designer

Geometry Use:

  1. Open CurveVector with a single line
  2. Inherits from baseclass. Local Coordinates : origin at the start of the curve, aligned to creating GridSurface.

Schema:

    <ECEntityClass typeName="GridLine" description="a gridcurve that is a result of 2 planar surfaces">
      <BaseClass>GridCurve</BaseClass>
      <ECCustomAttributes>
        <ClassHasHandler xmlns="BisCore.01.00.00" />
      </ECCustomAttributes>
    </ECEntityClass>

GridPlanarSurface Abstract

typeName: EntityClass

description: A planar GridSurface element.

baseClass: Grids:GridSurface

A class for planar GridSurface elements.

Naming:

  1. Named to note that this is a planar GridSurface

Schema:

<ECEntityClass typeName="GridPlanarSurface" modifier="Abstract" description="A planar grid surface element.">
  <BaseClass>GridSurface</BaseClass>
</ECEntityClass>

GridSpline

typeName: EntityClass

description: a GridCurve that is a result of a planar and a spline surface

baseClass: Grids:GridCurve

An object representing a grid spline. GridSpline can be created by intersecting instances of GridPlanarSurface and GridSplineSurface together.

Naming:

  1. Matches with Grid Spline in AECOsim Building Designer

Geometry Use:

  1. Open CurveVector with a single spline
  2. Inherits from baseclass. Local Coordinates : origin at the start of the curve, aligned to creating GridSurface.

Schema:

    <ECEntityClass typeName="GridSpline" description="a gridcurve that is a result of a planar and a spline surface">
      <BaseClass>GridCurve</BaseClass>
      <ECCustomAttributes>
        <ClassHasHandler xmlns="BisCore.01.00.00" />
      </ECCustomAttributes>
    </ECEntityClass>

GridSplineSurface Abstract

typeName: EntityClass

description: A GridSurface that is parallel to an extruded spline.

baseClass: Grids:GridSurface

A GridSurface that is parallel to an extruded spline.

Naming:

  1. Named to note that this is a spline GridSurface

Schema:

<ECEntityClass typeName="GridSplineSurface" modifier="Abstract" description="A grid surface that is an extruded spline.">
  <BaseClass>GridSurface</BaseClass>
</ECEntityClass>

GridSurface Abstract

typeName: EntityClass

description: A GridSurface element.

baseClass: BisCore:SpatialLocationElement

An 3dimensional surface contained in a Grid.

Naming:

  1. Name GridSurface signifies that it is a surface grid element

Properties:

  1. Axis - a GridAxis this surface belongs to.

Schema:

<ECEntityClass typeName="GridSurface" modifier="Abstract" description="A grid surface element.">
  <BaseClass>bis:SpatialLocationElement</BaseClass>
  <ECNavigationProperty propertyName="Axis" relationshipName="GridAxisContainsGridSurfaces" direction="Backward" description="Axis this gridSurface belong to" />
</ECEntityClass>

Properties

Name Description Type Extended Type
Axis Axis this gridSurface belong to navigation

OrthogonalAxisX

typeName: EntityClass

description: an element which groups all PlanCartesianGridSurface elements in the X direction

baseClass: Grids:GridAxis

A subcollection of PlanCartesianGridSurface in an OrthogonalGrid X direction.

Naming:

  1. Named so because it is an X axis in OrthogonalGrid.

Schema:

<ECEntityClass typeName="OrthogonalAxisX" description="an element which groups all PlanCartesianGridSurface in the X direction">
  <BaseClass>GridAxis</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00" />
  </ECCustomAttributes>
</ECEntityClass>

OrthogonalAxisY

typeName: EntityClass

description: an element which groups all PlanCartesianGridSurface elements in the Y direction

baseClass: Grids:GridAxis

A subcollection of PlanCartesianGridSurface in an OrthogonalGrid Y direction.

Naming:

  1. Named so because it is an Y axis in OrthogonalGrid.

Schema:

<ECEntityClass typeName="OrthogonalAxisY" description="an element which groups all PlanCartesianGridSurface in the Y direction">
  <BaseClass>GridAxis</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00" />
  </ECCustomAttributes>
</ECEntityClass>

OrthogonalGrid

typeName: EntityClass

description: And OrthogonalGrid has all of its' surfaces orthogonal in either X or Y direction

baseClass: Grids:PlanGrid

A collection of PlanCartesianGridSurface. has 2 axes - 1 OrthogonalAxisX and 1 OrthogonalAxisY. All surfaces in the X direction belong to OrthogonalAxisX, all those in the Y direction belong to OrthogonalAxisY.

Naming:

  1. Matches with Orthogonal Grid in AECOsim Building Designer

Geometry Use:

  1. No geometry
  2. Local Coordinates : defines the origin and direction for surfaces

Properties:

  1. DefaultCoordinateIncrementX - suggested coordinate increment in the X direction for new inserted surfaces
  2. DefaultCoordinateIncrementY - suggested coordinate increment in the Y direction for new inserted surfaces
  3. DefaultStartExtentX - suggested start extent in the X direction for new inserted surfaces
  4. DefaultEndExtentX - suggested end extent in the X direction for new inserted surfaces
  5. DefaultStartExtentY - suggested start extent in the Y direction direction for new inserted surfaces
  6. DefaultEndExtentY - suggested end extent in the Y direction direction for new inserted surfaces

Schema:

<ECEntityClass typeName="OrthogonalGrid" description="And OrthogonalGrid has all of its' surfaces orthogonal in either X or Y direction">
  <BaseClass>PlanGrid</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00" />
  </ECCustomAttributes>
  <ECProperty propertyName="DefaultCoordinateIncrementX" displayLabel="DefaultCoordinateIncrementX" typeName="double" kindOfQuantity="AECU:LENGTH"/>
  <ECProperty propertyName="DefaultCoordinateIncrementY" displayLabel="DefaultCoordinateIncrementY" typeName="double" kindOfQuantity="AECU:LENGTH"/>
  <ECProperty propertyName="DefaultStartExtentX" displayLabel="DefaultStartExtentX" typeName="double" kindOfQuantity="AECU:LENGTH"/>
  <ECProperty propertyName="DefaultEndExtentX" displayLabel="DefaultEndExtentX" typeName="double" kindOfQuantity="AECU:LENGTH"/>
  <ECProperty propertyName="DefaultStartExtentY" displayLabel="DefaultStartExtentY" typeName="double" kindOfQuantity="AECU:LENGTH"/>
  <ECProperty propertyName="DefaultEndExtentY" displayLabel="DefaultEndExtentY" typeName="double" kindOfQuantity="AECU:LENGTH"/>
</ECEntityClass>

Properties

Name Description Type Extended Type
DefaultCoordinateIncrementX double
DefaultCoordinateIncrementY double
DefaultStartExtentX double
DefaultEndExtentX double
DefaultStartExtentY double
DefaultEndExtentY double

PlanCartesianGridSurface

typeName: EntityClass

description: A planar PlanGridSurface that is perpendicular to the grid’s x-axis or y-axis.

baseClass: Grids:PlanGridPlanarSurface

A class for GridSurface contained in OrthogonalGrid

Naming:

  1. Named so because it is a GridSurface defined by cartesian coordinates

Geometry Use:

  1. "inherit from parent" a SolidPrimitive DgnExtrusion containing single line for base, swept from StartElevation to EndElevation
  2. Local Coordinates : Grid coordinates + Coordinate in X or Y direction depending on the type of axis

Properties:

  1. Coordinate - offset from coordinate system origin. direction defined by the axis
  2. StartExtent - start extent of the surface
  3. EndExtent - end extent of the surface

Schema:

<ECEntityClass typeName="PlanCartesianGridSurface" description="A planar plan grid surface that is perpendicular to the grid’s x-axis or y-axis.">
  <BaseClass>PlanGridPlanarSurface</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00" />
  </ECCustomAttributes>
  <ECProperty propertyName="Coordinate" displayLabel="Coordinate" typeName="double" kindOfQuantity="AECU:LENGTH" description="Origin of the surface"/>
  <ECProperty propertyName="StartExtent" displayLabel="StartExtent" typeName="double" kindOfQuantity="AECU:LENGTH"/>
  <ECProperty propertyName="EndExtent" displayLabel="EndExtent" typeName="double" kindOfQuantity="AECU:LENGTH"/>
</ECEntityClass>

Properties

Name Description Type Extended Type
Coordinate Origin of the surface double
StartExtent double
EndExtent double

PlanCircumferentialGridSurface

typeName: EntityClass

description: An PlanGridArcSurface that is centered on the Grid’s origin.

baseClass: Grids:PlanGridArcSurface

A class for GridSurface instances of circular radius increments contained in RadialGrid

Naming:

  1. named so because it is a GridSurface defined by circumferential parameters

Geometry Use:

  1. "inherit from parent" a SolidPrimitive DgnExtrusion containing single arc for base, swept from StartElevation to EndElevation
  2. Local Coordinates : Grid coordinates

Properties:

  1. Radius - radius from the Grid origin at which the arc surface is swept.
  2. StartAngle - start angle of the arc surface
  3. EndAngle - end angle of the arc surface

Schema:

<ECEntityClass typeName="PlanCircumferentialGridSurface" description="An PlanGridArcSurface that is centered on the Grid’s origin.">
  <BaseClass>PlanGridArcSurface</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00" />
  </ECCustomAttributes>
  <ECProperty propertyName="Radius" displayLabel="Radius" typeName="double" kindOfQuantity="AECU:LENGTH" description="Origin of the surface"/>
  <ECProperty propertyName="StartAngle" displayLabel="StartAngle" typeName="double" kindOfQuantity="AECU:ANGLE"/>
  <ECProperty propertyName="EndAngle" displayLabel="EndAngle" typeName="double" kindOfQuantity="AECU:ANGLE"/>
</ECEntityClass>

Properties

Name Description Type Extended Type
Radius Origin of the surface double
StartAngle double
EndAngle double

PlanGrid Abstract

typeName: EntityClass

description: a grid whose surfaces are curves parallel to the local x-y plane extruded along the local z-axis

baseClass: Grids:Grid

A collection of IPlanGridSurface elements that are single curve extrusions, sharing the extrusion direction. extrusion direction is equal to grid Z orientation.

Naming:

  1. PlanGrid because all surfaces could be viewed as curves from a plan view

Geometry Use:

  1. No geometry
  2. Local Coordinates : defines the origin and direction for surfaces

Properties:

  1. DefaultStartElevation - suggested start elevation for new inserted surfaces
  2. DefaultEndElevation - suggested end elevation for new inserted surfaces

Schema:

<ECEntityClass typeName="PlanGrid" modifier="Abstract" description="a grid whose surfaces are curves parallel to the local x-y plane extruded along the local z-axis">
  <BaseClass>Grid</BaseClass>
  <ECProperty propertyName="DefaultStartElevation" displayLabel="DefaultStartElevation" typeName="double" kindOfQuantity="AECU:LENGTH"/>
  <ECProperty propertyName="DefaultEndElevation" displayLabel="DefaultEndElevation" typeName="double" kindOfQuantity="AECU:LENGTH"/>
</ECEntityClass>

Properties

Name Description Type Extended Type
DefaultStartElevation double
DefaultEndElevation double

PlanGridArcSurface Abstract

typeName: EntityClass

description: An arc PlanGridSurface element.

baseClass: Grids:GridArcSurface

A class for GridArcSurface elements used in PlanGrid.

Naming:

  1. named by combining PlanGrid and GridArcSurface

Geometry Use:

  1. A SolidPrimitive DgnExtrusion containing single arc for base, swept from StartElevation to EndElevation
  2. Local Coordinates : defined by subclasses

Schema:

<ECEntityClass typeName="PlanGridArcSurface" modifier="Abstract" description="An arc plangrid surface element.">
  <BaseClass>GridArcSurface</BaseClass>
  <BaseClass>IPlanGridSurface</BaseClass>
</ECEntityClass>

PlanGridPlanarSurface Abstract

typeName: EntityClass

description: A planar PlanGridSurface element.

baseClass: Grids:GridPlanarSurface

A class for GridPlanarSurface elements used in PlanGrid.

Naming:

  1. Named by combining PlanGrid and GridPlanarSurface

Geometry Use:

  1. A SolidPrimitive DgnExtrusion containing single line for base, swept from StartElevation to EndElevation
  2. Local Coordinates : defined by subclasses

Schema:

<ECEntityClass typeName="PlanGridPlanarSurface" modifier="Abstract" description="A planar plangrid surface element.">
  <BaseClass>GridPlanarSurface</BaseClass>
  <BaseClass>IPlanGridSurface</BaseClass>
</ECEntityClass>

PlanGridSplineSurface Abstract

typeName: EntityClass

description: A spline PlanGridSurface element.

baseClass: Grids:GridSplineSurface

A class for GridSplineSurface elements used in PlanGrid.

Naming:

  1. Named by combining PlanGrid and GridSplineSurface

Geometry Use:

  1. A SolidPrimitive DgnExtrusion containing single spline for base, swept from StartElevation to EndElevation
  2. Local Coordinates : defined by subclasses

Schema:

<ECEntityClass typeName="PlanGridSplineSurface" modifier="Abstract" description="An arc plangrid surface element.">
  <BaseClass>GridSplineSurface</BaseClass>
  <BaseClass>IPlanGridSurface</BaseClass>
</ECEntityClass>

PlanRadialGridSurface

typeName: EntityClass

description: A PlanGridPlanarSurface whose infinite plane contains the PlanGrid’s origin.

baseClass: Grids:PlanGridPlanarSurface

A class for GridSurface instances of angular increments contained in RadialGrid

Naming:

  1. Named so because it is a GridSurface defined by radial parameters

Geometry Use:

  1. "inherit from parent" a SolidPrimitive DgnExtrusion containing single line for base, swept from StartElevation to EndElevation
  2. Local Coordinates : Grid coordinates rotated by the Angle property from Y direction, clockwise

Properties:

  1. Angle - angle in the clockwise direction from the Y axis of the RadialGrid defining the direction of surface base line.
  2. StartRadius - start radius of the surface
  3. EndRadius - end radius of the surface

Schema:

<ECEntityClass typeName="PlanRadialGridSurface" description="A PlanGridPlanarSurface whose infinite plane contains the PlanGrid’s origin.">
  <BaseClass>PlanGridPlanarSurface</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00" />
  </ECCustomAttributes>
  <ECProperty propertyName="Angle" displayLabel="Angle" typeName="double" kindOfQuantity="AECU:LENGTH" description="Origin of the surface"/>
  <ECProperty propertyName="StartRadius" displayLabel="StartRadius" typeName="double" kindOfQuantity="AECU:LENGTH"/>
  <ECProperty propertyName="EndRadius" displayLabel="EndRadius" typeName="double" kindOfQuantity="AECU:LENGTH"/>
</ECEntityClass>

Properties

Name Description Type Extended Type
Angle Origin of the surface double
StartRadius double
EndRadius double

RadialAxis

typeName: EntityClass

description: an element which groups all PlanRadialGridSurface elements in a RadialGrid together

baseClass: Grids:GridAxis

a subcollection of PlanRadialGridSurface in a RadialGrid

Naming:

  1. Named so because it is an Y axis in OrthogonalGrid.

Schema:

<ECEntityClass typeName="RadialAxis" description="an element which groups all PlanRadialGridSurface in a RadialGrid together">
  <BaseClass>GridAxis</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00" />
  </ECCustomAttributes>
</ECEntityClass>

RadialGrid

typeName: EntityClass

description: A RadialGrid consists either of arcsurfaces in radial axis or planarsurfaces in circular axis

baseClass: Grids:PlanGrid

A collection of PlanRadialGridSurface and PlanCircumferentialGridSurface elements. Has 2 axes - 1 CircularAxis and 1 RadialAxis. All PlanCircumferentialGridSurface are in the CircularAxis, all PlanRadialGridSurface in the RadialAxis. ` Naming:

  1. matches with Radial Grid in AECOsim Building Designer

Geometry Use:

  1. no geometry
  2. Local Coordinates : defines the origin and direction for surfaces

Properties:

  1. DefaultAngleIncrement - suggested angle increment for new instances of PlanRadialGridSurface
  2. DefaultRadiusIncrement - suggested radius increment for new instances of PlanCircumferentialGridSurface
  3. DefaultStartAngle - suggested start angle for new instances of PlanCircumferentialGridSurface
  4. DefaultEndAngle - suggested end angle for new instances of PlanCircumferentialGridSurface
  5. DefaultStartRadius - suggested start radius for new instances of PlanRadialGridSurface
  6. DefaultEndRadius - suggested end radius for new instances of PlanRadialGridSurface

Schema:

<ECEntityClass typeName="RadialGrid" description="A RadialGrid consists either of arcsurfaces in radial axis or planarsurfaces in circular axis">
  <BaseClass>PlanGrid</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00" />
  </ECCustomAttributes>
  <ECProperty propertyName="DefaultAngleIncrement" displayLabel="DefaultAngleIncrement" typeName="double" kindOfQuantity="AECU:ANGLE"/>
  <ECProperty propertyName="DefaultRadiusIncrement" displayLabel="DefaultRadiusIncrement" typeName="double" kindOfQuantity="AECU:ANGLE"/>
  <ECProperty propertyName="DefaultStartAngle" displayLabel="DefaultStartAngle" typeName="double" kindOfQuantity="AECU:ANGLE"/>
  <ECProperty propertyName="DefaultEndAngle" displayLabel="DefaultEndAngle" typeName="double" kindOfQuantity="AECU:ANGLE"/>
  <ECProperty propertyName="DefaultStartRadius" displayLabel="DefaultStartRadius" typeName="double" kindOfQuantity="AECU:LENGTH"/>
  <ECProperty propertyName="DefaultEndRadius" displayLabel="DefaultEndRadius" typeName="double" kindOfQuantity="AECU:LENGTH"/>
</ECEntityClass>

Properties

Name Description Type Extended Type
DefaultAngleIncrement double
DefaultRadiusIncrement double
DefaultStartAngle double
DefaultEndAngle double
DefaultStartRadius double
DefaultEndRadius double

SketchArcGridSurface

typeName: EntityClass

description: An extruded arc gridsurface element.

baseClass: Grids:PlanGridArcSurface

A class for GridSurface instances of sketched arc surfaces in SketchGrid

Naming:

  1. named so because it is an extruded arc surface in a SketchGrid

Geometry Use:

  1. "inherit from parent" a SolidPrimitive DgnExtrusion containing single arc for base, swept from StartElevation to EndElevation
  2. Local Coordinates : Grid coordinates

Properties:

  1. Arc2d - arc geometry used to extrude the surface - a CurveVector containing a single arc

Schema:

<ECEntityClass typeName="SketchArcGridSurface" description="An extruded arc gridsurface element.">
  <BaseClass>PlanGridArcSurface</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00" />
  </ECCustomAttributes>
  <ECProperty propertyName="Arc2d" displayLabel="Arc2d" typeName="Bentley.Geometry.Common.IGeometry"/>
</ECEntityClass>

Properties

Name Description Type Extended Type
Arc2d Bentley.Geometry.Common.IGeometry

SketchGrid

typeName: EntityClass

description: A SketchGrid contains surfaces whose positions are not constrained (other than being swept to the grid normal)

baseClass: Grids:PlanGrid

A collection of surfaces that are unconstrained single curve extrusions, sharing the extrusion direction. extrusion direction is driven by grid Z orientation.

Naming:

  1. SketchGrid because all surfaces could be "sketched" from the plan view.
  2. Matches with Sketch Grid in AECOsim Building Designer

Geometry Use:

  1. No geometry
  2. Local Coordinates : defines the origin and direction for surfaces

Schema:

<ECEntityClass typeName="SketchGrid" description="A SketchGrid contains surfaces whose positions are not constrained (other than being swept to the grid normal)">
  <BaseClass>PlanGrid</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00" />
  </ECCustomAttributes>
</ECEntityClass>

SketchLineGridSurface

typeName: EntityClass

description: An extruded line gridsurface element.

baseClass: Grids:PlanGridPlanarSurface

A class for GridSurface instances of sketched line surfaces in SketchGrid

Naming:

  1. Named so because it is an extruded line surface in a SketchGrid

Geometry Use:

  1. "inherit from parent" a SolidPrimitive DgnExtrusion containing single line for base, swept from StartElevation to EndElevation
  2. Local Coordinates : Grid coordinates

Properties:

  1. Line2d - line geometry used to extrude the surface - a CurveVector containing a single line

Schema:

<ECEntityClass typeName="SketchLineGridSurface" description="An extruded line gridsurface element.">
  <BaseClass>PlanGridPlanarSurface</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00" />
  </ECCustomAttributes>
  <ECProperty propertyName="Line2d" displayLabel="Line2d" typeName="Bentley.Geometry.Common.IGeometry"/>
</ECEntityClass>

Properties

Name Description Type Extended Type
Line2d Bentley.Geometry.Common.IGeometry

SketchSplineGridSurface

typeName: EntityClass

description: An extruded spline gridsurface element.

baseClass: Grids:PlanGridSplineSurface

A class for GridSurface instances of sketched spline surfaces in SketchGrid

Naming:

  1. Named so because it is an extruded spline surface in a SketchGrid

Geometry Use:

  1. "inherit from parent" a SolidPrimitive DgnExtrusion containing single spline for base, swept from StartElevation to EndElevation
  2. Local Coordinates : Grid coordinates

Properties:

  1. Spline2d - spline geometry used to extrude the surface - a CurveVector containing a single spline

Schema:

<ECEntityClass typeName="SketchSplineGridSurface" description="An extruded spline gridsurface element.">
  <BaseClass>PlanGridSplineSurface</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00" />
  </ECCustomAttributes>
  <ECProperty propertyName="Spline2d" displayLabel="Spline2d" typeName="Bentley.Geometry.Common.IGeometry"/>
</ECEntityClass>

Properties

Name Description Type Extended Type
Spline2d Bentley.Geometry.Common.IGeometry

Relationship Classes

GridAxisContainsGridSurfaces

typeName: RelationshipClass

description: maps axis to grouped surfaces

Strength: Embedding

strengthDirection: Forward

A relationship to map grid to its axes

Naming:

  1. Named as per standards - noting that GridAxis contains GridSurface instances.

Schema:

<ECRelationshipClass typeName="GridAxisContainsGridSurfaces" modifier="None" strength="embedding" description="maps axis to grouped surfaces">
  <Source multiplicity="(1..1)" roleLabel="contains" polymorphic="true">
    <Class class="GridAxis"/>
  </Source>
  <Target multiplicity="(0..*)" roleLabel="is contained in" polymorphic="true">
    <Class class="GridSurface"/>
  </Target>
</ECRelationshipClass>

Source

isPolymorphic: true

roleLabel: contains

multiplicity: (1..1)

Constraint Classes

Target

isPolymorphic: true

roleLabel: is contained in

multiplicity: (0..*)

Constraint Classes

GridCurveBundleCreatesGridCurve

typeName: RelationshipClass

description: a driving relationship which tells that GridCurve was created by the mapped GridCurveBundle

baseClass: BisCore:ElementDrivesElement

Strength: Referencing

strengthDirection: Forward

A driving relationship which tells that gridcurve was created by the mapped GridCurveBundle

Naming:

  1. Noting that GridCurveBundle creates GridCurve.

Schema:

<ECRelationshipClass typeName="GridCurveBundleCreatesGridCurve" modifier="None" strength="referencing" description="a driving relationship which tells that gridcurve was created by the mapped GridCurveBundle">
  <BaseClass>bis:ElementDrivesElement</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00"/>
  </ECCustomAttributes>
  <Source multiplicity="(1..1)" roleLabel="creates" polymorphic="true">
    <Class class="GridCurveBundle"/>
  </Source>
  <Target multiplicity="(0..1)" roleLabel="is created by" polymorphic="true">
    <Class class="GridCurve"/>
  </Target>
</ECRelationshipClass>

Source

isPolymorphic: true

roleLabel: creates

multiplicity: (1..1)

Constraint Classes

Target

isPolymorphic: true

roleLabel: is created by

multiplicity: (0..1)

Constraint Classes

GridCurveBundleRefersToGridCurvesSet

typeName: RelationshipClass

description: Maps GridCurveBundle to a GridCurvesSet

Strength: Embedding

strengthDirection: Backward

Source

isPolymorphic: true

roleLabel: puts GridCurve elements into

multiplicity: (0..*)

Constraint Classes

Target

isPolymorphic: true

roleLabel: contains GridCurve elements created by

multiplicity: (1..1)

Constraint Classes

GridDrivesGridSurface

typeName: RelationshipClass

description: a driving relationship which tells that a grid is driving a gridsurface.

baseClass: BisCore:ElementDrivesElement

Strength: Referencing

strengthDirection: Forward

A driving relationship which tells that a grid is driving a gridsurface.

Naming:

  1. Named as per standards - noting that Grid drives GridSurface.

Schema:

<ECRelationshipClass typeName="GridDrivesGridSurface" modifier="None" strength="referencing" description="a driving relationship which tells that a grid is driving a gridsurface.">
  <BaseClass>bis:ElementDrivesElement</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00"/>
  </ECCustomAttributes>
  <Source multiplicity="(1..1)" roleLabel="drives" polymorphic="true">
    <Class class="Grid"/>
  </Source>
  <Target multiplicity="(0..*)" roleLabel="is driven by" polymorphic="true">
    <Class class="GridSurface"/>
  </Target>
</ECRelationshipClass>

Source

isPolymorphic: true

roleLabel: drives

multiplicity: (1..1)

Constraint Classes

Target

isPolymorphic: true

roleLabel: is driven by

multiplicity: (0..*)

Constraint Classes

GridSurfaceDrivesGridCurveBundle

typeName: RelationshipClass

description: a driving relationship which tells that gridsurface influences the creation of GridCurve

baseClass: BisCore:ElementDrivesElement

Strength: Referencing

strengthDirection: Forward

A driving relationship which tells that gridsurface influences the creation of GridCurve

Naming:

  1. Noting that GridSurface drives GridCurveBundle.

Schema:

<ECRelationshipClass typeName="GridSurfaceDrivesGridCurveBundle" modifier="None" strength="referencing" description="a driving relationship which tells that gridsurface influences the creation of GridCurve">
  <BaseClass>bis:ElementDrivesElement</BaseClass>
  <ECCustomAttributes>
    <ClassHasHandler xmlns="BisCore.01.00.00"/>
  </ECCustomAttributes>
  <Source multiplicity="(0..*)" roleLabel="influences" polymorphic="true">
    <Class class="GridSurface"/>
  </Source>
  <Target multiplicity="(0..*)" roleLabel="is influenced by" polymorphic="true">
    <Class class="GridCurveBundle"/>
  </Target>
</ECRelationshipClass>

Source

isPolymorphic: true

roleLabel: influences

multiplicity: (0..*)

Constraint Classes

Target

isPolymorphic: true

roleLabel: is influenced by

multiplicity: (0..*)

Constraint Classes

GridSurfaceOwnsGridLabel Sealed

typeName: RelationshipClass

description: grid label for a GridSurface

baseClass: BisCore:ElementOwnsChildElements

Strength: Embedding

strengthDirection: Forward

Source

isPolymorphic: true

roleLabel: owns

multiplicity: (1..1)

Constraint Classes

Target

isPolymorphic: false

roleLabel: is owned by

multiplicity: (0..1)

Constraint Classes

Mixin Classes

IPlanGridSurface (PlanGrid Surface) Abstract

typeName: Mixin

description: An interface that indicates that this Surface is suitable to be placed in a PlanGrid

appliesTo: GridSurface

A mix-in for GridSurface classes contained in a PlanGrid

Naming:

  1. named by combining PlanGrid and GridSurface

Properties:

  1. StartElevation - start elevation for the extrusion surface
  2. EndElevation - end elevation for the extrusion surface

Schema:

<ECEntityClass typeName="IPlanGridSurface" modifier="Abstract" displayLabel="PlanGrid Surface" description="An interface that indicates that this Surface is suitable to be placed in a PlanGrid" >
  <ECCustomAttributes>
    <IsMixin xmlns="CoreCustomAttributes.01.00.00">
      <!-- Only subclasses of grids:GridSurface can implement the IPlanGridSurface interface -->
      <AppliesToEntityClass>GridSurface</AppliesToEntityClass>
    </IsMixin>
  </ECCustomAttributes>
  <ECProperty propertyName="StartElevation" displayLabel="StartElevation" typeName="double" kindOfQuantity="AECU:LENGTH"/>
  <ECProperty propertyName="EndElevation" displayLabel="EndElevation" typeName="double" kindOfQuantity="AECU:LENGTH"/>
</ECEntityClass>

Properties

Name Description Label Category Read Only Priority
StartElevation StartElevation false 0
EndElevation EndElevation false 0

Last Updated: 10 September, 2019