Exemple #1
0
        private void FixColorForEachComponent(ModelDoc2 model, Component2 component, string file,
                                              LinkedList<ModelDoc2> models)
        {
            try
            {
                var swConfig = model.IGetActiveConfiguration();
                object displayStateNames = swConfig.GetDisplayStates();
                var dispNames = (string[])displayStateNames;

                var mod = component.IGetModelDoc();
                if (mod != null && mod.GetType() == (int)swDocumentTypes_e.swDocASSEMBLY && models.Contains(mod))
                {
                    if (component.SetTextureByDisplayState(dispNames[0], mod.Extension.CreateTexture(file, 1, 0, false)))
                        component.RemoveTextureByDisplayState(dispNames[0]);

                    var assembly = (AssemblyDoc)mod;
                    var oComps = assembly.GetComponents(true);
                    foreach (var oComp in oComps)
                    {
                        var comp = (Component2)oComp;
                        FixColorForEachComponent(mod, comp, file, models);
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }