+ AttributeStringPtr aFormatAttr =
+ this->string(ExchangePlugin_Import::IMPORT_TYPE_ID());
+ std::string aFormat = aFormatAttr->value();
+ AttributeStringPtr aFilePathAttr;
+ std::string aFilePath;
+ AttributeStringArrayPtr aPartsAttr;
+ AttributeIntegerPtr aTargetAttr;
+ if (aFormat == "STEP" || aFormat == "STP")
+ {
+ aFilePathAttr = string(ExchangePlugin_Import::STEP_FILE_PATH_ID());
+ aFilePath = aFilePathAttr->value();
+ // get the document where to import
+ aPartsAttr = stringArray(STEP_TARGET_PARTS_LIST_ID());
+ aTargetAttr = integer(STEP_TARGET_PART_ID());
+ }else{
+ aFilePathAttr = string(ExchangePlugin_Import::FILE_PATH_ID());
+ aFilePath = aFilePathAttr->value();
+ // get the document where to import
+ aPartsAttr = stringArray(TARGET_PARTS_LIST_ID());
+ aTargetAttr = integer(TARGET_PART_ID());
+ }
+
+ if (aFilePath.empty()) {
+ setError("File path is empty.");
+ return;
+ }
+ SessionPtr aSession = ModelAPI_Session::get();
+ DocumentPtr aDoc = findDocument(aSession->moduleDocument(),
+ Locale::Convert::toWString(aPartsAttr->value(aTargetAttr->value())));
+
+ if (aDoc.get()) {
+ FeaturePtr aImportFeature = aDoc->addFeature(ExchangePlugin_ImportFeature::ID());
+ DataPtr aData = aImportFeature->data();
+ AttributeStringPtr aPathAttr;
+ if (aFormat == "STEP" || aFormat == "STP")
+ {
+ aPathAttr = aData->string(ExchangePlugin_ImportFeature::STEP_FILE_PATH_ID());
+ }else
+ {
+ aPathAttr = aData->string(ExchangePlugin_ImportFeature::FILE_PATH_ID());
+ }
+
+ AttributeStringPtr aImportTypeAttr =
+ aData->string(ExchangePlugin_ImportFeature::IMPORT_TYPE_ID());
+
+ aData->boolean(ExchangePlugin_ImportFeature::STEP_MATERIALS_ID())
+ ->setValue(boolean(ExchangePlugin_Import::STEP_MATERIALS_ID())->value());
+ aData->boolean(ExchangePlugin_ImportFeature::STEP_COLORS_ID())
+ ->setValue(boolean(ExchangePlugin_Import::STEP_COLORS_ID())->value());
+ aData->boolean(ExchangePlugin_ImportFeature::STEP_SCALE_INTER_UNITS_ID())
+ ->setValue(boolean(ExchangePlugin_Import::STEP_SCALE_INTER_UNITS_ID())->value());
+
+ aPathAttr->setValue(aFilePathAttr->value());
+ aImportTypeAttr->setValue(aFormat);
+ aImportFeature->execute();
+ }
+}
+
+void ExchangePlugin_Import_Image::execute()
+{
+ AttributeStringPtr aFilePathAttr = string(ExchangePlugin_ImportBase::FILE_PATH_ID());