Not sure what I'm doing wrong, but this always generates a casting error, 'System.InvalidCastException'.
Here's my short bit of code:
public void Main()
{
ModelDoc2 swDoc = (ModelDoc2)swApp.ActiveDoc;
BlockInstance swBlkIns;
BlockDefinition swBlkDef;
SketchManager swSkMgr = swDoc.SketchManager;
object[] swBlkDefs = (object[])swSkMgr.GetSketchBlockDefinitions();
int swBlkCnt = swBlkDefs.GetLength(0);
for (int i = swBlkDefs.GetLowerBound(0); i <= swBlkDefs.GetUpperBound(0); i ++)
{
swBlkDef = (BlockDefinition)swBlkDefs[i]; // Error always happens here,
swBlkIns = (BlockInstance)swBlkDefs[i]; // or here.
}
I'm guessing I'm missing a step, I haven't found any C# examples of selecting drawing blocks, just VBA, so I'm guessing I need to something in between?
This is SolidWorks2016, SP5.
Thanks for any help.
SolidworksApi/macros