10.11.00.42


Overview

MicroStation CONNECT Update 11 10.11.00.XX Builds

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

C++ API

DgnLib

In dgnlib.h

enum class DgnLibSelector::LineStylesOnly
enum class DgnLibSelector::DetailingSymbolStylesOnly

Drawing Composition

In IDrawCompBuilder.h

enum DrawCompBuilderOptionsEventType

Geometry

In CurvePrimitive.h

Create a spiral of one of the "cubic" approximations. This uses an iterative search for spiral parameters and start/end fractions so that the spiral follows the "cubic" path but has the true radius and length characteristics. (Recall that the cubic spirals have nominal radius and length in their equations, but actual radius and length are slightly different)

GEOMDLLIMPEXP static ICurvePrimitivePtr CreatePseudolSpiralWithTrueRadiusLengthRadius (int transitionType, DPoint3dCR startPoint, double startRadians, double startRadius, double targetLength, double endRadius);

In DSegment1d.h

Test if the EndPointProduct is zero or negative

GEOMDLLIMPEXP bool IsInteriorOrEnd (double x) const;

Exact equality test for 0.0 to 1.0 interval

GEOMDLLIMPEXP bool Is01 () const;
GEOMDLLIMPEXP bool AlmostEqual (DSegment1d const &other, double tolerance = 0.0) const;

In DSpiral2dBase.h

true transition spirals

static const int TransitionType_MXCubicAlongArc = 56; // IMPLEMENTED 01/18
static const int TransitionType_MXCubicAlongTangent = 57; // NOT IMPLEMENTED
static const int TransitionType_ChineseCubic = 58; // IMPLEMENTED 08/18
static const int TransitionType_DirectHalfCosine = 60; // IMPLEMENTED 08/18

invoke appropriate concrete class constructor, with type-specific nominal length

public: static DSpiral2dBaseP CreateWithNominalLength (int transitionType, double parameter);

BeHttp

In DefaultHttpHandler.h

Get singleton instance. Will initialize on first call - thread safe.

BEHTTP_EXPORT static DefaultHttpHandlerPtr GetInstance();

Perform HttpRequest and receive HttpResponse

BEHTTP_EXPORT virtual Tasks::AsyncTaskPtr<Response> _PerformRequest(const Request& request) override;

Internal - use HttpClient API instead. Enable/Disable implementation.

void SetEnabled(bool enabled);

Internal. Get implementation handler.

IHttpHandlerPtr GetInternalHandler() const;

In HttpBody.h

BEHTTP_EXPORT static HttpCompressedBodyPtr Create(HttpBodyPtr content);

Calling Open() compresses the content body

BEHTTP_EXPORT void Open() override;
BEHTTP_EXPORT void Close() override;

Uses binary body for interacting with data

BEHTTP_EXPORT BentleyStatus SetPosition(uint64_t position) override;
BEHTTP_EXPORT BentleyStatus GetPosition(uint64_t& position) override;

Uses binary body for interacting with data

BEHTTP_EXPORT BentleyStatus Reset() override;

Not supported

BEHTTP_EXPORT size_t Write(const char* buffer, size_t bufferSize) override;
BEHTTP_EXPORT size_t Read(char* bufferOut, size_t bufferSize) override;
BEHTTP_EXPORT uint64_t GetLength() override;

Not supported

BEHTTP_EXPORT Utf8String AsString() const override;

In HttpClient.h

Initialize platform specific HTTP framework elements. Call once when starting up application. [Android] - Required for SSL support. Initialize with JNIEnv* [Windows/iOS/etc.] - Not required, does nothing.

BEHTTP_EXPORT static void InitializePlatform(void* arg);

Reinitialize HTTP framework with original options after uninitialization.

BEHTTP_EXPORT static void Reinitialize();

Uninitialize HTTP framework before process is shutting down to release any resources. It is recommended to call this from main thread. Should never be called from web threads or callbacks. New requests will fail as cancelled unless Reinitialize() is called.

BEHTTP_EXPORT static void Uninitialize();

Options provided at initialization

BEHTTP_EXPORT static const Options& GetOptions();

DEPRECATED, use BeUri::EscapeString()! Use percent escape for URLs

static Utf8String EscapeString(Utf8StringCR str) { return BeUri::EscapeString(str); }

DEPRECATED, use BeUri::UnescapeString()! Unsecape percent encoding

static Utf8String UnescapeString (Utf8StringCR str) { return BeUri::UnescapeString(str); }

Enable full logging that could contain sensitive information. Enabled on DEBUG builds by default, disabled otherwise.

BEHTTP_EXPORT static void EnableFullLogging(bool enable);
BEHTTP_EXPORT static bool IsFullLoggingEnabled();

Set authorization for request

void SetCredentials(Credentials credentials) {m_credentials = std::move(credentials);}

Compression options to use when creating requests

BEHTTP_EXPORT void SetCompressionOptions(CompressionOptions options) {m_compressionOptions = std::move(options);}
BEHTTP_EXPORT CompressionOptionsCR GetCompressionOptions() const {return m_compressionOptions;}

In HttpError.h

Create invalid error

BEHTTP_EXPORT HttpError();

Create error based on information in response

BEHTTP_EXPORT HttpError(Response httpResponse);

In HttpHeaders.h

Return referance to internal map. Always use Set/Add methods instead of directly modifying map when possible.

HttpHeaderMap& GetMap() { return m_headers; };

Proxy-Authenticate header. Use AuthenticationChallengeValue to parse it

