Applies the property values of a fix object to those same properties of an error object.
Supported platforms: Windows only
Namespace: AcStMgr
Assembly: AcStMgr.tlb
VB.NET:
Public Sub FixError(pError, pFix[, pFailedReason]) _ Implements IAcStPlugin2.FixError ... End Sub
C#:
public void FixError(pError, pFix[, out pFailedReason]) { ...; }
Type: AcStErrorIterator object
The object this method applies to.
Access: Input-only
Type: AcStError object
The error object that does not match the established CAD standards.
Access: Input-only
Type: AcStFix object
The fix object that will be used to correct the properties of the error object.
Access: Output-only
Type: String
The error value that represents the reason why the fix failed. The value returned should align with one of those in the AcStResultStatus enumeration.
The default return value is "0".
No return value.
No additional remarks.
Releases: AutoCAD 2004 and later
VB.NET:
Public Sub FixError(ByVal pError As AcStError, _ ByVal pFix As AcStFix, _ Optional ByRef pFailedReason As String = "0") _ Implements IAcStPlugin2.FixError ' << Change based on standards implementation >> If IsNothing(pError) = False Then Dim sFixClrVal As ACAD_COLOR Dim sFixLWVal As ACAD_COLOR ' Get the drawing object to fix Dim badObjID As Long = pError.BadObjectId Dim badObj As AcadLayer = m_pCheckDatabase.ObjectIdToObject(badObjID) ' If no fix is provided, try the recommended fix If IsNothing(pFix) Then Dim tmpFix As New AcStFix() tmpFix = GetRecommendedFix(pError) If IsNothing(tmpFix) Then ' Set the result status of the error to Failed and No Recommended Fix pError.ResultStatus = AcStResultStatus.acStResFixFailed + AcStResultStatus.acStResNoRecommendedFix Else ' Fix the bad object pFix = tmpFix tmpFix = Nothing ' Fix the color of the layer pFix.PropertyValueGet("Color", sFixClrVal) Try badObj.color = sFixClrVal pError.ResultStatus = AcStResultStatus.acStResFixed Catch m_ex As Exception pError.ResultStatus = AcStResultStatus.acStResFixFailed End Try ' Fix the Lineweight of the layer pFix.PropertyValueGet("Lineweight", sFixLWVal) Try badObj.Lineweight = sFixLWVal pError.ResultStatus = AcStResultStatus.acStResFixed Catch m_ex As Exception pError.ResultStatus = AcStResultStatus.acStResFixFailed End Try End If tmpFix = Nothing Else ' Fix the color of the layer pFix.PropertyValueGet("Color", sFixClrVal) Try badObj.color = sFixClrVal pError.ResultStatus = AcStResultStatus.acStResFixed Catch m_ex As Exception pError.ResultStatus = AcStResultStatus.acStResFixFailed End Try ' Fix the Lineweight of the layer pFix.PropertyValueGet("Lineweight", sFixLWVal) Try badObj.Lineweight = sFixLWVal pError.ResultStatus = AcStResultStatus.acStResFixed Catch m_ex As Exception pError.ResultStatus = AcStResultStatus.acStResFixFailed End Try End If End If End Sub
C#:
public void FixError(AcStError pError, AcStFix pFix, out string pFailedReason) { // << Change based on standards implementation >> if ((pError == null) == false) { object sFixClrVal = default(ACAD_COLOR); object sFixLWVal = default(ACAD_LWEIGHT); // Get the drawing object to fix long badObjID = pError.BadObjectId; AcadLayer badObj = (AcadLayer)m_pCheckDatabase.ObjectIdToObject(badObjID); // If no fix is provided, try the recommended fix if (pFix == null) { AcStFix tmpFix = new AcStFix(); tmpFix = GetRecommendedFix(pError); if (tmpFix == null) { // Set the result status of the error to Failed and No Recommended Fix pError.ResultStatus = AcStResultStatus.acStResFixFailed | AcStResultStatus.acStResNoRecommendedFix; } else { // Fix the bad object pFix = tmpFix; tmpFix = null; // Fix the color of the layer pFix.PropertyValueGet("Color", ref sFixClrVal); try { badObj.color = (AcColor)sFixClrVal; pError.ResultStatus = AcStResultStatus.acStResFixed; } catch (Exception m_ex) { pError.ResultStatus = AcStResultStatus.acStResFixFailed; } // Fix the Lineweight of the layer pFix.PropertyValueGet("Lineweight", ref sFixLWVal); try { badObj.Lineweight = (ACAD_LWEIGHT)sFixLWVal; pError.ResultStatus = AcStResultStatus.acStResFixed; } catch (Exception m_ex) { pError.ResultStatus = AcStResultStatus.acStResFixFailed; } } } else { // Fix the color of the layer pFix.PropertyValueGet("Color", ref sFixClrVal); try { badObj.color = (AcColor)sFixClrVal; pError.ResultStatus = AcStResultStatus.acStResFixed; } catch (Exception m_ex) { pError.ResultStatus = AcStResultStatus.acStResFixFailed; } // Fix the Lineweight of the layer pFix.PropertyValueGet("Lineweight", ref sFixLWVal); try { badObj.Lineweight = (ACAD_LWEIGHT)sFixLWVal; pError.ResultStatus = AcStResultStatus.acStResFixed; } catch (Exception m_ex) { pError.ResultStatus = AcStResultStatus.acStResFixFailed; } } } pFailedReason = "0"; }