Update 9 10.09 Builds

Microstation Connect Update 9 10.09.00.XX Builds

The following methods/functions have been added to this release of the SDK

.NET API

Text

In src\generated\Api\DgnTextSnippet.h

Gets the display name of this snippet.

System::String^ DgnTextSnippet::GetDisplayName();

Sets the display name of this snippet.

void DgnTextSnippet::SetDisplayName (System::String^);

Gets the parent of the category.

DgnTextSnippetCategory^ GetParentCategory ();

Checks if the category is same as the input category.

bool IsSame (DgnTextSnippetCategory^ category);

ParametricModeling

In DgnPlatformNET\src\generated\Api\ParametricCellHandlers.h

Use picklists' values in Variables and Expressions

ParameterStatus Add (System::String^ label, System::String^ value, bool hidden);

text string

enum Bentley.DgnPlatformNET.ParameterType::String=7

C/C++ API

GeoCoord

Sets the ellisoid scale factor for a Lambert Conformal Conic Michigan variation. The value given must be reasonnably close to 1.0.

Returns
SUCCESS or error code
StatusInt BaseGCS::SetEllipsoidScaleFactor (double value);

Geometry

In BSIQuadrature.h

BSIIncrementalVectorIntegrand::BSIIncrementalVectorIntegrand();

Integrate over an interval.

(
double t0,
double t1,
uint32_t numInterval,
double &totalErrorBound
);

Text

DgnTextSnippet.h

Set the category of this snippet.

BentleyStatus DgnTextSnippet::SetCategory (DgnTextSnippetCategoryCP category);

Set the display name of this snippet

BentleyStatus DgnTextSnippet::SetDisplayName (WCharCP name);

Checks if the input DgnTextSnippetCategory is the same

Returns
true if the Categrory is the same else returns false
bool DgnTextSnippet::IsSame (DgnTextSnippetCategoryCP);

Geometry

In dpoint4d.h

test for nearly equal points in two arrays

(
DPoint4dCP dataA,
DPoint4dCP dataB,
size_t n,
double xyzTol,
double wTol
);

test for nearly equal points in two arrays, reversing the second

(
DPoint4dCP dataA,
DPoint4dCP dataB,
size_t n,
double xyzTol,
double wTol
);

Return a point "perpendicular" to all 3 inputs.

Adds three homogeneous points.

(
DPoint4dCR point1,
double scale1,
DPoint4dCR point2,
double scale2,
DPoint4dCR point3,
double scale3
);

In DSpiral2dBase.h

AUSTRALIAN Spiral In local coordinates, with specific constants a1,a2,a3,a4 and m based on length and final radius . . . x = s (1 - a1 m^2 s^4 + a2 m^4 s^8 - a3 m^6 s^12 + a4 m^8 s^16) y = m * s^3

Evaluate at distance a spiral in standard orientation – zero curvature at origin.

(
double s,
double length,
double curvature1,
DVec2dP d1XY,
DVec2dP d2XY,
DVec2dP d3XY
);
DSpiral2dAustralian::~DSpiral2dAustralian ();

Return an interval count for stroking or integration. Except for degenerate single interval cases, the interval count is always even. That is the possible values are

(
DSpiral2dBase &spiral,
double startFraction,
double endFraction,
double maxRadians,
int minInterval = 0,
double maxStrokeLength = DEFAULT_SPIRAL_MAX_STROKE_LENGTH
);

Apply a scale factor (e.g. change of units) in place. return true if the scale is nonzero.

Set start bearing, start curvature, length, and end curvature. (Compute end bearing)

(
double theta0,
double curvature0,
double length,
double theta1
);

Integrate the vector displacements of a clothoid between fractional parameters, returning (only) the displacement between the parameters.

(
DSpiral2dBase &spiral,
double startFraction,
double endFraction,
double maxRadians,
DVec2dR delta,
double &errorBound,
double maxStrokeLength
);
Integrate the vector displacements of a clothoid over a fractional interval.

This uses the angles, curvatures, and length.

(
DSpiral2dBase &spiral,
double startFraction,
double endFraction,
double maxRadians,
double &errorBound,
int minInterval = 0,
double maxStrokeLength = DEFAULT_SPIRAL_MAX_STROKE_LENGTH
);

