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";
}