Code:
Inventor.Assets oAssets = oPartDef.Document.Assets;
...
Inventor.Faces oFaces;
oFaces = oSrfBody.Faces; for (int i = 1; i <= oFaces.Count; i++)
{
Inventor.Face oFace = oFaces[i];
try
{
Inventor.Asset oAsset = DarstellungAbrufen(oAssets, darstellung); // darstellung ist string "Rot"
oFace.AppearanceSourceType = Inventor.AppearanceSourceTypeEnum.kOverrideAppearance;
oFace.Appearance = oAsset;
}
catch { }
}
...
Inventor.Asset DarstellungAbrufen(Inventor.Assets oDocumentAssets, string name)
{
Inventor.Asset oAppearanceAssetNeu = null;
try
{
oAppearanceAssetNeu = oDocumentAssets[name];
}
catch
{
try
{
Inventor.AssetLibrary oAssetLib;
oAssetLib = oApp.AssetLibraries["Inventor-Materialbibliothek"];
oAppearanceAssetNeu = oAssetLib.AppearanceAssets[name]; // findet gültiges Asset!
}
catch
{
// nix gefunden: Schwarz machen
//
oAppearanceAssetNeu = oDocumentAssets.Add(
Inventor.AssetTypeEnum.kAssetTypeAppearance,
"Kanten", name, name);
Inventor.Color oColor;
oColor = oApp.TransientObjects.CreateColor(0, 0, 0);
Inventor.ColorAssetValue oColorAssetValue;
oColorAssetValue = (Inventor.ColorAssetValue)oAppearanceAssetNeu["generic_diffuse"];
oColorAssetValue.Value = oColor;
}
}
return oAppearanceAssetNeu;
}