Please use the setSegmentation call, note it is now a call that is model dependent.
The circleSegments(circles, smallCircles) can be replaced with
double segmentationLength = 0.;
getSegmentation(model, nullptr, &segmentationLength);
setSegmentation(model, circles, segmentationLength);
Please use setSegmentation call
The call setMaximumSegmentationLength(model, length) can be replaced with
int_t segmentationParts = 0;
getSegmentation(model, &segmentationParts, nullptr);
setSegmentation(model, segmentationParts, length);
This function will return the conversion factor compared to the base SI unit.
The possible unitType values are all enumeration values from enumeration type IfcUnitEnum.
For example getProjectUnitConversionFactor(model, "LENGTHUNIT") returns 0.001 in case of MilliMeters.
Optional arguments unitPrefix (for example "MILLI"), unitName (if defined) and SIUnitName (for example "METRE") can be requested.
This function will return the conversion factor compared to the base SI unit.
The possible unitType values are all enumeration values from enumeration type IfcUnitEnum.
For example getProjectUnitConversionFactorW(model, L"LENGTHUNIT") returns 0.001 in case of MilliMeters.
Optional arguments unitPrefix (for example L"MILLI"), unitName (if defined) and SIUnitName (for example L"METRE") can be requested.
This function will return the conversion factor compared to the base SI unit.
The unitType is derived from the instance.
For example getUnitInstanceConversionFactor(myInstance) returns 0.001 in case of MilliMeters if the instance defines a length unit.
Optional arguments unitType (for example "LENGTHUNIT"), unitPrefix (for example "MILLI"), unitName (if defined) and SIUnitName (for example "METRE") can be requested.
This function will return the conversion factor compared to the base SI unit.
The unitType is derived from the instance.
For example getUnitInstanceConversionFactorW(myInstance) returns 0.001 in case of MilliMeters if the instance defines a length unit.
Optional arguments unitType (for example L"LENGTHUNIT"), unitPrefix (for example L"MILLI"), unitName (if defined) and SIUnitName (for example L"METRE") can be requested.
This call can be used to optimize Boundary Representation or Mesh geometries.
In many cases geometry within an IFC file is not semantically rich similar to an extruded profile or polygon,
bounded surfaces or results from boolean operations on top of basic parametric shapes. Depending on how such geometries are stored very often
only vertices and triangles or polygons based on these vertices are available. Looking at the shape however, they meant to represent often
parametric surfaces. In case normal and surface boundary information is missing in the IFC file this call allows automatic recalculation of such
information.
consistencyCheck
bit0 (1) merge elements in the vertex array are duplicated (epsilon used as distance)
bit1 (2) remove elements in the vertex array that are not referenced by elements in the index array (interpreted as SET if flags are defined)
bit2 (4) merge polygons placed in the same plane and sharing at least one edge
bit3 (8) merge polygons advanced (check of polygons have the opposite direction and are overlapping, but don't share points)
bit4 (16) check if faces are wrongly turned opposite from each other
bit5 (32) check if faces are inside-out
bit6 (64) check if faces result in solid, if not generate both sided faces
bit7 (128) invert direction of the face/normal information
bit8 (256) export all faces as one conceptual face
bit9 (512) remove irrelevant intermediate points on lines
bit10 (1024) check and repair faces that are not defined in a perfect plane
fraction
To compare adjacent faces, they will be defined as being part of the same conceptual face if the fraction
value is larger then the dot product of the normal vector's of the individual faces.
epsilon
This value is used to compare vertex elements, if vertex elements should be merged and the distance is smaller than this epsilon value
then it will be defined as equal
maxVerticesSize
if 0 this setting is applied to all BoundaryRepresentation/Mesh based geometries
if larger than 0 it is applied to BoundaryRepresentation/Mesh based geometries with vertices size smaller or equal to the given number
This call forces cleaning of memory allocated.
The following mode values are effected:
0 non-cached geometry tree structures
1 cached and non-cached geometry tree structures + resetting buffers for internally used Geometry Kernel instance
3 cached and non-cached geometry tree structures
4 clean memory allocated within a session for ADB structures and string values (including enumerations requested as wide char).
Returns the line STEP/Express ID of an instance
Returns an instance based on the model and STEP/Express ID (even when the instance itself might be non-existant).
Returns an instance based on the model and STEP/Express ID
In case an XML file is loaded the XML ID values are kept in memory and can be retrieved through this API call.
Set mode of interpretation for arguments of type char*
0 - char* (default)
1 - wchar_t*
2 - char16_t*
4 - char32_t*
Sets encoding for sdaiSTRING data type in put and get functions
if model is NULL it will set codepage for models, created after the call or for contexts when model is not known
returns 1 when successful of 0 when fails.