#
# Copyright © 2020 MSC.Software Corporation
#  
# Permission to use Scripts
#  
# Permission is granted to MSC.Software customers with valid licenses of the MSC Apex™ software 
# to use script files posted on this page (collectively “Scripts”) solely for customers’ own authorized 
# internal use in conjunction with licensed use of the MSC Apex software.  
# No other use is permitted.  No license to MSC Apex or other software is granted under this Permission.
#  
# SCRIPTS ARE PROVIDED ON AN "AS-IS" BASIS, WITH NO WARRANTIES OF ANY KIND.  USE OF THE SCRIPTS IS AT CUSTOMER'S SOLE RISK.
#  
# IN NO EVENT SHALL MSC.SOFTWARE CORPORATION, ITS AFFILIATES, SUBSIDIARIES, SUPPLIERS, AGENTS, REPRESENTATIVES OR EMPLOYEES BE LIABLE FOR ANY 
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, TORT, 
# STRICT LIABILITY, OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION USE OF THE SCRIPTS, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  
#  
# Customer shall indemnify, defend and hold MSC.Software Corporation, its affiliates, subsidiaries, suppliers, agents, 
# employees or representatives (collectively, “Indemnified Parties”) harmless from and against any third-party claims 
# brought against Indemnified Parties rising out of or in connection with Customer’s use of the Scripts.
#
import apex
import os

def highlight_stuff(item,r,g,b):
	col1=apex.ColorRGB(r,g,b)					
	#if surf.getVisibility() == 1:		
	item.highlight(col1,2,3)

def getAllParts():
	#get and return all solids from current model
	model_1 = apex.currentModel()
	parts = model_1.getParts(True)
	return parts

def getAllSolids():
	solids = apex.entityCollection()
	parts=getAllParts()
	for part in parts:
		solids += part.getSolids()
	return solids

def getAllSurfs():
	surfs = apex.entityCollection()
	parts=getAllParts()
	for part in parts:
		surfs += part.getSurfaces()
	return surfs

def main(dictionary={}):

	stepName=dictionary["stepName"]
	eventName=dictionary["eventName"]
	#tempLoadCase=dictionary["tempLoadCase"]
	#temp=dictionary["temp"]
	#initTemp=dictionary["initTemp"]

	apex.disableShowOutput()


	study = apex.getPrimaryStudy()

	ExistFlag=False
	try:
		scenarios = study.getScenarios(True)
		scenarioNames = []
		for scenario in scenarios:
			if scenario.getName() == stepName:
				ExistFlag=True
	except:
		print("There are no scenarios in this model")


	#if tempLoadCase=="Yes":
	#	eventName=eventName + " Temp: " + str(temp)

	if ExistFlag:
		#get Scenario from Name
		scenario = study.getScenario(name = stepName)
		steps=scenario.getSteps()
		steps[0].addEvent ( name = eventName)
	else:
		study.createScenario(
		name = stepName,
		description = "",
		scenarioConfiguration = apex.studies.ScenarioConfiguration.Static,
		events=[eventName]
	)