compute spirals and arc to make a line-to-line transition.

(
DPoint3dCR lineAPoint,
DPoint3dCR lineBPoint,
DPoint3dCR lineLineIntersection,
double length,
DSpiral2dBase &spiralA,
DSpiral2dBase &spiralB,
DPoint3dR lineToSpiralA,
DPoint3dR lineToSpiralB,
DPoint3dR spiralToSpiral,
double &junctionRadius
);
compute 2 spirals.
First spiral begins exactly at the start point and aims at the shoulder
Second spiral ends somewhere on the line from shoulder to target.
(
DPoint2dCR startPoint,
DPoint2dCR shoulderPoint,
DPoint2dCR targetPoint,
DSpiral2dBase &spiralA,
DSpiral2dBase &spiralB,
DPoint2dR junctionPoint,
DPoint2dR endPoint
);

return the string name of the type

static bool TransitionTypeToString (int type, Utf8StringR string);

use results of EvaluateAtDistance to provide integrand for caller's integrals.

intermediate class for "spirals" that really have distance-to-xy methods but need to act like spirals that have differential properties This intermediate class implements DistanceToCurvature, DistanceToLocalAngle, DistanceToCurvatureDerivatives based on direct x and y data from EvaluateAtDistance.

DSpiral2dDirectEvaluation::DSpiral2dDirectEvaluation ();
DSpiral2dDirectEvaluation::~DSpiral2dDirectEvaluation ();
void DSpiral2dDirectEvaluation::EvaluateVectorIntegrand(double distance, double *pF) override;

rotate xy and optional derivatives by radians. (To be called by derived class EvaluateAtDistance when to rotate EvaluateAtDistance results from standard position)

double radians,
DPoint2dR xyz,
DVec2dP d1XYZ,
DVec2dP d2XYZ,
DVec2dP d3XYZ
);

MX approximate Spiral In local coordinates, with specific constants a1,a2,a3,a4 and m based on length and final radius . . . x = s (1 - a1 m^2 s^4 + a2 m^4 s^8 - a3 m^6 s^12 + a4 m^8 s^16) y = m * s^3

DSpiral2dMXCubic::~DSpiral2dMXCubic ();

Evaluate at distance a spiral in standard orientation – zero curvature at origin.

(
double s,
double length,
double curvature1,
DVec2dP d1XY,
DVec2dP d2XY,
DVec2dP d3XY
);

NEWSOUTHWALES Spiral Let a = 1/ (40 R*R*L*L) for exit radius R, spiral length L Let b = 1/(6 R L) at distance s along the spiral x = s *(1-a *s^4) y = b * s^3

(
double s,
double length,
double curvature1,
DVec2dP d1XY,
DVec2dP d2XY,
DVec2dP d3XY
);
DSpiral2dNewSouthWales::~DSpiral2dNewSouthWales ();

In transform.h

Returns a transformation with translation xyz are the origin xAxis in direction of bearing radians (parallel to xy plane) yAxis perpenedicular to xAxis and also parallel to the xy plane. zAxis is global (0,0,1)

static Transform Transform::FromOriginAndBearingXY
(
DPoint3dCR origin,
double bearingRadians
);

Returns a transform with given origin and xVector. The yVector is a CCW perpendicular to the xVector (with the same length) The zVecotor is a unitZ.

static Transform Transform::FromOriginAndXVector (DPoint2dCR origin, DVec2dCR xVector);

Material

In Material.h

Returns the location to use when searching for external material palettes and tables.

WString MaterialManager::GetMaterialSearchPath (DgnDocumentMonikerCP renderDgnMoniker, DgnDocumentMonikerCP materialTableMoniker);

ParametricModeling

In ParametricModeling.h

Creates a new parameter definition of type string

ParameterStatus IEditParameterDefinitions::Add(WCharCP label, WCharCP value, bool hidden = false);
static ParameterValue ParameterValue::MakeString (WCharCP value);
void ParameterValue::SetString (WCharCP value);

Copyright © 2017 Bentley Systems, Incorporated. All rights reserved.