Всем привет.
На чертеже есть несколько блоков, которые содержат Solid3d, пытаюсь получить его вершины, но получаю их в ECS.
if (id.ObjectClass == RXClass.GetClass(typeof(BlockReference)))
{
BlockReference blockReference = transaction.GetObject(id, OpenMode.ForRead) as BlockReference;
BlockTableRecord blockReferenceRecord = (BlockTableRecord)transaction.GetObject(blockReference.BlockTableRecord, OpenMode.ForRead);
Matrix3d matrix = blockReference.BlockTransform;
foreach (ObjectId blockReferenceId in blockReferenceRecord)
{
if (blockReferenceId.ObjectClass == RXClass.GetClass(typeof(Solid3d)))
{
Solid3d solid3D = transaction.GetObject(blockReferenceId, OpenMode.ForWrite) as Solid3d;
solid3D.TransformBy(matrix);
solids.Add(solid3D);
}
}
}
Но в итоге Solid'ы, которые лежат в одинаковых описаниях блоков, содержат одинаковые координаты, хотя сами блоки имеют разные координаты.
Как это поправить?