Classes

  Class Description
Public class AbstractCGSerializer
abstract methods to be implemented by classes that feed geometry to serializers
Public class AbstractCopier
Base class for tree sweeps that copy and transform.
Public class AbstractDDHandler
Null DDHandler concrete class
Public class AbstractFactory
Public class 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.

Public class 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.

Public class AbstractSerializer
Base class for tree sweeps that copy and transform.
Public class AdjacentSurfacePatches
Concrete base class for AdjacentSurfacePatches A collection of adjacent (connected) surface patches.
Public class BentleyGeometryDynamicSerializer
Realization of dynamic serialization interface ObjectSerializationHandler
Public class Block
Concrete base class for Block Concrete CG class for a block defined by diagonally opposite corners in a local coordinate system.
Public class BlockProxy
Proxy object to hold a reference to an IBlock The proxy can query coordinate data for use in calculations.
Public class Bspline
Bspline curve calculations
Public class BsplineCurve
Concrete base class for BsplineCurve Poles, knots, and weights for a bspline curve
Public class BsplineCurveProxy
Implement curve calculations for client IBsplineCurve
Public class BsplineSurface
Concrete base class for BsplineSurface Poles, knots, and weights for a bspline tensor surface.
Public class CGJsonParser
Parse step for LineSegment
Public class CGToXml
Helper class for formatting coordinate data output to xml tags.
Public class CGToXmlWriter
Helper class for formatting coordinate data output to xml tags.
Public class CircularArc
Concrete base class for CircularArc Circular arc primitive.
Public class CircularArcProxy
Proxy object to hold a reference to an ICircularArc The proxy can query coordinate data for use in calculations.
Public class CircularCone
Concrete base class for CircularCone Circular cone primitive.
Public class CircularConeProxy
Proxy object to hold a reference to an ICircularCone The proxy can query coordinate data for use in calculations.
Public class CircularCylinder
Concrete base class for CircularCylinder Circular cylinder primitive.
Public class CircularCylinderProxy
Proxy object to hold a reference to an ICircularCylinder The proxy can query coordinate data for use in calculations.
Public class CircularDisk
Concrete base class for CircularDisk Circular disk primitive.
Public class CircularDiskProxy
Proxy object to hold a reference to an ICircularDisk The proxy can query coordinate data for use in calculations.
Public class ClosestStrokeSearcher
Public class CommonGeometryBinarySerializer
This helper class exists to support GeometryValue's implementation of IBinaryFormattableValueWithContext.
Public class Coordinate
Concrete base class for Coordinate 3D point.
Public class CoordinateProxy
Proxy object to hold a reference to an ICoordinate The proxy can query coordinate data for use in calculations.
Public class Copier
Deep copy of geometry tree.
Public class CopyWithScale
Class to copy geometry with unit changes. Caller supplies scale factor (and optional factory) to constructor, then copies with the Copy method.
Public class CopyWithTransform
Class to copy geometry with unit changes. Caller supplies scale factor (and optional factory) to constructor, then copies with the Copy method.
Public class Curve
Public class CurveChain
Concrete base class for CurveChain A sequence of primitive curves joined end-to-end.
Public class 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.
Public class CurveGroup
Concrete base class for CurveGroup A collection of ICurve objects.
Public class CurveKnotCondition
Named constants for knot setup. Conversions that occur in application code may not honor all codes.
Public class 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.
Public class DebugHandler
Class for testing object implementations.
Public class DeepComparisonContext
DeepEquals DDHandle implementation for ILineSegment
Public class DgnBox
Concrete base class for DgnBox Concrete CG class for a box defined by rectangles with parallel edges.
Public class DgnBoxProxy
Proxy object to hold a reference to an IDgnBox The proxy can query coordinate data for use in calculations.
Public class DgnCone
Concrete base class for DgnCone Concrete CG class for a cone or cylinder
Public class DgnConeProxy
Proxy object to hold a reference to an IDgnCone The proxy can query coordinate data for use in calculations.
Public class DgnCurveVector
Concrete base class for DgnCurveVector A collection of curves, variously representing open chains, closed loops, parity regions, and unions of other regions.
Public class DgnExtrusion
Concrete base class for DgnExtrusion Concrete CG class for an (linear) extruded contour or region
Public class DgnRotationalSweep
Concrete base class for DgnRotationalSweep Concrete CG class for an rotational extrusion of a contour or region
Public class DgnRuledSweep
Concrete base class for DgnRuledSweep Surface defined by rule lines between compatible contours.
Public class DgnSphere
Concrete base class for DgnSphere Concrete CG class for a sphere (possibly ellipsoidal with circular equator, elliptic polars).
Public class DgnSphereProxy
Proxy object to hold a reference to an IDgnSphere The proxy can query coordinate data for use in calculations.
Public class DgnTorusPipe
Concrete base class for DgnTorusPipe Concrete CG class for a pipe elbow.
Public class DgnTorusPipeProxy
Proxy object to hold a reference to an IDgnTorusPipe The proxy can query coordinate data for use in calculations.
Public class DynamicSerializer
Realization of dynamic serialization interface ObjectSerializationHandler
Public class EllipticArc
Concrete base class for EllipticArc Elliptic arc primitive.
Public class EllipticArcProxy
Proxy object to hold a reference to an IEllipticArc The proxy can query coordinate data for use in calculations.
Public class EllipticDisk
Concrete base class for EllipticDisk Elliptic disk primitive.
Public class EllipticDiskProxy
Proxy object to hold a reference to an IEllipticDisk The proxy can query coordinate data for use in calculations.
Public class Factory
Factory object to create default common geometry objects.
Public class GeometryProxy
Public class GeometryProxy<(Of <(<'TEmulatedInterface>)>)>
Base class to act as an IGeometry on behalf of a client object.
Public class Group
Concrete base class for Group A group of geometry.
Public class IndexedMesh
Concrete base class for IndexedMesh Facets with "1 based, zero-terminated" indices.
Public class InterpolatingCurve
Concrete base class for InterpolatingCurve Poles, knots, and weights for a curve interpolated through given points.
Public class IntervalPointPairCollector
Implementation of IIntervalPointPairCollector, with all results collected in List form.
Public class LineSegment
Concrete base class for LineSegment LineSegment primitive.
Public class LineSegmentProxy
Proxy object to hold a reference to an ILineSegment The proxy can query coordinate data for use in calculations.
Public class LineString
Concrete base class for LineString Points joined by line segments. Point are held as coordinates (not references to point objects).
Public class LineStringProxy
Implement curve calculations for client ILinestring
Public class NullDDHandler
Null DDHandler concrete class
Public class NullFactory
Public class NullGeometry
Base class for geometry implementations within Bentley.GeometryNET.Common.dll. The object is its own NativeGeometry refernece.
Public class NullHandler
Useful base class with type-specific noop Handler methods for all geometry types.
Public class NullStrokeCollector
Base class for various stroke collectors.
Public class Operation
Concrete base class for Operation An operation on parameters.
Public class ParametricSurfacePatch
Concrete base class for ParametricSurfacePatch A Patch with boundary loops in the parameter space of a surface.
Public class PlacementZX
Object to define the placement coordinate system for 3d objects, using z vector and x reference vector for orientation.
Public class PointChain
Concrete base class for PointChain Enumeration of isolated points.
Public class PointerAccumulator
Search-and-record class for a directed graph traversal to detect and count pointers and cycles.
Public class PointGroup
Concrete base class for PointGroup A collection of IPoint objects -- i.e. points in space or collections of points.
Public class 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:
 Copy imageCopy Code
                foreach (DPoint3d xyz in polygon.PointsWithClosure ())
                    {
                    }
                foreach (DPoint3d xyz in polygon.PointsNoClosure ())
                    {
                    }
                foreach (DPoint3d xyz in polygon.Edges ())
                    {
                    }
            
Public class 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.
Public class SharedGroupDef
Concrete base class for SharedGroupDef A named set of geometry.
Public class SharedGroupInstance
Concrete base class for SharedGroupInstance A placement of a shard group.
Public class ShelledSolid
Concrete base class for ShelledSolid A solid (volume) bounded by surfaces.
Public class 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
Public class SingleLineTextProxy
Proxy object to hold a reference to an ISingleLineText The proxy can query coordinate data for use in calculations.
Public class SkewedCone
Concrete base class for SkewedCone Cone with circular cross sections, but axis not perpendicular to the circles.
Public class SkewedConeProxy
Proxy object to hold a reference to an ISkewedCone The proxy can query coordinate data for use in calculations.
Public class SolidByRuledSweep
Concrete base class for SolidByRuledSweep A solid with sides formed by ruled sweep between patches.
Public class SolidBySweptSurface
Concrete base class for SolidBySweptSurface A sweep operation involving base surface and a trace curve.
Public class SolidGroup
Concrete base class for SolidGroup A collection of ISolid objects.
Public class Sphere
Concrete base class for Sphere Sphere primitive.
Public class SphereProxy
Proxy object to hold a reference to an ISphere The proxy can query coordinate data for use in calculations.
Public class 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.
Public class SpiralProxy
Proxy functions for CG Transition spirals
Public class StrokeListCollector
Public class StrokeOptions
Stroke options storage and evaluation.
Public class StrokeToGeometry
Public class Surface
Static methods for computations on surface objects
Public class SurfaceByRuledSweep
Concrete base class for SurfaceByRuledSweep A surface with sides formed by ruled sweep between curves
Public class SurfaceBySweptCurve
Concrete base class for SurfaceBySweptCurve A sweep operation involving base curve and a trace curve.
Public class SurfaceGroup
Concrete base class for SurfaceGroup A collection of ISurface objects.
Public class SurfacePatch
Concrete base class for SurfacePatch A region with outer boundary (required) and optional inner boundaries (holes)
Public class TaggedDSegment1dDPoint3d
Tuple of (object,int,DSegment1d,DPoint3d)
Public class TaggedDSegment1dDPoint3dPair
Pair of TaggedDSegment1dDPoint3d tuples.
Public class ToleranceManager
Distance and parameter tolerance services
Public class 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".
Public class TorusPipeProxy
Proxy object to hold a reference to an ITorusPipe The proxy can query coordinate data for use in calculations.
Public class TransformedGeometry
Concrete base class for TransformedGeometry A container to apply a transform to another piece of geoemtry.
Public class 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.
Public class Vector
Concrete base class for Vector 3D vector (with reference point, e.g. to be used as point of application)
Public class VectorProxy
Proxy object to hold a reference to an IVector The proxy can query coordinate data for use in calculations.
Public class 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:

 Copy imageCopy Code
                       XmlReader reader = XmlReader.Create (...);
                       AbstractFactory factory = Factory.DefaultFactory;
                       XmlReaderToCG cgReader = new XmlReaderToCG (factory);
                       if (   reader.Read()
                           && reader.IsStartElement ())
                           {
                           if (   reader.Name == "CommonGeometry"
                               && reader.Read ())
                               {
                               for (;reader.IsStartElement ();)
                                   {
                                   IGeometry g;
                                   if (null != (g = cgReader.Deserialize (reader)))
                                       {
                                       ... process geometry g
                                       }
                                   }
                               }
                           }
            
Public class 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:

 Copy imageCopy Code
                       XmlReader reader = XmlReader.Create (...);
                       AbstractFactory factory = Factory.DefaultFactory;
                       XmlToCG cgReader = new XmlToCG (factory);
                       if (   reader.Read()
                           && reader.IsStartElement ())
                           {
                           if (   reader.Name == "CommonGeometry"
                               && reader.Read ())
                               {
                               for (;reader.IsStartElement ();)
                                   {
                                   IGeometry g;
                                   if (null != (g = cgReader.Deserialize (reader)))
                                       {
                                       ... process geometry g
                                       }
                                   }
                               }
                           }
            

Structures

  Structure Description
Public structure AssignmentCounted<(Of <(<'T>)>)>
Class to maintain a value and number of times assigned.
Protected structure CopyWithTransform..::..TransformData
"All" data affecting a tranform, packaged for push/pop.

Interfaces

  Interface Description
Public interface IAdjacentSurfacePatches
Query methods for AdjacentSurfacePatches A collection of adjacent (connected) surface patches.

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetPatchCountISurfacePatchPatchsOne patch of the surface
Public interface IAdjacentSurfacePatchesConstruction
"set" methods for incremental construction of an IAdjacentSurfacePatches
Public interface IAggregate
Minimal interface to be inherited by various IXxxxGroup, where each Xxxx is a constrained type.
Public interface IAnalyticSolid
Minimal interface to identify analytic solids.
Public interface IBlock
Query methods for Block Concrete CG class for a block defined by diagonally opposite corners in a local coordinate system.
nametypedescription
placementIPlacementOrigin and orientation
cornerADPoint3dCorner points in local coordinates
cornerBDPoint3dOpposite corner point in local coordinates
bSolidFlagbooltrue for closed ends
Public interface 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.
Public interface IBsplineCurve
Query methods for BsplineCurve Poles, knots, and weights for a bspline curve

Individually accessible members.

nametypedescription
orderintSpline order (one more than degree)
closedboolClosure flag.

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetControlPointCountDPoint3dControlPointsControl point xyz
GetWeightCountdoubleWeightsControl point weight
GetKnotCountdoubleKnotsknot
Public interface IBsplineCurveConstruction
"set" methods for incremental construction of an IBsplineCurve
Public interface IBsplineCurveGetIndexedData
Methods to read (Get) indexed data in an IBsplineCurve
Public interface IBsplineCurveSetIndexedData
Methods to update (Set) indexed data in an IBsplineCurve
Public interface IBsplineGetIndexedBezier
Query functions for accessing bezier fragments from a bspline.
Public interface IBsplineSurface
Query methods for BsplineSurface Poles, knots, and weights for a bspline tensor surface.

Individually accessible members.

nametypedescription
orderUintSpline order in u direction (one more than degree)
closedUboolU direction closure flag.
numUControlPointintU direction control point count.
orderVintSpline order in u direction (one more than degree)
closedVboolV direction closure flag.
numVControlPointintV direction control point count.

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetControlPointCountDPoint3dControlPointsControl point xyz
GetWeightCountdoubleWeightsControl point weight
GetKnotUCountdoubleKnotUsU direction knot
GetKnotVCountdoubleKnotVsV direction knot
Public interface IBsplineSurfaceConstruction
"set" methods for incremental construction of an IBsplineSurface
Public interface IBsplineSurfaceGetIndexedData
Methods to read (Get) indexed data in an IBsplineSurface
Public interface IBsplineSurfaceSetIndexedData
Methods to update (Set) indexed data in an IBsplineSurface
Public interface ICircularArc
Query methods for CircularArc Circular arc primitive.
nametypedescription
placementIPlacementCenter and orientation
radiusdoublecicle radius.
startAngleAngleAngle (in xy plane) from x axis to start.
sweepAngleAngleAngle (in xy plane) from start to end.
Public interface ICircularCone
Query methods for CircularCone Circular cone primitive.
nametypedescription
placementIPlacementCenter and orientation
heightdoubleheight along z axis
radiusAdoubleradius in xy plane at origin.
radiusBdoubleradius parallel to xy plane at opposite end
bSolidFlagbooltrue for closed caps
Public interface ICircularCylinder
Query methods for CircularCylinder Circular cylinder primitive.
nametypedescription
placementIPlacementCenter and orientation
heightdoubleheight along z axis
radiusdoubleradius in xy plane.
bSolidFlagbooltrue for closed caps
Public interface ICircularDisk
Query methods for CircularDisk Circular disk primitive.
nametypedescription
placementIPlacementCenter and orientation
radiusdoubleradius in local xy plane.
Public interface ICoordinate
Query methods for Coordinate 3D point.
nametypedescription
xyzDPoint3dPoint coordinates.
Public interface ICurve
Minimal interface for things eligible to be in ICurveGroup
Public interface ICurveChain
Query methods for CurveChain A sequence of primitive curves joined end-to-end.

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetCurveCountIPrimitiveCurveCurvesCurve component
Public interface ICurveChainConstruction
"set" methods for incremental construction of an ICurveChain
Public interface ICurveGroup
Query methods for CurveGroup A collection of ICurve objects.

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetCurveCountICurveCurvesCurve
Public interface ICurveGroupConstruction
"set" methods for incremental construction of an ICurveGroup
Public interface 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.

nametypedescription
reversedboolReversal flag.
parentCurveICurveParent curve.
Public interface ICurveReferenceConstruction
"set" methods for incremental construction of an ICurveReference
Public interface IDgnBox
Query methods for DgnBox Concrete CG class for a box defined by rectangles with parallel edges.
nametypedescription
baseOriginDPoint3dorigin of base rectangle
topOriginDPoint3dorigin of top rectangle
vectorXDVector3ddirection of rectangle X edge
vectorYDVector3ddirection of rectangle Y edge
baseXdoublex size at base
baseYdoubley size at base
topXdoublex size at top
topYdoubley size at top
cappedbooltrue for closed ends
Public interface IDgnCone
Query methods for DgnCone Concrete CG class for a cone or cylinder
nametypedescription
centerADPoint3dcenter at cross section A
centerBDPoint3dcenter at cross section B
vectorXDVector3dx vector for cross sections
vectorYDVector3dy vector for cross sections
radiusAdoubleradius at section A
radiusBdoubleradius at section B
cappedbooltrue for closed ends
Public interface 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.

nametypedescription
boundaryTypeintIndicates expected contents: (0) no controlled structure (1) curve chain, (2) outer loop (3) inner loop (4) parity region (with child curve vectors) (5) union region (with child curve vectors)

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetMemberCountIDgnCurveVectorMemberMembersVector of curves or child curve vectors.
Public interface IDgnCurveVectorConstruction
"set" methods for incremental construction of an IDgnCurveVector
Public interface 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)
Public interface IDgnExtrusion
Query methods for DgnExtrusion Concrete CG class for an (linear) extruded contour or region

Individually accessible members.

nametypedescription
extrusionVectorDVector3dSweep vector
cappedboolcap flag.
baseGeometryISweepableGeometry to be swept
Public interface IDgnExtrusionConstruction
"set" methods for incremental construction of an IDgnExtrusion
Public interface IDgnRotationalSweep
Query methods for DgnRotationalSweep Concrete CG class for an rotational extrusion of a contour or region

Individually accessible members.

nametypedescription
centerDPoint3dAny point on rotation axis
axisDVector3dRotation Axis
sweepAngleAngleSweep angle
cappedboolcap flag.
baseGeometryISweepableGeometry to be swept
Public interface IDgnRotationalSweepConstruction
"set" methods for incremental construction of an IDgnRotationalSweep
Public interface IDgnRuledSweep
Query methods for DgnRuledSweep Surface defined by rule lines between compatible contours.

Individually accessible members.

nametypedescription
cappedboolcap flag.

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetContourCountISweepableContourscontour
Public interface IDgnRuledSweepConstruction
"set" methods for incremental construction of an IDgnRuledSweep
Public interface IDgnSphere
Query methods for DgnSphere Concrete CG class for a sphere (possibly ellipsoidal with circular equator, elliptic polars).
nametypedescription
centerDPoint3dsphere center
vectorXDVector3dvector to equator
vectorZDVector3dvector to north pole
radiusXYdoubleequator radius
radiusZdoublepolar radius
startLatitudeAnglelatitude for start cut plane
latitudeSweepAnglelatitude sweep to end cut plane
cappedbooltrue for closed ends
Public interface IDgnTorusPipe
Query methods for DgnTorusPipe Concrete CG class for a pipe elbow.
nametypedescription
centerDPoint3dcenter of major circle
vectorXDVector3dDirection from center to pipe entry
vectorYDVector3dPerpendicular direction in major circle plane
majorRadiusdoublemajor circle radius
minorRadiusdoubleminor circle radius
sweepAngleAnglemajor circle sweep angle
cappedbooltrue for closed ends
Public interface IEllipticArc
Query methods for EllipticArc Elliptic arc primitive.
nametypedescription
placementIPlacementCenter and orientation
radiusAdoubleradius on X axis of local system.
radiusBdoubleradius on Y axis of local system.
startAngleAngleParametric angle of start point.
sweepAngleAngleParametric angle of end point.
Public interface IEllipticDisk
Query methods for EllipticDisk Elliptic disk primitive.
nametypedescription
placementIPlacementCenter and orientation
radiusAdoublex direction radius in local xy plane.
radiusBdoubley direction radius in local xy plane.
Public interface IExtendableGeometry
Base interface for "EC friendly" tree of geometry classes.
Public interface IExtensibleParametricCurve
Query methods for parameterized curve that maps 0..1 to a bounded curve and can be extended to parameters outside that range.
Public interface IGeometry
root interface for all geometry classes
Public interface IGroup
Query methods for Group A group of geometry.

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetMemberCountIGeometryMembersGroup member
Public interface IGroupConstruction
"set" methods for incremental construction of an IGroup
Public interface IIndexedMesh
Query methods for IndexedMesh Facets with "1 based, zero-terminated" indices.

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetCoordCountDPoint3dCoordsMesh vertex coordinates
GetCoordIndexCountintCoordIndexsSigned, one-based indices into coordinates.
GetParamCountDPoint2dParamsParametric coordinates
GetParamIndexCountintParamIndexsParameter indices.
GetNormalCountDVector3dNormalsVertex normals
GetNormalIndexCountintNormalIndexsNormal indices.
GetColorCountDVector3dColorsVertex colors
GetColorIndexCountintColorIndexsColor indices.
Public interface IIndexedMeshConstruction
"set" methods for incremental construction of an IIndexedMesh
Public interface IIndexedMeshGetIndexedData
Methods to read (Get) indexed data in an IIndexedMesh
Public interface IIndexedMeshSetIndexedData
Methods to update (Set) indexed data in an IIndexedMesh
Public interface IInterpolatingCurve
Query methods for InterpolatingCurve Poles, knots, and weights for a curve interpolated through given points.

Individually accessible members.

nametypedescription
endConditionCodeintend condition selector. See the CurveEndCondition class for allowed values and their meanings.
knotCodeintknot selection. See the CurveKnotCondition class for allowed values and their meanings.
startVectorDVector3dvector applied for start condition. Particular meaning depends on end condition code.
endVectorDVector3dvector applied for end condition. Particular meaning depends on end condition code.

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetPointCountDPoint3dPointsPoint coordinates in along curve
GetKnotCountdoubleKnotsknot value at corresponding curve point
Public interface IInterpolatingCurveConstruction
"set" methods for incremental construction of an IInterpolatingCurve
Public interface IInterpolatingCurveGetIndexedData
Methods to read (Get) indexed data in an IInterpolatingCurve
Public interface IInterpolatingCurveSetIndexedData
Methods to update (Set) indexed data in an IInterpolatingCurve
Public interface IIntervalPointPairCollector
Interface for object to receive pairs of [objectA, intervalA, pointA, objectB, intervalB, pointB]
Public interface 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)
Public interface ILineSegment
Query methods for LineSegment LineSegment primitive.
nametypedescription
startPointDPoint3dStart coordinates.
endPointDPoint3dEnd coordinates.
Public interface ILineString
Query methods for LineString Points joined by line segments. Point are held as coordinates (not references to point objects).

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetPointCountDPoint3dPointsPoint coordinates in line string
Public interface ILineStringConstruction
"set" methods for incremental construction of an ILineString
Public interface ILineStringGetIndexedData
Methods to read (Get) indexed data in an ILineString
Public interface ILineStringSetIndexedData
Methods to update (Set) indexed data in an ILineString
Public interface IOperation
Query methods for Operation An operation on parameters.

Individually accessible members.

nametypedescription
nameStringName of operation

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetMemberCountIGeometryMembersmember for operation
Public interface IOperationConstruction
"set" methods for incremental construction of an IOperation
Public interface IParametricSurface
Minimal interface for things that can be used as the parent surface of an IParametricSurfacePatch
Public interface IParametricSurfacePatch
Query methods for ParametricSurfacePatch A Patch with boundary loops in the parameter space of a surface.

Individually accessible members.

nametypedescription
loopTypeLoopTypeLoop interpretation
surfaceIParametricSurfaceParametric surface

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetCurveChainCountICurveChainCurveChainsBoundary loop
Public interface IParametricSurfacePatchConstruction
"set" methods for incremental construction of an IParametricSurfacePatch
Public interface IPlacement
Interface for an object that can return an orthogonal coordinate frame and inverse computed from application specific defining data.
Public interface IPoint
Minimal interface for things elibigle to be in IPointGroup.
Public interface IPointChain
Query methods for PointChain Enumeration of isolated points.

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetPointCountISinglePointPointsPoint of chain
Public interface IPointChainConstruction
"set" methods for incremental construction of an IPointChain
Public interface IPointGroup
Query methods for PointGroup A collection of IPoint objects -- i.e. points in space or collections of points.

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetMemberCountIPointMembersPoint or IPointChain
Public interface IPointGroupConstruction
"set" methods for incremental construction of an IPointGroup
Public interface 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:
 Copy imageCopy Code
                foreach (DPoint3d xyz in polygon.PointsWithClosure ())
                    {
                    }
                foreach (DPoint3d xyz in polygon.PointsNoClosure ())
                    {
                    }
                foreach (DPoint3d xyz in polygon.Edges ())
                    {
                    }
            

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetPointCountDPoint3dPointsPoint coordinates around polygon.
Public interface IPolygonConstruction
"set" methods for incremental construction of an IPolygon
Public interface IPolygonTraversal
Methods to query coordinates in a polygon. The method names indicate specific caller intention regarding handling of first/last point.
Public interface IPrimitiveCurve
Minimal interface for curves in chains. Curves that that implement this interface should also implement IBoundedParametricCurve.
Public interface 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.

nametypedescription
reversedboolReversal flag.
parentCurveIPrimitiveCurveParent curve.
Public interface IPrimitiveCurveReferenceConstruction
"set" methods for incremental construction of an IPrimitiveCurveReference
Public interface ISharedGroupDef
Query methods for SharedGroupDef A named set of geometry.

Individually accessible members.

nametypedescription
nameStringSharedGroup name
geometryIGeometrySharedGroup geometry
Public interface ISharedGroupDefConstruction
"set" methods for incremental construction of an ISharedGroupDef
Public interface ISharedGroupInstance
Query methods for SharedGroupInstance A placement of a shard group.

Individually accessible members.

nametypedescription
sharedGroupNameStringName of shared group
transformDTransform3dPlacement Transform
Public interface ISharedGroupInstanceConstruction
"set" methods for incremental construction of an ISharedGroupInstance
Public interface IShelledSolid
Query methods for ShelledSolid A solid (volume) bounded by surfaces.

Individually accessible members.

nametypedescription
BoundingSurfaceISurfaceBounding surface.
Public interface IShelledSolidConstruction
"set" methods for incremental construction of an IShelledSolid
Public interface 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
nametypedescription
placementIPlacementCenter and orientation
textStringStringtext string.
fontNameStringFont Name
characterXSizedoublecharacter width.
characterYSizedoublecharacter height.
justificationintJustification code..
Public interface ISinglePoint
Minimal interface for things that can be used as an isolated point in a point cluster.
Public interface ISkewedCone
Query methods for SkewedCone Cone with circular cross sections, but axis not perpendicular to the circles.
nametypedescription
placementIPlacementCenter and orientation
centerBDPoint3dcenter at final cross section
radiusAdoubleradius in xy plane at origin.
radiusBdoubleradius parallel to xy plane at centerB
bSolidFlagbooltrue for closed caps
Public interface ISolid
Minimal interface to things eligible to be in ISolidGroup
Public interface ISolidByRuledSweep
Query methods for SolidByRuledSweep A solid with sides formed by ruled sweep between patches.

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetSectionCountISweepableSectionsSections
Public interface ISolidByRuledSweepConstruction
"set" methods for incremental construction of an ISolidByRuledSweep
Public interface ISolidBySweptSurface
Query methods for SolidBySweptSurface A sweep operation involving base surface and a trace curve.

Individually accessible members.

nametypedescription
baseGeometryISurfaceSurface being swept.
railCurveICurveCurve definining sweep path.
Public interface ISolidBySweptSurfaceConstruction
"set" methods for incremental construction of an ISolidBySweptSurface
Public interface ISolidGroup
Query methods for SolidGroup A collection of ISolid objects.

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetSolidCountISolidSolidsMember solid
Public interface ISolidGroupConstruction
"set" methods for incremental construction of an ISolidGroup
Public interface ISphere
Query methods for Sphere Sphere primitive.
nametypedescription
placementIPlacementCenter and orientation
radiusdoubleSphere radius.
Public interface 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.

nametypedescription
spiralTypeStringSpiral type.
startPointDPoint3dStart coordinates
startBearingAnglebearing angle at start point
startCurvaturedoubleCurvature at start. 0 for straight line
endPointDPoint3dEnd coordinates
endBearingAnglebearing angle at end point
endCurvaturedoubleCurvature at end. 0 for straight line
geometryIGeometryAuxiliry geometry. Required contents depends on the Spiral type
Public interface ISpiralConstruction
"set" methods for incremental construction of an ISpiral
Public interface IStrokeCollector
Receiver object for stroked curve data. Strokers ask the NeedTangents property to determine whether tangents are to be computed.
Public interface IStrokeOptions
Query object to provide optional stroking controls.
Public interface ISurface
Minimal interface to things eligible to be in ISurfaceGroup
Public interface ISurfaceByRuledSweep
Query methods for SurfaceByRuledSweep A surface with sides formed by ruled sweep between curves

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetSectionCountISweepableSectionsSections
Public interface ISurfaceByRuledSweepConstruction
"set" methods for incremental construction of an ISurfaceByRuledSweep
Public interface ISurfaceBySweptCurve
Query methods for SurfaceBySweptCurve A sweep operation involving base curve and a trace curve.

Individually accessible members.

nametypedescription
baseGeometryICurveCurve being swept.
railCurveICurveCurve definining sweep path.
Public interface ISurfaceBySweptCurveConstruction
"set" methods for incremental construction of an ISurfaceBySweptCurve
Public interface ISurfaceGroup
Query methods for SurfaceGroup A collection of ISurface objects.

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetSurfaceCountISurfaceSurfacesMember surface patch or collection
Public interface ISurfaceGroupConstruction
"set" methods for incremental construction of an ISurfaceGroup
Public interface ISurfacePatch
Query methods for SurfacePatch A region with outer boundary (required) and optional inner boundaries (holes)

Individually accessible members.

nametypedescription
exteriorLoopICurveChainOuter boundary loop

Sequentially accessible members (lists).

Count methodList member typeEnumerator methodmember description
GetHoleLoopCountICurveChainHoleLoopsHole boundary loop
Public interface ISurfacePatchConstruction
"set" methods for incremental construction of an ISurfacePatch
Public interface ISweepable
Minimal interface for things used in dgn sweep constructions.
Public interface 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".
nametypedescription
placementIPlacementCenter and orientation
radiusAdoubleElbow radius
radiusBdoublePipe radius
startAngleAngleStart angle in xy plane
sweepAngleAngleSweep angle in xy plane
bSolidFlagbooltrue for closed caps
Public interface ITransformedGeometry
Query methods for TransformedGeometry A container to apply a transform to another piece of geoemtry.

Individually accessible members.

nametypedescription
transformDTransform3dPlacement Transform
geometryIGeometryGeometry to be transformed
Public interface ITransformedGeometryConstruction
"set" methods for incremental construction of an ITransformedGeometry
Public interface 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.

nametypedescription
spiralTypeStringTransitionSpiral type.
placementIPlacementOrigin and orientation
startBearingAnglebearing angle at start point
startRadiusdoubleRadius at start. 0 for straight line
endBearingAnglebearing angle at end point
endRadiusdoubleRadius at end. 0 for straight line
activeStartFractiondoubleFractional position of active interval start.
activeEndFractiondoubleFractional position of active interval end.
geometryIGeometryAuxiliry geometry. Required contents depends on the TransitionSpiral type
Public interface ITransitionSpiralConstruction
"set" methods for incremental construction of an ITransitionSpiral
Public interface IVector
Query methods for Vector 3D vector (with reference point, e.g. to be used as point of application)
nametypedescription
xyzDPoint3dReference point
vectorDVector3dVector data

Delegates

  Delegate Description
Public delegate D_CreateIndexedGeometry
Delegate for methods that generate an IGeometry from an index. Useful in CanonicalGeometry
Public delegate D_DeserializeFromXmlReader
Delegate for Bentley.Serialization serializer
Public delegate D_Deserializer
Delegate for Bentley.Serialization serializer

Enumerations

  Enumeration Description
Public enumeration AbstractCopier..::..ExtendedDataCopyMode
Enumeration of preferences for copying extended data
Public enumeration CopyWithTransform..::..TransformPolicyMode
Policy options for applying transform.
Public enumeration InOnOut
Enumeration of Unknown, In, On, Out, e.g. for classifying points wrt regions
Public enumeration LoopType
Enumeration of ways to interpret boundary loops on surfaces.
Public enumeration ScaleMode
Enumeration of how members are transformed.