【UG\NX二次开发】判断当前是 建模和装配环境

//判断建模和装配环境
bool split_part::is_Assemblies()
{
	Session *thesession = Session::GetSession();
	BasePart *basedisplaypart = thesession->Parts()->BaseDisplay();
	Assemblies::ComponentAssembly *componentAssembly = basedisplaypart->ComponentAssembly();
	Assemblies::Component *rootcomponent = componentAssembly->RootComponent();

	if(rootcomponent == NULL)
	{
		return true;
	}
	else
	{
		return false;
	}
}


void mian()
{
	int flag2 = is_Assemblies();
	//建模环境
	if (flag2 == 1)
	{
		//过滤器实体设置
		vector<NXOpen::Selection::MaskTriple>masktriple;
		Selection::MaskTriple mask1(UF_solid_type,0,0);
		masktriple.push_back(mask1);
		selection0->GetProperties()->SetSelectionFilter("SelectionFilter",Selection::SelectionActionClearAndEnableSpecific,masktriple);
		selection0->GetProperties()->SetEnum("MaximumScope",3);
	}
	//装配环境
	if (flag2 == 0)
	{
		//过滤器组件设置
		vector<NXOpen::Selection::MaskTriple>masktriple;
		Selection::MaskTriple mask1(UF_component_type,0,0);
		masktriple.push_back(mask1);
		selection0->GetProperties()->SetSelectionFilter("SelectionFilter",Selection::SelectionActionClearAndEnableSpecific,masktriple);
		selection0->GetProperties()->SetEnum("MaximumScope",3);
	}
}