Routing Conductors through Spaces

When your product is divided into spaces, you can route conductors avoiding the segments passing through specific spaces.

This routing technique is enabled by the Validate Segment Overloading for Input Conductor Considering Underlying Conductors (EWR_ValidateSegmentInConductorRoute) opening ID and the Segment.ListCrossedSpaces() electrical method.


Before you begin:
  • Divide your space root into space concept roots.

    For more information, see Space Allocation User's Guide: Working with Space Structures.

  • Index your content using 3DSpace Index.

    For more information, see 3DSpace Index Installation Guide.

  • In Me > Preferences > App Preferences > 3D Modeling > Electrical and Electronic Systems > Electrical 3D Design > Conductor section, select the Compute alternate path based on EWR_ValidateSegmentInConductorRoute result option.
  1. Create a conductor between two equipments.
    In our example, the highlighted conductor can be routed through the green segment or through the yellow segment, which crosses the space FZ1.

  2. Optional: Check the segments passing through a specific space using the Segment.ListCrossedSpace electrical method.
    In this example, the sample checks the segments crossing FZ1.
    let ListSpace(List)
    let segment_name(String)
    let space_name(String)
    let space_occurrence(ProductOccurrence)
    
    segment_name=my_segment.Name
    
    if (  segment_name.Search("FZ1",1,true)  >  0  )
    {
    	my_segment.ListCrossedSpaces(ListSpace)
    	for space_occurrence inside ListSpace 
    	{
    		space_name = space_occurrence.Name
    		if (  space_name.Search("FZ1",1,true)  >  0  )
    		 {
    		 Message(segment_name+" in  space "+space_occurrence.Name  )	 
    		 }
    	}
    }
  3. Assign a business rule calling Segment.ListCrossedSpace to the Validate Segment Overloading for Input Conductor Considering Underlying Conductors opening ID.
    In this example, the electrical method retrieves the spaces crossed by a specific segment while the business rule invalidates the conductor routing through this segment.
    let ListSpace(List)
    let my_segment(Segment)
    let space_occ(ProductOccurrence)
    let  IsAllowed (Boolean)
    let spaceId(String)
    
    set my_segment = ThisObject
    
    IsAllowed=true
    
    if ( NULL <> my_segment ) 
    {               
     my_segment.ListCrossedSpaces(ListSpace) 
    
     for space_occ inside ListSpace
     {
      spaceId = space_occ.Name
      if ( spaceId=="Space_FZ1" )
       {
       IsAllowed=false
       }
     }
    }
    if (  IsAllowed==false ) 
    {
     Validation = false
     Parameters.Severity = 2
     /*Parameters.Message = "Routing not allowed in space "*/      
    }
    else
    {
     Validation = true
     Parameters.Severity = 0
     /* Parameters.Message = "Routing allowed in space"*/                              
    }
  4. Route the conductor.
    The business rule computes an alternate path avoiding the segments crossing FZ1.

    As a result, the conductor is routed through the green segment.