Classes
Class  Description  

AbstractCGSerializer 
abstract methods to be implemented by classes that feed geometry to serializers


AbstractCopier 
Base class for tree sweeps that copy and transform.


AbstractDDHandler 
Null DDHandler concrete class


AbstractFactory 


AbstractHandler 
Dispatch a (base interface) IGeometry to a more specific handler.
The AbstractHandler base class declares a method abstract void Handler(ISomeGeometryType g) for each geometry interface type ISomeGeometryType The base class has a complete implementation of the Handler(IGeometry g) method. This method downcasts g to each possible gometry interface and calls the appropriate Handler method. The NullHandler class (derived from AbstractHandler) has empty (noop) implementations of all known geometry types. Application handlers can derive from NullHandler and selectively override the null implementations. The DebugHandler class (derived from AbstractHandler) has flags and counters to enable useful debugging services. 

AbstractHandler<(Of <(<'TResult, TArgA, TArgB>)>)> 
Dispatch a (base interface) IGeometry to a more specific handler.
The AbstractHandler base class declares a method abstract TResult Handle(ISomeGeometryType g, TArgA argA, TArgB, argB) for each geometry interface type ISomeGeometryType The base class has a complete implementation of the Handle(IGeometry g, arg) method. This method downcasts g to each possible gometry interface and calls the appropriate Dispatcher method. 

AbstractSerializer 
Base class for tree sweeps that copy and transform.


AdjacentSurfacePatches 
Concrete base class for AdjacentSurfacePatches
A collection of adjacent (connected) surface patches.


BentleyGeometryDynamicSerializer 
Realization of dynamic serialization interface ObjectSerializationHandler


Block 
Concrete base class for Block
Concrete CG class for a block defined by diagonally opposite corners
in a local coordinate system.


BlockProxy 
Proxy object to hold a reference to an IBlock
The proxy can query coordinate data for use in calculations.


Bspline 
Bspline curve calculations


BsplineCurve 
Concrete base class for BsplineCurve
Poles, knots, and weights for a bspline curve


BsplineCurveProxy 
Implement curve calculations for client IBsplineCurve


BsplineSurface 
Concrete base class for BsplineSurface
Poles, knots, and weights for a bspline tensor surface.


CGJsonParser 
Parse step for LineSegment


CGToXml 
Helper class for formatting coordinate data output to xml tags.


CGToXmlWriter 
Helper class for formatting coordinate data output to xml tags.


CircularArc 
Concrete base class for CircularArc
Circular arc primitive.


CircularArcProxy 
Proxy object to hold a reference to an ICircularArc
The proxy can query coordinate data for use in calculations.


CircularCone 
Concrete base class for CircularCone
Circular cone primitive.


CircularConeProxy 
Proxy object to hold a reference to an ICircularCone
The proxy can query coordinate data for use in calculations.


CircularCylinder 
Concrete base class for CircularCylinder
Circular cylinder primitive.


CircularCylinderProxy 
Proxy object to hold a reference to an ICircularCylinder
The proxy can query coordinate data for use in calculations.


CircularDisk 
Concrete base class for CircularDisk
Circular disk primitive.


CircularDiskProxy 
Proxy object to hold a reference to an ICircularDisk
The proxy can query coordinate data for use in calculations.


ClosestStrokeSearcher 


CommonGeometryBinarySerializer 
This helper class exists to support GeometryValue's implementation of
IBinaryFormattableValueWithContext.


Coordinate 
Concrete base class for Coordinate
3D point.


CoordinateProxy 
Proxy object to hold a reference to an ICoordinate
The proxy can query coordinate data for use in calculations.


Copier 
Deep copy of geometry tree.


CopyWithScale 
Class to copy geometry with unit changes.
Caller supplies scale factor (and optional factory) to constructor, then copies with the Copy method.


CopyWithTransform 
Class to copy geometry with unit changes.
Caller supplies scale factor (and optional factory) to constructor, then copies with the Copy method.


Curve 


CurveChain 
Concrete base class for CurveChain
A sequence of primitive curves joined endtoend.


CurveEndCondition 
Named constants for curve parameters.
Convention: Positive codes require numeric data from other inputs.
Negative codes act without further input.
Conversions that occur in application code may not honor all codes.


CurveGroup 
Concrete base class for CurveGroup
A collection of ICurve objects.


CurveKnotCondition 
Named constants for knot setup.
Conversions that occur in application code may not honor all codes.


CurveReference 
Concrete base class for CurveReference
Curve which defined by refernece to another curve.
This may be used to allow the curve chains of regions on opposite sides of a curve to both reference the
same underlying curve but with opposing directions.


DebugHandler 
Class for testing object implementations.


DeepComparisonContext 
DeepEquals DDHandle implementation for ILineSegment


DgnBox 
Concrete base class for DgnBox
Concrete CG class for a box defined by rectangles with parallel edges.


DgnBoxProxy 
Proxy object to hold a reference to an IDgnBox
The proxy can query coordinate data for use in calculations.


DgnCone 
Concrete base class for DgnCone
Concrete CG class for a cone or cylinder


DgnConeProxy 
Proxy object to hold a reference to an IDgnCone
The proxy can query coordinate data for use in calculations.


DgnCurveVector 
Concrete base class for DgnCurveVector
A collection of curves, variously representing open chains, closed loops, parity regions, and unions of other regions.


DgnExtrusion 
Concrete base class for DgnExtrusion
Concrete CG class for an (linear) extruded contour or region


DgnRotationalSweep 
Concrete base class for DgnRotationalSweep
Concrete CG class for an rotational extrusion of a contour or region


DgnRuledSweep 
Concrete base class for DgnRuledSweep
Surface defined by rule lines between compatible contours.


DgnSphere 
Concrete base class for DgnSphere
Concrete CG class for a sphere (possibly ellipsoidal with circular equator, elliptic polars).


DgnSphereProxy 
Proxy object to hold a reference to an IDgnSphere
The proxy can query coordinate data for use in calculations.


DgnTorusPipe 
Concrete base class for DgnTorusPipe
Concrete CG class for a pipe elbow.


DgnTorusPipeProxy 
Proxy object to hold a reference to an IDgnTorusPipe
The proxy can query coordinate data for use in calculations.


DynamicSerializer 
Realization of dynamic serialization interface ObjectSerializationHandler


EllipticArc 
Concrete base class for EllipticArc
Elliptic arc primitive.


EllipticArcProxy 
Proxy object to hold a reference to an IEllipticArc
The proxy can query coordinate data for use in calculations.


EllipticDisk 
Concrete base class for EllipticDisk
Elliptic disk primitive.


EllipticDiskProxy 
Proxy object to hold a reference to an IEllipticDisk
The proxy can query coordinate data for use in calculations.


Factory 
Factory object to create default common geometry objects.


GeometryProxy 


GeometryProxy<(Of <(<'TEmulatedInterface>)>)> 
Base class to act as an IGeometry on behalf of a client object.


Group 
Concrete base class for Group
A group of geometry.


IndexedMesh 
Concrete base class for IndexedMesh
Facets with "1 based, zeroterminated" indices.


InterpolatingCurve 
Concrete base class for InterpolatingCurve
Poles, knots, and weights for a curve interpolated through given points.


IntervalPointPairCollector 
Implementation of IIntervalPointPairCollector, with all results collected in List form.


LineSegment 
Concrete base class for LineSegment
LineSegment primitive.


LineSegmentProxy 
Proxy object to hold a reference to an ILineSegment
The proxy can query coordinate data for use in calculations.


LineString 
Concrete base class for LineString
Points joined by line segments. Point are held as coordinates (not references to point objects).


LineStringProxy 
Implement curve calculations for client ILinestring


NullDDHandler 
Null DDHandler concrete class


NullFactory 


NullGeometry 
Base class for geometry implementations within Bentley.GeometryNET.Common.dll.
The object is its own NativeGeometry refernece.


NullHandler 
Useful base class with typespecific noop Handler methods for all geometry types.


NullStrokeCollector 
Base class for various stroke collectors.


Operation 
Concrete base class for Operation
An operation on parameters.


ParametricSurfacePatch 
Concrete base class for ParametricSurfacePatch
A Patch with boundary loops in the parameter space of a surface.


PlacementZX 
Object to define the placement coordinate system for 3d objects, using z vector and x reference vector
for orientation.


PointChain 
Concrete base class for PointChain
Enumeration of isolated points.


PointerAccumulator 
Searchandrecord class for a directed graph traversal to detect and count pointers and cycles.


PointGroup 
Concrete base class for PointGroup
A collection of IPoint objects  i.e. points in space or collections of points.


Polygon 
Concrete base class for Polygon
Points joined by line segments. Point are held as coordinates (not references to point objects).
The decision of whether the raw point array includes a replicated start end point is
implementation specific. However, the implementation must support three enumerations shield
users from the decision:


PrimitiveCurveReference 
Concrete base class for PrimitiveCurveReference
PrimitiveCurve which defined by refernece to another PrimitiveCurve.
This may be used to allow the curve chains of regions on opposite sides of a curve to both reference the
same underlying PrimitiveCurve but with opposing directions.


SharedGroupDef 
Concrete base class for SharedGroupDef
A named set of geometry.


SharedGroupInstance 
Concrete base class for SharedGroupInstance
A placement of a shard group.


ShelledSolid 
Concrete base class for ShelledSolid
A solid (volume) bounded by surfaces.


SingleLineText 
Concrete base class for SingleLineText
Single line text primitive.
Justification codes are
0,1,2  left with top, center and bottom6,7,8  center with center top, center, and bottom12,13,14  right top, center, bottom


SingleLineTextProxy 
Proxy object to hold a reference to an ISingleLineText
The proxy can query coordinate data for use in calculations.


SkewedCone 
Concrete base class for SkewedCone
Cone with circular cross sections, but axis not perpendicular to the circles.


SkewedConeProxy 
Proxy object to hold a reference to an ISkewedCone
The proxy can query coordinate data for use in calculations.


SolidByRuledSweep 
Concrete base class for SolidByRuledSweep
A solid with sides formed by ruled sweep between patches.


SolidBySweptSurface 
Concrete base class for SolidBySweptSurface
A sweep operation involving base surface and a trace curve.


SolidGroup 
Concrete base class for SolidGroup
A collection of ISolid objects.


Sphere 
Concrete base class for Sphere
Sphere primitive.


SphereProxy 
Proxy object to hold a reference to an ISphere
The proxy can query coordinate data for use in calculations.


Spiral 
Concrete base class for Spiral
Spiral curve described by coordinates, bearing, and curvature at start and end.
(This data is redundant  only one of the start and end points is really needed to place the curve.)
Curvature is one over the local turning radius (radius of curvature).
(The units of the curvature value are inverse length.)
The SpiralType is indicated by a string. Interpretation of various types  Clothoid, Bloth, BiQuadratic  requires appropriate code
in the application. Specialized (e.g. Viennese) types may require furter parameters in auxiliary geometry.


SpiralProxy 
Proxy functions for CG Transition spirals


StrokeListCollector 


StrokeOptions 
Stroke options storage and evaluation.


StrokeToGeometry 


Surface 
Static methods for computations on surface objects


SurfaceByRuledSweep 
Concrete base class for SurfaceByRuledSweep
A surface with sides formed by ruled sweep between curves


SurfaceBySweptCurve 
Concrete base class for SurfaceBySweptCurve
A sweep operation involving base curve and a trace curve.


SurfaceGroup 
Concrete base class for SurfaceGroup
A collection of ISurface objects.


SurfacePatch 
Concrete base class for SurfacePatch
A region with outer boundary (required) and optional inner boundaries (holes)


TaggedDSegment1dDPoint3d 
Tuple of (object,int,DSegment1d,DPoint3d)


TaggedDSegment1dDPoint3dPair 
Pair of TaggedDSegment1dDPoint3d tuples.


ToleranceManager 
Distance and parameter tolerance services


TorusPipe 
Concrete base class for TorusPipe
A portion of an "constant radius elbow" of a pipe. This is a partial torus
in the "major circle", but complete around the "minor circle".


TorusPipeProxy 
Proxy object to hold a reference to an ITorusPipe
The proxy can query coordinate data for use in calculations.


TransformedGeometry 
Concrete base class for TransformedGeometry
A container to apply a transform to another piece of geoemtry.


TransitionSpiral 
Concrete base class for TransitionSpiral
TransitionSpiral curve described by coordinates, bearing, and radius of tangent circle at start and end.
(Radius of 0 indicates a straight line.)
The SpiralType is indicated by a string. Interpretation of various types  Clothoid, Bloth, BiQuadratic  requires appropriate code
in the application. Specialized (e.g. Viennese) types may require furter parameters in auxiliary geometry.
A various spiral formulations (clothoid, bloss, sine, cosine, etc) each have a primary interval. The start and end
bearing and curvature are at the ends of the nominal interval. The primary interval is placed so its 0 point is at the
origin of the placement. However, the actual active portion of the spiral is not required to start or end at the nominal
interval. The active interval is specified as fractional coordinates. Fraction 0 is the start of the nominal interval.
Fraction 1 is the end of the nominal interval.
Spirals used in road and railway transitions will nearly always have the active and nominal intervals the same, i.e. active interval
fratctions are 0 and 1. Active interval fractions other than 0 and 1 occur due to trim and extend operations.


Vector 
Concrete base class for Vector
3D vector (with reference point, e.g. to be used as point of application)


VectorProxy 
Proxy object to hold a reference to an IVector
The proxy can query coordinate data for use in calculations.


XmlReaderToCG 
Helper class for formatting coordinate data output to xml tags.
The caller supplies an XmlReader and Bentley.GeometryNET.Common.AbstractFactory, and positions the
XmlReader so that it addresses an Xml element that is or might be Common Geometry data.
Example code to read from a text that has multiple Common Geometry elements wrapped in a top level <CommonGeometry< element is:


XmlToCG 
Helper class for formatting coordinate data output to xml tags.
The caller supplies an XmlReader and Bentley.GeometryNET.Common.AbstractFactory, and positions the
XmlReader so that it addresses an Xml element that is or might be Common Geometry data.
Example code to read from a text that has multiple Common Geometry elements wrapped in a top level <CommonGeometry< element is:

Structures
Structure  Description  

AssignmentCounted<(Of <(<'T>)>)> 
Class to maintain a value and number of times assigned.


CopyWithTransform..::..TransformData 
"All" data affecting a tranform, packaged for push/pop.

Interfaces
Interface  Description  

IAdjacentSurfacePatches 
Query methods for AdjacentSurfacePatches
A collection of adjacent (connected) surface patches.
Sequentially accessible members (lists).


IAdjacentSurfacePatchesConstruction 
"set" methods for incremental construction of an IAdjacentSurfacePatches


IAggregate 
Minimal interface to be inherited by various IXxxxGroup,
where each Xxxx is a constrained type.


IAnalyticSolid 
Minimal interface to identify analytic solids.


IBlock 
Query methods for Block
Concrete CG class for a block defined by diagonally opposite corners
in a local coordinate system.


IBoundedParametricCurve 
Query methods for bounded parameterized curves.
The public parameterization is via a "fractional" parameter. Fraction 0 is at the start of the
curve, fraction 1 at end. See the IExtensibleParametricCurve for additional methods that
support selective extension to fraction parameters outside 0..1.


IBsplineCurve 
Query methods for BsplineCurve
Poles, knots, and weights for a bspline curve
Individually accessible members.
Sequentially accessible members (lists).


IBsplineCurveConstruction 
"set" methods for incremental construction of an IBsplineCurve


IBsplineCurveGetIndexedData 
Methods to read (Get) indexed data in an IBsplineCurve


IBsplineCurveSetIndexedData 
Methods to update (Set) indexed data in an IBsplineCurve


IBsplineGetIndexedBezier 
Query functions for accessing bezier fragments from a bspline.


IBsplineSurface 
Query methods for BsplineSurface
Poles, knots, and weights for a bspline tensor surface.
Individually accessible members.
Sequentially accessible members (lists).


IBsplineSurfaceConstruction 
"set" methods for incremental construction of an IBsplineSurface


IBsplineSurfaceGetIndexedData 
Methods to read (Get) indexed data in an IBsplineSurface


IBsplineSurfaceSetIndexedData 
Methods to update (Set) indexed data in an IBsplineSurface


ICircularArc 
Query methods for CircularArc
Circular arc primitive.


ICircularCone 
Query methods for CircularCone
Circular cone primitive.


ICircularCylinder 
Query methods for CircularCylinder
Circular cylinder primitive.


ICircularDisk 
Query methods for CircularDisk
Circular disk primitive.


ICoordinate 
Query methods for Coordinate
3D point.


ICurve 
Minimal interface for things eligible to be in ICurveGroup


ICurveChain 
Query methods for CurveChain
A sequence of primitive curves joined endtoend.
Sequentially accessible members (lists).


ICurveChainConstruction 
"set" methods for incremental construction of an ICurveChain


ICurveGroup 
Query methods for CurveGroup
A collection of ICurve objects.
Sequentially accessible members (lists).


ICurveGroupConstruction 
"set" methods for incremental construction of an ICurveGroup


ICurveReference 
Query methods for CurveReference
Curve which defined by refernece to another curve.
This may be used to allow the curve chains of regions on opposite sides of a curve to both reference the
same underlying curve but with opposing directions.
Individually accessible members.


ICurveReferenceConstruction 
"set" methods for incremental construction of an ICurveReference


IDgnBox 
Query methods for DgnBox
Concrete CG class for a box defined by rectangles with parallel edges.


IDgnCone 
Query methods for DgnCone
Concrete CG class for a cone or cylinder


IDgnCurveVector 
Query methods for DgnCurveVector
A collection of curves, variously representing open chains, closed loops, parity regions, and unions of other regions.
Individually accessible members.
Sequentially accessible members (lists).


IDgnCurveVectorConstruction 
"set" methods for incremental construction of an IDgnCurveVector


IDgnCurveVectorMember 
minimal interface to be declared on IPrimtiveCurve and IDgnCurveVector, making these types allowable members of a DgnCurveVector.
(DgnCurveVector here having specific meanings based native DgnCurveVector object)


IDgnExtrusion 
Query methods for DgnExtrusion
Concrete CG class for an (linear) extruded contour or region
Individually accessible members.


IDgnExtrusionConstruction 
"set" methods for incremental construction of an IDgnExtrusion


IDgnRotationalSweep 
Query methods for DgnRotationalSweep
Concrete CG class for an rotational extrusion of a contour or region
Individually accessible members.


IDgnRotationalSweepConstruction 
"set" methods for incremental construction of an IDgnRotationalSweep


IDgnRuledSweep 
Query methods for DgnRuledSweep
Surface defined by rule lines between compatible contours.
Individually accessible members.
Sequentially accessible members (lists).


IDgnRuledSweepConstruction 
"set" methods for incremental construction of an IDgnRuledSweep


IDgnSphere 
Query methods for DgnSphere
Concrete CG class for a sphere (possibly ellipsoidal with circular equator, elliptic polars).


IDgnTorusPipe 
Query methods for DgnTorusPipe
Concrete CG class for a pipe elbow.


IEllipticArc 
Query methods for EllipticArc
Elliptic arc primitive.


IEllipticDisk 
Query methods for EllipticDisk
Elliptic disk primitive.


IExtendableGeometry 
Base interface for "EC friendly" tree of geometry classes.


IExtensibleParametricCurve 
Query methods for parameterized curve that maps 0..1 to a bounded curve and can be extended to
parameters outside that range.


IGeometry 
root interface for all geometry classes


IGroup 
Query methods for Group
A group of geometry.
Sequentially accessible members (lists).


IGroupConstruction 
"set" methods for incremental construction of an IGroup


IIndexedMesh 
Query methods for IndexedMesh
Facets with "1 based, zeroterminated" indices.
Sequentially accessible members (lists).


IIndexedMeshConstruction 
"set" methods for incremental construction of an IIndexedMesh


IIndexedMeshGetIndexedData 
Methods to read (Get) indexed data in an IIndexedMesh


IIndexedMeshSetIndexedData 
Methods to update (Set) indexed data in an IIndexedMesh


IInterpolatingCurve 
Query methods for InterpolatingCurve
Poles, knots, and weights for a curve interpolated through given points.
Individually accessible members.
Sequentially accessible members (lists).


IInterpolatingCurveConstruction 
"set" methods for incremental construction of an IInterpolatingCurve


IInterpolatingCurveGetIndexedData 
Methods to read (Get) indexed data in an IInterpolatingCurve


IInterpolatingCurveSetIndexedData 
Methods to update (Set) indexed data in an IInterpolatingCurve


IIntervalPointPairCollector 
Interface for object to receive pairs of [objectA, intervalA, pointA, objectB, intervalB, pointB]


IJsonToCGSequentialReader 
Queries and Consume steps for sequential access.
Names are for Json Object, Array, Property concepts, but the interface is expected to
be implemented for xml readers.
Various interface methods provide names in places not needed by json, but potentially useful for
other readers. (e.g. array members are not named in json [], but require individual tags in xml)


ILineSegment 
Query methods for LineSegment
LineSegment primitive.


ILineString 
Query methods for LineString
Points joined by line segments. Point are held as coordinates (not references to point objects).
Sequentially accessible members (lists).


ILineStringConstruction 
"set" methods for incremental construction of an ILineString


ILineStringGetIndexedData 
Methods to read (Get) indexed data in an ILineString


ILineStringSetIndexedData 
Methods to update (Set) indexed data in an ILineString


IOperation 
Query methods for Operation
An operation on parameters.
Individually accessible members.
Sequentially accessible members (lists).


IOperationConstruction 
"set" methods for incremental construction of an IOperation


IParametricSurface 
Minimal interface for things that can be used as the parent surface of an IParametricSurfacePatch


IParametricSurfacePatch 
Query methods for ParametricSurfacePatch
A Patch with boundary loops in the parameter space of a surface.
Individually accessible members.
Sequentially accessible members (lists).


IParametricSurfacePatchConstruction 
"set" methods for incremental construction of an IParametricSurfacePatch


IPlacement 
Interface for an object that can return an orthogonal coordinate frame and inverse computed
from application specific defining data.


IPoint 
Minimal interface for things elibigle to be in IPointGroup.


IPointChain 
Query methods for PointChain
Enumeration of isolated points.
Sequentially accessible members (lists).


IPointChainConstruction 
"set" methods for incremental construction of an IPointChain


IPointGroup 
Query methods for PointGroup
A collection of IPoint objects  i.e. points in space or collections of points.
Sequentially accessible members (lists).


IPointGroupConstruction 
"set" methods for incremental construction of an IPointGroup


IPolygon 
Query methods for Polygon
Points joined by line segments. Point are held as coordinates (not references to point objects).
The decision of whether the raw point array includes a replicated start end point is
implementation specific. However, the implementation must support three enumerations shield
users from the decision:
Sequentially accessible members (lists).


IPolygonConstruction 
"set" methods for incremental construction of an IPolygon


IPolygonTraversal 
Methods to query coordinates in a polygon. The method names
indicate specific caller intention regarding handling of first/last point.


IPrimitiveCurve 
Minimal interface for curves in chains.
Curves that that implement this interface should also implement IBoundedParametricCurve.


IPrimitiveCurveReference 
Query methods for PrimitiveCurveReference
PrimitiveCurve which defined by refernece to another PrimitiveCurve.
This may be used to allow the curve chains of regions on opposite sides of a curve to both reference the
same underlying PrimitiveCurve but with opposing directions.
Individually accessible members.


IPrimitiveCurveReferenceConstruction 
"set" methods for incremental construction of an IPrimitiveCurveReference


ISharedGroupDef 
Query methods for SharedGroupDef
A named set of geometry.
Individually accessible members.


ISharedGroupDefConstruction 
"set" methods for incremental construction of an ISharedGroupDef


ISharedGroupInstance 
Query methods for SharedGroupInstance
A placement of a shard group.
Individually accessible members.


ISharedGroupInstanceConstruction 
"set" methods for incremental construction of an ISharedGroupInstance


IShelledSolid 
Query methods for ShelledSolid
A solid (volume) bounded by surfaces.
Individually accessible members.


IShelledSolidConstruction 
"set" methods for incremental construction of an IShelledSolid


ISingleLineText 
Query methods for SingleLineText
Single line text primitive.
Justification codes are
0,1,2  left with top, center and bottom6,7,8  center with center top, center, and bottom12,13,14  right top, center, bottom


ISinglePoint 
Minimal interface for things that can be used as an isolated point in a point cluster.


ISkewedCone 
Query methods for SkewedCone
Cone with circular cross sections, but axis not perpendicular to the circles.


ISolid 
Minimal interface to things eligible to be in ISolidGroup


ISolidByRuledSweep 
Query methods for SolidByRuledSweep
A solid with sides formed by ruled sweep between patches.
Sequentially accessible members (lists).


ISolidByRuledSweepConstruction 
"set" methods for incremental construction of an ISolidByRuledSweep


ISolidBySweptSurface 
Query methods for SolidBySweptSurface
A sweep operation involving base surface and a trace curve.
Individually accessible members.


ISolidBySweptSurfaceConstruction 
"set" methods for incremental construction of an ISolidBySweptSurface


ISolidGroup 
Query methods for SolidGroup
A collection of ISolid objects.
Sequentially accessible members (lists).


ISolidGroupConstruction 
"set" methods for incremental construction of an ISolidGroup


ISphere 
Query methods for Sphere
Sphere primitive.


ISpiral 
Query methods for Spiral
Spiral curve described by coordinates, bearing, and curvature at start and end.
(This data is redundant  only one of the start and end points is really needed to place the curve.)
Curvature is one over the local turning radius (radius of curvature).
(The units of the curvature value are inverse length.)
The SpiralType is indicated by a string. Interpretation of various types  Clothoid, Bloth, BiQuadratic  requires appropriate code
in the application. Specialized (e.g. Viennese) types may require furter parameters in auxiliary geometry.
Individually accessible members.


ISpiralConstruction 
"set" methods for incremental construction of an ISpiral


IStrokeCollector 
Receiver object for stroked curve data.
Strokers ask the NeedTangents property to determine whether tangents are to be computed.


IStrokeOptions 
Query object to provide optional stroking controls.


ISurface 
Minimal interface to things eligible to be in ISurfaceGroup


ISurfaceByRuledSweep 
Query methods for SurfaceByRuledSweep
A surface with sides formed by ruled sweep between curves
Sequentially accessible members (lists).


ISurfaceByRuledSweepConstruction 
"set" methods for incremental construction of an ISurfaceByRuledSweep


ISurfaceBySweptCurve 
Query methods for SurfaceBySweptCurve
A sweep operation involving base curve and a trace curve.
Individually accessible members.


ISurfaceBySweptCurveConstruction 
"set" methods for incremental construction of an ISurfaceBySweptCurve


ISurfaceGroup 
Query methods for SurfaceGroup
A collection of ISurface objects.
Sequentially accessible members (lists).


ISurfaceGroupConstruction 
"set" methods for incremental construction of an ISurfaceGroup


ISurfacePatch 
Query methods for SurfacePatch
A region with outer boundary (required) and optional inner boundaries (holes)
Individually accessible members.
Sequentially accessible members (lists).


ISurfacePatchConstruction 
"set" methods for incremental construction of an ISurfacePatch


ISweepable 
Minimal interface for things used in dgn sweep constructions.


ITorusPipe 
Query methods for TorusPipe
A portion of an "constant radius elbow" of a pipe. This is a partial torus
in the "major circle", but complete around the "minor circle".


ITransformedGeometry 
Query methods for TransformedGeometry
A container to apply a transform to another piece of geoemtry.
Individually accessible members.


ITransformedGeometryConstruction 
"set" methods for incremental construction of an ITransformedGeometry


ITransitionSpiral 
Query methods for TransitionSpiral
TransitionSpiral curve described by coordinates, bearing, and radius of tangent circle at start and end.
(Radius of 0 indicates a straight line.)
The SpiralType is indicated by a string. Interpretation of various types  Clothoid, Bloth, BiQuadratic  requires appropriate code
in the application. Specialized (e.g. Viennese) types may require furter parameters in auxiliary geometry.
A various spiral formulations (clothoid, bloss, sine, cosine, etc) each have a primary interval. The start and end
bearing and curvature are at the ends of the nominal interval. The primary interval is placed so its 0 point is at the
origin of the placement. However, the actual active portion of the spiral is not required to start or end at the nominal
interval. The active interval is specified as fractional coordinates. Fraction 0 is the start of the nominal interval.
Fraction 1 is the end of the nominal interval.
Spirals used in road and railway transitions will nearly always have the active and nominal intervals the same, i.e. active interval
fratctions are 0 and 1. Active interval fractions other than 0 and 1 occur due to trim and extend operations.
Individually accessible members.


ITransitionSpiralConstruction 
"set" methods for incremental construction of an ITransitionSpiral


IVector 
Query methods for Vector
3D vector (with reference point, e.g. to be used as point of application)

Delegates
Delegate  Description  

D_CreateIndexedGeometry 
Delegate for methods that generate an IGeometry from an index.
Useful in CanonicalGeometry


D_DeserializeFromXmlReader 
Delegate for Bentley.Serialization serializer


D_Deserializer 
Delegate for Bentley.Serialization serializer

Enumerations
Enumeration  Description  

AbstractCopier..::..ExtendedDataCopyMode 
Enumeration of preferences for copying extended data


CopyWithTransform..::..TransformPolicyMode 
Policy options for applying transform.


InOnOut 
Enumeration of Unknown, In, On, Out, e.g. for classifying points wrt regions


LoopType 
Enumeration of ways to interpret boundary loops on surfaces.


ScaleMode 
Enumeration of how members are transformed.