void SetProxyAuthenticate(Utf8StringCR value) {SetValue("Proxy-Authenticate", value);}
Utf8CP GetProxyAuthenticate() const {return GetValue("Proxy-Authenticate");}

In HttpRequest.h

Set credentials for an authenticating proxy

void SetProxyCredentials(Credentials credentials) {m_proxyCredentials = credentials;}
CredentialsCR GetProxyCredentials() const {return m_proxyCredentials;}

Used to workaround a CURL bug: https://github.com/curl/curl/issues/1294/

void SetRetryOnCouldNotConnect(bool doRetry) { m_retryOnCouldNotConnect = doRetry; };
bool GetRetryOnCouldNotConnect() const { return m_retryOnCouldNotConnect; };

In HttpResponse.h

Create response with ConnectionStatus If connection status is ConnectionStatus::OK the response is not valid

BEHTTP_EXPORT Response(ConnectionStatus connectionStatus);

Create valid response with ConnectionStatus::OK

BEHTTP_EXPORT Response(HttpStatus httpStatus, Utf8String effectiveUrl, HttpResponseContentPtr responseData);

Create valid response by providing response content as string values

BEHTTP_EXPORT Response(HttpStatus httpStatus, Utf8String effectiveUrl, Utf8String headers, Utf8String responseContent);

Point Clouds

In PointCloud.h

typedef bvector<IPointCloudChannelP> IPointCloudChannelVector;
typedef IPointCloudChannelVector const& IPointCloudChannelVectorCR;

In PointCloudChannel.h

enum class PointCloudChannelId

Rendering

In ToneMap.h

LXOLIB_EXPORT bool GetIgnoreBlackPixels();
LXOLIB_EXPORT void SetIgnoreBlackPixels(bool ignore);

SmartFeatures

In AssociativeElementAPI.h

SMARTFEATURE_TYPEDEFS(AssociativeSliceOnCurve)

Get transform associated with associative element. Need this method in element level so element should know its transform

bool GetPresentationTransform(TransformR transform, ElementHandleCR eh );

In SmartFeature.r.h

Settings for associative extract element Symbology

struct AssociativeExtractSymbologySettings

In SmartFeatureAPI.h

Get node id

SMARTFEATURE_EXPORT UInt32 GetNodeId() const;

Get leaf

SMARTFEATURE_EXPORT StatusInt GetLeaf(ElementHandleR eh) const;

Get parent of hidden external leaf.

SMARTFEATURE_EXPORT StatusInt GetParentOfHiddenExternalLeaf (SmartFeatureNodePtr& externalLeafParent);

Get child

SMARTFEATURE_EXPORT SmartFeatureNodePtr GetChild(size_t index);

Get child with constant pointer

SMARTFEATURE_EXPORT SmartFeatureNodeCP GetChildCP(size_t index) const;

Get child count

SMARTFEATURE_EXPORT size_t GetChildCount() const;

Get all children

SMARTFEATURE_EXPORT T_SmartFeatureVector& GetChildren();

Get all children with constant pointer

SMARTFEATURE_EXPORT T_SmartFeatureVector const& GetChildren() const;

Get all children recursively

SMARTFEATURE_EXPORT void GetAllChildrenRecursively (T_SmartFeatureVector& allChildren);

Get parent

SMARTFEATURE_EXPORT SmartFeatureNodeP GetParent();

Get parent with constant pointer

SMARTFEATURE_EXPORT SmartFeatureNodeCP GetParent() const;

Whether node can be disabled?

SMARTFEATURE_EXPORT bool CanBeDisabled() const;

Disable the smart feature node.

SMARTFEATURE_EXPORT void SetDisabled(bool disabled);

Query the disable status of smart feature node.

SMARTFEATURE_EXPORT bool GetDisabled() const;

Get lowest node id in smart feature tree

SMARTFEATURE_EXPORT UInt32 GetLowestNodeId() const;

Get highest node id in smart feature tree

SMARTFEATURE_EXPORT UInt32 GetHighestNodeId() const;

Solids

In PSolidCoreAPI.h

Modify the target solid by offsetting face through body. It will punch hole .

PSOLIDCORE_EXPORT static BentleyStatus OffsetThroughHole(ISolidKernelEntityPtr& target, ISubEntityPtr* faces, double* distances, size_t nFaces);

Modify the target solid or sheet body by offsetting selected faces.

PSOLIDCORE_EXPORT static BentleyStatus OffsetFaces(ISolidKernelEntityPtr& target, int & offsetStatus ,ISubEntityPtr* faces, double* distances, size_t nFaces, StepFacesOption addStep = ADD_STEP_NonCoincident);

Modify the target sheet body by thickening to create a solid body.

PSOLIDCORE_EXPORT static BentleyStatus ThickenSheet(int & status ,ISolidKernelEntityPtr& target, double frontDistance, double backDistance);

Tasks

In LimitingTaskQueue.h

Create queue that limits tasks.

LimitingTaskQueue(ITaskSchedulerPtr scheduler = nullptr) : m_impl(std::make_shared<Impl>(scheduler)) {};

.NET API

The following classes and methods have been added to the MicroStation CONNECT Edition Update 11 SDK.

PickList

public class Bentley.DgnPlatformNET.PickList ();

Compare if this PickList is same with input PickList.

bool JudgeSame(PickList^ pickList, bool judgeId, bool judgeDgnFile);

PickListLibrary

public class Bentley.DgnPlatformNET.PickListLibrary ();

Compare if this PickListLibrary is same with input pickListLibrary.

bool JudgeSame(PickListLibrary^ pickListLibrary, bool judgeId, bool judgeDgnFile);