mikazakov,
Благодарю за ответ, я правильно понимаю, что имеется ввиду derived assembly object?
Все получилось! Спасибо большое. Нужно было посчитать внешнюю площадь детали, поэтому делал через внешний контур.
Если кому будет нужно, код на C#:
Inventor.Application App = (Inventor.Application)Marshal.GetActiveObject("Inventor.Application");
var Doc = App.ActiveDocument;
//Создаем новый файл
var NewDoc = (PartDocument)App.Documents.Add(
DocumentTypeEnum.kPartDocumentObject,
TemplateFileName: "", // имя шаблона
CreateVisible: false); // отображаение создания
//Получаем объект настроек внешнего контура.
var DerivedAssemblyDef = NewDoc
.ComponentDefinition
.ReferenceComponents
.DerivedAssemblyComponents
.CreateDefinition(Doc.FullDocumentName);
//Задаем стиль.
DerivedAssemblyDef.DeriveStyle = DerivedComponentStyleEnum.kDeriveAsSingleBodyNoSeams;
//Заполняем параметры:
//"Включить остальные объекты"
DerivedAssemblyDef.IncludeAllTopLevelWorkFeatures = DerivedComponentOptionEnum.kDerivedExcludeAll;
DerivedAssemblyDef.IncludeAllTopLevelSketches = DerivedComponentOptionEnum.kDerivedExcludeAll;
DerivedAssemblyDef.IncludeAllTopLeveliMateDefinitions = DerivedComponentOptionEnum.kDerivedExcludeAll;
DerivedAssemblyDef.IncludeAllTopLevelParameters = DerivedComponentOptionEnum.kDerivedExcludeAll;
DerivedAssemblyDef.ReducedMemoryMode = true;
//"Заливка отверстий"
DerivedAssemblyDef.SetHolePatchingOptions(DerivedHolePatchEnum.kDerivedPatchAll);
//"Удалить элементы геометрии с учетом видимости"
DerivedAssemblyDef.SetRemoveByVisibilityOptions(DerivedGeometryRemovalEnum.kDerivedRemovePartsOnly);
//Создаем внешний контур.
NewDoc.ComponentDefinition
.ReferenceComponents
.DerivedAssemblyComponents
.Add(DerivedAssemblyDef);
//Получаем площадь внешнего контура.
double area = NewDoc.ComponentDefinition
.MassProperties
.Area;
NewDoc.ReleaseReference();