I edit a Dimension style. Some settings for it an AutoCAD stored in XData. For example, I need to change some properties (look on the screen below):
I can do it via next code:
AcDb
.ResultBuffer rb
= new AcDb
.ResultBuffer( new AcDb
.TypedValue(1001, xName
),
new AcDb
.TypedValue(1070,
391),
new AcDb
.TypedValue(1040,
19.7 /* our value for "Dimension Break" property */),
new AcDb
.TypedValue(1001,
"ACAD_DSTYLE_DIMJAG"),
new AcDb
.TypedValue(1070,
388),
new AcDb
.TypedValue(1040,
5.56 /* our value for "Linear Jog Size" property */),
/* I don't know, what is need for next values, But AutoCAD created their, when I
* modify the "Linear Jog Size" property manually... */
new AcDb
.TypedValue(1001,
"ACAD_DSTYLE_DIMTALN"),
new AcDb
.TypedValue(1070,
392),
new AcDb
.TypedValue(1070,
0) );
dimStyle.XData = rb;
It is works fine: properties was changed.
But... Now I need some other code:
String xName = "ACAD_DSTYLE_DIMBREAK";
AcDb
.ResultBuffer rb
= new AcDb
.ResultBuffer( new AcDb
.TypedValue(1001, xName
),
new AcDb
.TypedValue(1070,
391),
new AcDb
.TypedValue(1040,
19.7 /* our value for "Dimension Break" property */)); dimStyle.XData = rb;
// my some code...
xName = "ACAD_DSTYLE_DIMJAG";
dimStyle
.XData.Add(new AcDb
.TypedValue(1001, xName
));dimStyle
.XData.Add(new AcDb
.TypedValue(1070,
388));dimStyle
.XData.Add(new AcDb
.TypedValue(1040,
5.56 /* our value for "Linear Jog Size" property */));
// my some code...
xName = "ACAD_DSTYLE_DIMTALN";
dimStyle
.XData.Add(new AcDb
.TypedValue(1001, xName
));dimStyle
.XData.Add(new AcDb
.TypedValue(1070,
392));dimStyle
.XData.Add(new AcDb
.TypedValue(1070,
0));
Both code are equals in sense, but second does works not correct: I got not full data in XData: only the three first records was added (rows number 3, 4 and 5). And I not get any errors... Why it's happens?