Geometry Controller
-
interface ICwAPI3DGeometryController
Public Functions
-
virtual ICwAPI3DString *getLastError(int32_t *aErrorCode) = 0
Gets the last error.
- Parameters:
aErrorCode – [out] [int32_t*] error code
- Returns:
[ICwAPI3DString*] error string
-
virtual double getWidth(elementID aElementId) = 0
Gets the element width.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element width.
-
virtual double getHeight(elementID aElementId) = 0
Gets the element height.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element height.
-
virtual double getLength(elementID aElementId) = 0
Gets the element length.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element length.
-
virtual double getStartHeightCutAngle(elementID aElementId) = 0
Gets the element start height cut angle.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element start height cut angle.
-
virtual double getStartWidthCutAngle(elementID aElementId) = 0
Gets the element start width cut angle.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element start width cut angle.
-
virtual double getEndHeightCutAngle(elementID aElementId) = 0
Gets the element end height cut angle.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element end height cut angle.
-
virtual double getEndWidthCutAngle(elementID aElementId) = 0
Gets the element end width cut angle.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element end width cut angle.
-
virtual void rotateHeightAxis90(ICwAPI3DElementIDList *aElementIdList) = 0
Rotates the element height axis 90 degrees.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
-
virtual void rotateHeightAxis180(ICwAPI3DElementIDList *aElementIdList) = 0
Rotates the element height axis 180 degrees.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
-
virtual double getOverWidth(elementID aElementId) = 0
Gets the element overwidth.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] element overwidth
-
virtual void setOverWidth(ICwAPI3DElementIDList *aElementIdList, double aValue) = 0
Sets the element overwidth.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aValue – [in] [double] The element overwidth.
-
virtual double getOverHeight(elementID aElementId) = 0
Gets the element overheight.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element overheight.
-
virtual void setOverHeight(ICwAPI3DElementIDList *aElementIdList, double aValue) = 0
Sets the element overheight.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aValue – [in] [double] The element overheight.
-
virtual double getOverLength(elementID aElementId) = 0
Gets the element overlength.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element overlength.
-
virtual void setOverLength(ICwAPI3DElementIDList *aElementIdList, double aValue) = 0
Sets the element overlength.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aValue – [in] [double] The element overlength.
-
virtual double getRoundingWidth(elementID aElementId) = 0
Gets the element rounding width.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element rounding width.
-
virtual void setRoundingWidth(ICwAPI3DElementIDList *aElementIdList, double aValue) = 0
Sets the element rounding width.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aValue – [in] [double] The element rounding width.
-
virtual double getRoundingHeight(elementID aElementId) = 0
Gets the element rounding height.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element rounding height.
-
virtual void setRoundingHeight(ICwAPI3DElementIDList *aElementIdList, double aValue) = 0
Sets the element rounding height.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aValue – [in] [double] The element rounding height.
-
virtual double getRoundingLength(elementID aElementId) = 0
Gets the element rounding length.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element rounding length.
-
virtual void setRoundingLength(ICwAPI3DElementIDList *aElementIdList, double aValue) = 0
Sets the element rounding length.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aValue – [in] [double] The element rounding length.
-
virtual double getCrossCorrectionNegativeWidth(elementID aElementId) = 0
Gets the element negative width cross correction.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element negative width cross correction.
-
virtual void setCrossCorrectionNegativeWidth(ICwAPI3DElementIDList *aElementIdList, double aValue) = 0
Sets the element negative width cross correction.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aValue – [in] [double] The element negative width cross correction.
-
virtual double getCrossCorrectionPositiveWidth(elementID aElementId) = 0
Gets the element positive width cross correction.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element positive width cross correction.
-
virtual void setCrossCorrectionPositiveWidth(ICwAPI3DElementIDList *aElementIdList, double aValue) = 0
Sets the element positive width cross correction.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aValue – [in] [double] The element positive width cross correction.
-
virtual double getCrossCorrectionNegativeHeight(elementID aElementId) = 0
Gets the element negative height cross correction.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element negative height cross correction.
-
virtual void setCrossCorrectionNegativeHeight(ICwAPI3DElementIDList *aElementIdList, double aValue) = 0
Sets the element negative height cross correction.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aValue – [in] [double] The element negative height cross correction.
-
virtual double getCrossCorrectionPositiveHeight(elementID aElementId) = 0
Gets the element positive height cross correction.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element positive height cross correction.
-
virtual void setCrossCorrectionPositiveHeight(ICwAPI3DElementIDList *aElementIdList, double aValue) = 0
Sets the element positive height cross correction.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aValue – [in] [double] The element positive height cross correction.
-
virtual double getCrossCorrectionNegativeLength(elementID aElementId) = 0
Gets the element negative length cross correction.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element negative length cross correction.
-
virtual void setCrossCorrectionNegativeLength(ICwAPI3DElementIDList *aElementIdList, double aValue) = 0
Sets the element negative length cross correction.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aValue – [in] [double] The element negative length cross correction.
-
virtual double getCrossCorrectionPositiveLength(elementID aElementId) = 0
Gets the element positive length cross correction.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element positive length cross correction.
-
virtual void setCrossCorrectionPositiveLength(ICwAPI3DElementIDList *aElementIdList, double aValue) = 0
Sets the element positive length cross correction.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aValue – [in] [double] The element positive length cross correction.
-
virtual double getWeight(elementID aElementId) = 0
Gets the element real weight.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] element real weight
-
virtual double getListWeight(elementID aElementId) = 0
Gets the element list weight.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element list weight.
-
virtual double getVolume(elementID aElementId) = 0
Gets the element rough volume (does not include negative geometry operations, such as end-types, drillings, connectors, openings, and MEP elements).
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element rough volume.
-
virtual double getListVolume(elementID aElementId) = 0
Gets the element list volume.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element list volume.
-
virtual vector3D getXL(elementID aElementId) = 0
Gets the element length axis direction (direction from P1 to P2).
-
virtual vector3D getYL(elementID aElementId) = 0
Gets the element width axis direction (ZL cross XL).
-
virtual vector3D getZL(elementID aElementId) = 0
Gets the element height/thickness axis direction (direction from P1 to P3).
-
virtual referenceSide getReferenceSide(elementID aElementId) = 0
Gets the element reference side.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[referenceSide] The element reference side.
-
virtual ICwAPI3DVertexList *getElementVertices(elementID aElementId) = 0
Gets the element vertices.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[ICwAPI3DVertexList*] The element vertice list.
-
virtual void applyGlobalScale(ICwAPI3DElementIDList *aElementIdList, double aScale, vector3D aOrigin) = 0
Applies a global scale to element.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aScale – [in] [double] The global scale.
aOrigin – [in] [vector3D] The scalling origin.
-
virtual void autoRegenerateAxes(ICwAPI3DElementIDList *aElementIdList) = 0
Automatically regenerates axes on element.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
-
virtual void rotateLengthAxis90(ICwAPI3DElementIDList *aElementIdList) = 0
Rotates element length axis 90 degrees.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
-
virtual void rotateLengthAxis180(ICwAPI3DElementIDList *aElementIdList) = 0
Rotates element length axis 180 degrees.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
-
virtual void invertModel(ICwAPI3DElementIDList *aElementIdList) = 0
Inverts element model.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
-
virtual ICwAPI3DFacetList *getElementFacets(elementID aElementId) = 0
Gets the element facet list.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[ICwAPI3DFacetList*] The element facet list.
-
virtual double getListWidth(elementID aElementId) = 0
Get the element list width.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element list width.
-
virtual double getListHeight(elementID aElementId) = 0
Gets the element list height.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element list height.
-
virtual double getListLength(elementID aElementId) = 0
Gets the element list length.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element list length.
-
virtual void setWidthReal(ICwAPI3DElementIDList *aElementIdList, double aWidth) = 0
Sets the element real width.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aWidth – [in] [double] The element real width.
-
virtual void setHeightReal(ICwAPI3DElementIDList *aElementIdList, double aHeight) = 0
Sets the element real height.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aHeight – [in] [double] The element real height.
-
virtual void setLengthReal(ICwAPI3DElementIDList *aElementIdList, double aLength) = 0
Gets the element real length.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aLength – [in] [double] The element real length.
-
virtual void rotateHeightAxis2Points(ICwAPI3DElementIDList *aElementIdList, vector3D aPoint1, vector3D aPoint2) = 0
Rotates the element height axis via 2 points.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aPoint1 – [in] [vector3D] The first point.
aPoint2 – [in] [vector3D] The second point.
-
virtual double getMinimumDistanceBetweenElements(elementID aFirstElementId, elementID aSecondElementId) = 0
Gets the minimum distance between 2 elements.
-
virtual double getTotalAreaOfAllFaces(elementID aElementId) = 0
Gets the total area of all faces for element.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element total faces area.
-
virtual double getAreaOfFrontFace(elementID aElementId) = 0
Gets the front face are for element.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The element front face area.
-
virtual double getDoorSurface(ICwAPI3DElementIDList *aElementIdList) = 0
Gets the element door surface.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
- Returns:
[double] The element door surface.
-
virtual double getWindowSurface(ICwAPI3DElementIDList *aElementIdList) = 0
Gets the element window surface.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
- Returns:
[double] The element window surface.
-
virtual void createDivisionZone(elementID aElementId, vector3D aPoint, divisionZoneDirection aDirection) = 0
Creates a division zone.
- Parameters:
aElementId – [in] [elementID] The element Id.
aPoint – [in] [vector3D] The division zone point.
aDirection – [in] [divisionZoneDirection] The division zone direction.
-
virtual void deleteDivisionZone(elementID aElementId) = 0
Deletes a division zone.
- Parameters:
aElementId – [in] [elementID] The element Id.
-
virtual ICwAPI3DVertexList *getDivisionZonePoints(elementID aElementId) = 0
Gets the division zone points.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[ICwAPI3DVertexList*] The division zone points.
-
virtual vector3D getLocalX() = 0
Gets the rotated global coordinate direction (X’).
- Returns:
[vector3D] The local X vector.
-
virtual vector3D getLocalZ() = 0
Gets the rotated global coordinate direction (Z’).
- Returns:
[vector3D] The local Y vector.
-
virtual vector3D getLocalY() = 0
Gets the rotated global coordinate direction (Y’).
- Returns:
[vector3D] The local Z vector.
-
virtual void clearErrors() = 0
Clears all errors.
-
virtual void setDrillingTolerance(ICwAPI3DElementIDList *aElementIdList, double aTolerance) = 0
Gets the division zone points.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aTolerance – [in] [double] The new drilling tolerance.
-
virtual double getDrillingTolerance(elementID aElementId) = 0
Gets the drilling tolerance of an axis.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The drilling tolerance.
-
virtual ICwAPI3DVertexList *getElementReferenceFaceVertices(elementID aElementId) = 0
Gets the vertices of the reference side.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[ICwAPI3DVertexList*] The vertexlist of all points.
-
virtual double getElementReferenceFaceArea(elementID aElementId) = 0
Gets the area of the reference side.
- Parameters:
aElementId – [in] [elementID] The element Id.
- Returns:
[double] The area(size) of reference face.
-
virtual void autoRegenerateAxesSilently(ICwAPI3DElementIDList *aElementIdList) = 0
Automatically regenerates axes on elements without any user interaction.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] List The list of element IDs for which the axes will be regenerated.
-
virtual void rotateLengthAxis2Points(ICwAPI3DElementIDList *aElementIdList, vector3D aPoint1, vector3D aPoint2) = 0
Rotates the element length axis via 2 points.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aPoint1 – [in] [vector3D] The first point.
aPoint2 – [in] [vector3D] The second point.
-
virtual vector3D getCenterOfGravityForList(ICwAPI3DElementIDList *aElementIdList) = 0
Gets the center of gravity for a list of elements.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] List The list of element IDs.
- Returns:
-
virtual vector3D getCenterOfGravityForListConsideringMaterials(ICwAPI3DElementIDList *aElementIdList) = 0
Gets the center of gravity for a list of elements, considering their materials.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] List The list of element IDs.
- Returns:
-
virtual uint32_t getElementFacetCount(elementID aElementId) = 0
Gets the count of facets for a specific element.
- Parameters:
aElementId – [in] [elementID] The ID of the element.
- Returns:
[uint32_t] The count of facets.
-
virtual double getWeightReal(elementID aElementId) = 0
Gets the real weight of the element.
- Parameters:
aElementId – [in] [elementID] The ID of the element.
- Returns:
[double] The real weight of the element.
-
virtual double getActualPhysicalVolume(elementID aElementId) = 0
Gets actual physical volume (includes negative geometry operations, such as end-types, drillings, connectors, openings, and MEP elements) (it might also take into account different drilling bodies and counterbores in a connector).
- Parameters:
aElementId – [in] [elementID] The element id.
- Returns:
[double] The actual physical volume.
-
virtual bool areFacetsCoplanar(ICwAPI3DVertexList *aFirstFacet, ICwAPI3DVertexList *aSecondFacet) = 0
Tests if facets are coplanar.
- Parameters:
aFirstFacet – [in] [ICwAPI3DVertexList*] The first facet.
aSecondFacet – [in] [ICwAPI3DVertexList*] The second facet.
- Returns:
[bool] True if facets are coplanar, false otherwise.
-
virtual bool getRoundMachineRoughPartNegativeWidth(elementID aElementId) = 0
Gets the value of option RoundMachineRoughPartNegativeWidth.
- Parameters:
aElementId – [in] [elementID] The element id.
- Returns:
[bool] The option RoundMachineRoughPartNegativeWidth value.
-
virtual void setRoundMachineRoughPartNegativeWidth(ICwAPI3DElementIDList *aElementIdList, bool aValue) = 0
Sets the value of option RoundMachineRoughPartNegativeWidth.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aValue – [in] [bool] The new option RoundMachineRoughPartNegativeWidth value.
-
virtual bool getRoundMachineRoughPartPositiveWidth(elementID aElementId) = 0
Gets the value of option RoundMachineRoughPartPositiveWidth.
- Parameters:
aElementId – [in] [elementID] The element id.
- Returns:
[bool] The option RoundMachineRoughPartPositiveWidth value.
-
virtual void setRoundMachineRoughPartPositiveWidth(ICwAPI3DElementIDList *aElementIdList, bool aValue) = 0
Sets the value of option RoundMachineRoughPartPositiveWidth.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aValue – [in] [bool] The new option RoundMachineRoughPartPositiveWidth value.
-
virtual bool getRoundMachineRoughPartNegativeHeight(elementID aElementId) = 0
Gets the value of option RoundMachineRoughPartNegativeHeight.
- Parameters:
aElementId – [in] [elementID] The element id.
- Returns:
[bool] The option RoundMachineRoughPartNegativeHeight value.
-
virtual void setRoundMachineRoughPartNegativeHeight(ICwAPI3DElementIDList *aElementIdList, bool aValue) = 0
Sets the value of option RoundMachineRoughPartNegativeHeight.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aValue – [in] [bool] The new option RoundMachineRoughPartNegativeHeight value.
-
virtual bool getRoundMachineRoughPartPositiveHeight(elementID aElementId) = 0
Gets the value of option RoundMachineRoughPartPositiveHeight.
- Parameters:
aElementId – [in] [elementID] The element id.
- Returns:
[bool] The option RoundMachineRoughPartPositiveHeight value.
-
virtual void setRoundMachineRoughPartPositiveHeight(ICwAPI3DElementIDList *aElementIdList, bool aValue) = 0
Sets the value of option RoundMachineRoughPartPositiveHeight.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aValue – [in] [bool] The new option RoundMachineRoughPartPositiveHeight options.
-
virtual bool getRoundMachineRoughPartNegativeLength(elementID aElementId) = 0
Gets the value of option RoundMachineRoughPartNegativeLength.
- Parameters:
aElementId – [in] [elementID] The element id.
- Returns:
[bool] The option RoundMachineRoughPartNegativeLength value.
-
virtual void setRoundMachineRoughPartNegativeLength(ICwAPI3DElementIDList *aElementIdList, bool aValue) = 0
Sets the value of option RoundMachineRoughPartNegativeLength.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aValue – [in] [bool] The new option RoundMachineRoughPartNegativeLength value.
-
virtual bool getRoundMachineRoughPartPositiveLength(elementID aElementId) = 0
Gets the value of option RoundMachineRoughPartPositiveLength.
- Parameters:
aElementId – [in] [elementID] The element id.
- Returns:
[bool] The option RoundMachineRoughPartPositiveLength value.
-
virtual void setRoundMachineRoughPartPositiveLength(ICwAPI3DElementIDList *aElementIdList, bool aValue) = 0
Sets the value of option RoundMachineRoughPartPositiveLength.
- Parameters:
aElementIdList – [in] [ICwAPI3DElementIDList*] The element id list.
aValue – [in] [bool] The new option RoundMachineRoughPartPositiveLength value.
-
virtual double getStandardElementWidthFromGuid(const character *aStandardElementGuid) = 0
Get the standard element width.
- Parameters:
aStandardElementGuid – [in] [const character*] The standard element guid.
- Returns:
[double] The standard element width.
-
virtual double getStandardElementHeightFromGuid(const character *aStandardElementGuid) = 0
Get the standard element height.
- Parameters:
aStandardElementGuid – [in] [const character*] The standard element guid.
- Returns:
[double] The standard element height.
-
virtual double getStandardElementLengthFromGuid(const character *aStandardElementGuid) = 0
Get the standard element length.
- Parameters:
aStandardElementGuid – [in] [const character*] The standard element guid.
- Returns:
[double] The standard element length.
-
virtual double getStandardElementWidthFromName(const character *aStandardElementName) = 0
Get the standard element width.
- Parameters:
aStandardElementName – [in] [const character*] The standard element name.
- Returns:
[double] The standard element width.
-
virtual double getStandardElementHeightFromName(const character *aStandardElementName) = 0
Get the standard element height.
- Parameters:
aStandardElementName – [in] [const character*] The standard element name.
- Returns:
[double] The standard element height.
-
virtual ICwAPI3DString *getLastError(int32_t *aErrorCode) = 0