2021-10-04 13:14:38 +11:00
@geometry
Feature : Geometry
Scenario : Edit object placement
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
And t h e o b j e c t " I f c W a l l / C u b e " i s s e l e c t e d
When I p r e s s " b i m . e d i t _ o b j e c t _ p l a c e m e n t "
Then n o t h i n g h a p p e n s
2021-10-15 13:21:31 +11:00
2021-10-18 19:23:40 +11:00
Scenario : Add representation
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
And t h e o b j e c t " I f c W a l l / C u b e " i s s e l e c t e d
2021-11-06 20:56:53 +11:00
Then t h e o b j e c t " I f c W a l l / C u b e " d a t a i s a " T e s s e l l a t i o n " r e p r e s e n t a t i o n o f " M o d e l / B o d y / M O D E L _ V I E W "
2023-02-04 14:09:35 +11:00
When t h e v a r i a b l e " c o n t e x t " i s " [ c f o r c i n { i f c } . b y _ t y p e ( ' I f c G e o m e t r i c R e p r e s e n t a t i o n S u b C o n t e x t ' ) i f c . C o n t e x t T y p e = = ' P l a n ' a n d c . C o n t e x t I d e n t i f i e r = = ' B o d y ' a n d c . T a r g e t V i e w = = ' P L A N _ V I E W ' ] [ 0 ] . i d ( ) "
2021-12-10 13:31:23 +11:00
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . c o n t e x t s " t o " { c o n t e x t } "
2021-10-18 19:23:40 +11:00
And I p r e s s " b i m . a d d _ r e p r e s e n t a t i o n "
2023-02-04 14:09:35 +11:00
Then t h e o b j e c t " I f c W a l l / C u b e " d a t a i s a " A n n o t a t i o n 2 D " r e p r e s e n t a t i o n o f " P l a n / B o d y / P L A N _ V I E W "
2021-11-06 18:51:00 +11:00
Scenario : Add representation - add a new representation to a typed instance
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ p r o d u c t " t o " I f c E l e m e n t T y p e "
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l T y p e "
And I p r e s s " b i m . a s s i g n _ c l a s s "
2022-07-27 08:24:50 +02:00
And I p r e s s " b i m . a d d _ c o n s t r _ t y p e _ i n s t a n c e "
And I p r e s s " b i m . a d d _ c o n s t r _ t y p e _ i n s t a n c e "
2022-01-30 14:46:05 +11:00
Then t h e o b j e c t " I f c W a l l / W a l l " d a t a i s a " T e s s e l l a t i o n " r e p r e s e n t a t i o n o f " M o d e l / B o d y / M O D E L _ V I E W "
And t h e o b j e c t " I f c W a l l / W a l l . 0 0 1 " d a t a i s a " T e s s e l l a t i o n " r e p r e s e n t a t i o n o f " M o d e l / B o d y / M O D E L _ V I E W "
When t h e o b j e c t " I f c W a l l / W a l l " i s s e l e c t e d
2023-02-04 14:09:35 +11:00
And t h e v a r i a b l e " c o n t e x t " i s " [ c f o r c i n { i f c } . b y _ t y p e ( ' I f c G e o m e t r i c R e p r e s e n t a t i o n S u b C o n t e x t ' ) i f c . C o n t e x t T y p e = = ' P l a n ' a n d c . C o n t e x t I d e n t i f i e r = = ' B o d y ' a n d c . T a r g e t V i e w = = ' P L A N _ V I E W ' ] [ 0 ] . i d ( ) "
2021-12-10 13:31:23 +11:00
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . c o n t e x t s " t o " { c o n t e x t } "
2021-11-06 18:51:00 +11:00
And I p r e s s " b i m . a d d _ r e p r e s e n t a t i o n "
2023-02-04 14:09:35 +11:00
Then t h e o b j e c t " I f c W a l l / W a l l " d a t a i s a " A n n o t a t i o n 2 D " r e p r e s e n t a t i o n o f " P l a n / B o d y / P L A N _ V I E W "
And t h e o b j e c t " I f c W a l l / W a l l . 0 0 1 " d a t a i s a " A n n o t a t i o n 2 D " r e p r e s e n t a t i o n o f " P l a n / B o d y / P L A N _ V I E W "
2021-10-18 19:23:40 +11:00
2021-11-08 20:57:57 +11:00
Scenario : Add representation - add a representation with a scale factor applied
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
When t h e o b j e c t " C u b e " i s s c a l e d t o " 2 "
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
Then t h e o b j e c t " I f c W a l l / C u b e " h a s n o s c a l e
And t h e o b j e c t " I f c W a l l / C u b e " d i m e n s i o n s a r e " 4 , 4 , 4 "
Scenario : Add representation - add a representation with a scale factor removed due to multiple users
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And I p r e s s " o b j e c t . d u p l i c a t e _ m o v e _ l i n k e d "
And t h e o b j e c t " C u b e " i s s e l e c t e d
When t h e o b j e c t " C u b e " i s s c a l e d t o " 2 "
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
Then t h e o b j e c t " I f c W a l l / C u b e " h a s n o s c a l e
And t h e o b j e c t " I f c W a l l / C u b e " d i m e n s i o n s a r e " 2 , 2 , 2 "
2021-10-19 12:57:21 +11:00
Scenario : Switch representation
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
When t h e v a r i a b l e " r e p r e s e n t a t i o n " i s " { i f c } . b y _ t y p e ( ' I f c S h a p e R e p r e s e n t a t i o n ' ) [ 0 ] . i d ( ) "
And I p r e s s " b i m . s w i t c h _ r e p r e s e n t a t i o n ( o b j = ' I f c W a l l / C u b e ' , i f c _ d e f i n i t i o n _ i d = { r e p r e s e n t a t i o n } ) "
Then n o t h i n g h a p p e n s
2021-11-09 20:49:25 +11:00
Scenario : Switch representation - current edited representation is updated prior to switch
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
2023-02-04 14:09:35 +11:00
And t h e v a r i a b l e " c o n t e x t " i s " [ c f o r c i n { i f c } . b y _ t y p e ( ' I f c G e o m e t r i c R e p r e s e n t a t i o n S u b C o n t e x t ' ) i f c . C o n t e x t T y p e = = ' P l a n ' a n d c . C o n t e x t I d e n t i f i e r = = ' A n n o t a t i o n ' ] [ 0 ] . i d ( ) "
2021-12-10 13:31:23 +11:00
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . c o n t e x t s " t o " { c o n t e x t } "
2021-11-09 20:49:25 +11:00
And I p r e s s " b i m . a d d _ r e p r e s e n t a t i o n "
When t h e o b j e c t " I f c W a l l / C u b e " i s s c a l e d t o " 2 "
2022-01-30 14:46:05 +11:00
And t h e v a r i a b l e " r e p r e s e n t a t i o n " i s " [ r f o r r i n { i f c } . b y _ t y p e ( ' I f c S h a p e R e p r e s e n t a t i o n ' ) i f r . R e p r e s e n t a t i o n T y p e = = ' T e s s e l l a t i o n ' ] [ 0 ] . i d ( ) "
And I p r e s s " b i m . s w i t c h _ r e p r e s e n t a t i o n ( i f c _ d e f i n i t i o n _ i d = { r e p r e s e n t a t i o n } , s h o u l d _ r e l o a d = T r u e ) "
And t h e v a r i a b l e " r e p r e s e n t a t i o n " i s " [ r f o r r i n { i f c } . b y _ t y p e ( ' I f c S h a p e R e p r e s e n t a t i o n ' ) i f r . R e p r e s e n t a t i o n T y p e = = ' A n n o t a t i o n 2 D ' ] [ 0 ] . i d ( ) "
And I p r e s s " b i m . s w i t c h _ r e p r e s e n t a t i o n ( i f c _ d e f i n i t i o n _ i d = { r e p r e s e n t a t i o n } , s h o u l d _ r e l o a d = T r u e ) "
2021-11-09 20:49:25 +11:00
When I p r e s s " e x p o r t _ i f c . b i m ( f i l e p a t h = ' { c w d } / t e s t / f i l e s / e x p o r t . i f c ' ) "
Then t h e o b j e c t " I f c W a l l / C u b e " d i m e n s i o n s a r e " 4 , 4 , 0 "
Scenario : Switch representation - current edited representation is discarded if switching to a box
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
When t h e o b j e c t " I f c W a l l / C u b e " i s s c a l e d t o " 2 "
And t h e v a r i a b l e " r e p r e s e n t a t i o n " i s " { i f c } . b y _ t y p e ( ' I f c S h a p e R e p r e s e n t a t i o n ' ) [ - 1 ] . i d ( ) "
And I p r e s s " b i m . s w i t c h _ r e p r e s e n t a t i o n ( o b j = ' I f c W a l l / C u b e ' , i f c _ d e f i n i t i o n _ i d = { r e p r e s e n t a t i o n } , s h o u l d _ r e l o a d = T r u e ) "
And t h e v a r i a b l e " r e p r e s e n t a t i o n " i s " { i f c } . b y _ t y p e ( ' I f c S h a p e R e p r e s e n t a t i o n ' ) [ 0 ] . i d ( ) "
And I p r e s s " b i m . s w i t c h _ r e p r e s e n t a t i o n ( o b j = ' I f c W a l l / C u b e ' , i f c _ d e f i n i t i o n _ i d = { r e p r e s e n t a t i o n } , s h o u l d _ r e l o a d = T r u e ) "
When I p r e s s " e x p o r t _ i f c . b i m ( f i l e p a t h = ' { c w d } / t e s t / f i l e s / e x p o r t . i f c ' ) "
Then t h e o b j e c t " I f c W a l l / C u b e " d i m e n s i o n s a r e " 2 , 2 , 2 "
2021-10-22 16:23:36 +11:00
Scenario : Switch representation - existing Blender modifiers must be purged
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I a d d a n a r r a y m o d i f i e r
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
When t h e v a r i a b l e " r e p r e s e n t a t i o n " i s " { i f c } . b y _ t y p e ( ' I f c S h a p e R e p r e s e n t a t i o n ' ) [ 0 ] . i d ( ) "
And I p r e s s " b i m . s w i t c h _ r e p r e s e n t a t i o n ( o b j = ' I f c W a l l / C u b e ' , i f c _ d e f i n i t i o n _ i d = { r e p r e s e n t a t i o n } ) "
Then t h e o b j e c t " I f c W a l l / C u b e " h a s n o m o d i f i e r s
2021-11-08 21:04:48 +11:00
Scenario : Remove representation - remove an active representation
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I a d d a n a r r a y m o d i f i e r
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
When t h e v a r i a b l e " r e p r e s e n t a t i o n " i s " { i f c } . b y _ t y p e ( ' I f c S h a p e R e p r e s e n t a t i o n ' ) [ 0 ] . i d ( ) "
And I p r e s s " b i m . r e m o v e _ r e p r e s e n t a t i o n ( r e p r e s e n t a t i o n _ i d = { r e p r e s e n t a t i o n } ) "
Then t h e o b j e c t " I f c W a l l / C u b e " h a s n o d a t a
Scenario : Remove representation - remove an unloaded representation
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I a d d a n a r r a y m o d i f i e r
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
When t h e v a r i a b l e " r e p r e s e n t a t i o n " i s " { i f c } . b y _ t y p e ( ' I f c S h a p e R e p r e s e n t a t i o n ' ) [ 1 ] . i d ( ) "
And I p r e s s " b i m . r e m o v e _ r e p r e s e n t a t i o n ( r e p r e s e n t a t i o n _ i d = { r e p r e s e n t a t i o n } ) "
Then t h e o b j e c t " I f c W a l l / C u b e " h a s d a t a w h i c h i s a n I F C r e p r e s e n t a t i o n
Scenario : Remove representation - remove an instanced representation from an active type object
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ p r o d u c t " t o " I f c E l e m e n t T y p e "
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l T y p e "
And I p r e s s " b i m . a s s i g n _ c l a s s "
2022-07-27 08:11:52 +02:00
And I s e t " s c e n e . B I M M o d e l P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l T y p e "
2021-11-08 21:04:48 +11:00
And t h e v a r i a b l e " c u b e " i s " { i f c } . b y _ t y p e ( ' I f c W a l l T y p e ' ) [ 0 ] . i d ( ) "
2022-07-27 08:18:34 +02:00
And I s e t " s c e n e . B I M M o d e l P r o p e r t i e s . r e l a t i n g _ t y p e _ i d " t o " { c u b e } "
2022-07-27 08:24:50 +02:00
And I p r e s s " b i m . a d d _ c o n s t r _ t y p e _ i n s t a n c e "
And I p r e s s " b i m . a d d _ c o n s t r _ t y p e _ i n s t a n c e "
2021-11-08 21:04:48 +11:00
And t h e o b j e c t " I f c W a l l T y p e / C u b e " i s s e l e c t e d
When t h e v a r i a b l e " r e p r e s e n t a t i o n " i s " { i f c } . b y _ t y p e ( ' I f c W a l l T y p e ' ) [ 0 ] . R e p r e s e n t a t i o n M a p s [ 1 ] . M a p p e d R e p r e s e n t a t i o n . i d ( ) "
And I p r e s s " b i m . r e m o v e _ r e p r e s e n t a t i o n ( r e p r e s e n t a t i o n _ i d = { r e p r e s e n t a t i o n } ) "
Then t h e o b j e c t " I f c W a l l T y p e / C u b e " h a s n o d a t a
2022-01-30 14:46:05 +11:00
Then t h e o b j e c t " I f c W a l l / W a l l " h a s n o d a t a
Then t h e o b j e c t " I f c W a l l / W a l l . 0 0 1 " h a s n o d a t a
2021-11-08 21:04:48 +11:00
Scenario : Remove representation - remove an instanced representation from an active instance object
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ p r o d u c t " t o " I f c E l e m e n t T y p e "
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l T y p e "
And I p r e s s " b i m . a s s i g n _ c l a s s "
2022-07-27 08:11:52 +02:00
And I s e t " s c e n e . B I M M o d e l P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l T y p e "
2021-11-08 21:04:48 +11:00
And t h e v a r i a b l e " c u b e " i s " { i f c } . b y _ t y p e ( ' I f c W a l l T y p e ' ) [ 0 ] . i d ( ) "
2022-07-27 08:18:34 +02:00
And I s e t " s c e n e . B I M M o d e l P r o p e r t i e s . r e l a t i n g _ t y p e _ i d " t o " { c u b e } "
2022-07-27 08:24:50 +02:00
And I p r e s s " b i m . a d d _ c o n s t r _ t y p e _ i n s t a n c e "
And I p r e s s " b i m . a d d _ c o n s t r _ t y p e _ i n s t a n c e "
2022-01-30 14:46:05 +11:00
And t h e o b j e c t " I f c W a l l / W a l l " i s s e l e c t e d
2021-11-08 21:04:48 +11:00
When t h e v a r i a b l e " r e p r e s e n t a t i o n " i s " { i f c } . b y _ t y p e ( ' I f c W a l l ' ) [ 0 ] . R e p r e s e n t a t i o n . R e p r e s e n t a t i o n s [ 1 ] . i d ( ) "
And I p r e s s " b i m . r e m o v e _ r e p r e s e n t a t i o n ( r e p r e s e n t a t i o n _ i d = { r e p r e s e n t a t i o n } ) "
Then t h e o b j e c t " I f c W a l l T y p e / C u b e " h a s n o d a t a
2022-01-30 14:46:05 +11:00
Then t h e o b j e c t " I f c W a l l / W a l l " h a s n o d a t a
Then t h e o b j e c t " I f c W a l l / W a l l . 0 0 1 " h a s n o d a t a
2021-11-08 21:04:48 +11:00
2021-10-22 18:07:34 +11:00
Scenario : Update representation - updating a tessellation
2021-10-22 16:23:36 +11:00
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
And I p r e s s " b i m . u p d a t e _ r e p r e s e n t a t i o n ( o b j = ' I f c W a l l / C u b e ' ) "
Then t h e o b j e c t " I f c W a l l / C u b e " h a s a " T e s s e l l a t i o n " r e p r e s e n t a t i o n o f " M o d e l / B o d y / M O D E L _ V I E W "
2021-10-22 18:07:34 +11:00
Scenario : Update representation - updating a layered extrusion
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
And I a d d a n e m p t y
And t h e o b j e c t " E m p t y " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ p r o d u c t " t o " I f c E l e m e n t T y p e "
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l T y p e "
And I p r e s s " b i m . a s s i g n _ c l a s s "
2022-03-26 18:15:30 +11:00
And I p r e s s " b i m . a d d _ m a t e r i a l ( o b j = ' ' ) "
2021-10-22 18:07:34 +11:00
And I s e t " a c t i v e _ o b j e c t . B I M O b j e c t M a t e r i a l P r o p e r t i e s . m a t e r i a l _ t y p e " t o " I f c M a t e r i a l L a y e r S e t "
And I p r e s s " b i m . a s s i g n _ m a t e r i a l "
And I p r e s s " b i m . e n a b l e _ e d i t i n g _ a s s i g n e d _ m a t e r i a l "
And t h e v a r i a b l e " l a y e r _ s e t " i s " { i f c } . b y _ t y p e ( " I f c M a t e r i a l L a y e r S e t " ) [ 0 ] . i d ( ) "
And I p r e s s " b i m . a d d _ l a y e r ( l a y e r _ s e t = { l a y e r _ s e t } ) "
And t h e v a r i a b l e " l a y e r " i s " { i f c } . b y _ t y p e ( " I f c M a t e r i a l L a y e r " ) [ 0 ] . i d ( ) "
And I p r e s s " b i m . e n a b l e _ e d i t i n g _ m a t e r i a l _ s e t _ i t e m ( m a t e r i a l _ s e t _ i t e m = { l a y e r } ) "
And I s e t " a c t i v e _ o b j e c t . B I M O b j e c t M a t e r i a l P r o p e r t i e s . m a t e r i a l _ s e t _ i t e m _ a t t r i b u t e s [ 0 ] . f l o a t _ v a l u e " t o " 0 . 1 "
And I p r e s s " b i m . e d i t _ m a t e r i a l _ s e t _ i t e m ( m a t e r i a l _ s e t _ i t e m = { l a y e r } ) "
And I p r e s s " b i m . e d i t _ a s s i g n e d _ m a t e r i a l ( m a t e r i a l _ s e t = { l a y e r _ s e t } ) "
And t h e v a r i a b l e " t y p e " i s " { i f c } . b y _ t y p e ( ' I f c W a l l T y p e ' ) [ 0 ] . i d ( ) "
And I p r e s s " b i m . a s s i g n _ t y p e ( r e l a t i n g _ t y p e = { t y p e } , r e l a t e d _ o b j e c t = ' I f c W a l l / C u b e ' ) "
When I p r e s s " b i m . u p d a t e _ r e p r e s e n t a t i o n ( o b j = ' I f c W a l l / C u b e ' ) "
Then t h e o b j e c t " I f c W a l l / C u b e " h a s a " S w e p t S o l i d " r e p r e s e n t a t i o n o f " M o d e l / B o d y / M O D E L _ V I E W "
Scenario : Update representation - updating a profiled extrusion
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
And I a d d a n e m p t y
And t h e o b j e c t " E m p t y " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ p r o d u c t " t o " I f c E l e m e n t T y p e "
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l T y p e "
And I p r e s s " b i m . a s s i g n _ c l a s s "
2022-03-26 18:15:30 +11:00
And I p r e s s " b i m . a d d _ m a t e r i a l ( o b j = ' ' ) "
2021-10-22 18:07:34 +11:00
And I s e t " a c t i v e _ o b j e c t . B I M O b j e c t M a t e r i a l P r o p e r t i e s . m a t e r i a l _ t y p e " t o " I f c M a t e r i a l P r o f i l e S e t "
And I p r e s s " b i m . a s s i g n _ m a t e r i a l "
And I p r e s s " b i m . e n a b l e _ e d i t i n g _ a s s i g n e d _ m a t e r i a l "
2022-11-04 17:02:57 +11:00
And I p r e s s " b i m . a d d _ p r o f i l e _ d e f "
2021-10-22 18:07:34 +11:00
And t h e v a r i a b l e " p r o f i l e _ s e t " i s " { i f c } . b y _ t y p e ( " I f c M a t e r i a l P r o f i l e S e t " ) [ 0 ] . i d ( ) "
And I p r e s s " b i m . a d d _ p r o f i l e ( p r o f i l e _ s e t = { p r o f i l e _ s e t } ) "
And I p r e s s " b i m . e d i t _ a s s i g n e d _ m a t e r i a l ( m a t e r i a l _ s e t = { p r o f i l e _ s e t } ) "
And t h e v a r i a b l e " t y p e " i s " { i f c } . b y _ t y p e ( ' I f c W a l l T y p e ' ) [ 0 ] . i d ( ) "
And I p r e s s " b i m . a s s i g n _ t y p e ( r e l a t i n g _ t y p e = { t y p e } , r e l a t e d _ o b j e c t = ' I f c W a l l / C u b e ' ) "
Then t h e o b j e c t " I f c W a l l / C u b e " h a s a " S w e p t S o l i d " r e p r e s e n t a t i o n o f " M o d e l / B o d y / M O D E L _ V I E W "
2021-11-09 20:49:25 +11:00
Scenario : Get representation IFC parameters
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
And I p r e s s " b i m . u p d a t e _ r e p r e s e n t a t i o n ( i f c _ r e p r e s e n t a t i o n _ c l a s s = ' I f c E x t r u d e d A r e a S o l i d / I f c R e c t a n g l e P r o f i l e D e f ' ) "
When I p r e s s " b i m . g e t _ r e p r e s e n t a t i o n _ i f c _ p a r a m e t e r s "
Then n o t h i n g h a p p e n s
2021-10-15 13:21:31 +11:00
Scenario : Copy representation
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I p r e s s " b i m . a s s i g n _ c l a s s "
And t h e o b j e c t " I f c W a l l / C u b e " i s s e l e c t e d
And a d d i t i o n a l l y t h e o b j e c t " I f c W a l l / C u b e . 0 0 1 " i s s e l e c t e d
When I p r e s s " b i m . c o p y _ r e p r e s e n t a t i o n "
Then n o t h i n g h a p p e n s
2021-10-15 14:42:08 +11:00
Scenario : Override delete - without active IFC data
Given a n e m p t y B l e n d e r s e s s i o n
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
When I p r e s s " o b j e c t . d e l e t e "
Then t h e o b j e c t " C u b e " d o e s n o t e x i s t
Scenario : Override delete - with active IFC data
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
And t h e o b j e c t " I f c W a l l / C u b e " i s s e l e c t e d
When I p r e s s " o b j e c t . d e l e t e "
Then t h e o b j e c t " I f c W a l l / C u b e " d o e s n o t e x i s t
2021-11-11 22:27:40 +11:00
Scenario : Override outliner delete
Given a n u n t e s t a b l e s c e n a r i o
Then n o t h i n g h a p p e n s
2021-10-15 14:42:08 +11:00
Scenario : Override duplicate move - without active IFC data
Given a n e m p t y B l e n d e r s e s s i o n
And I a d d a c u b e
2021-10-15 17:07:23 +11:00
And I a d d a n e m p t y
2021-10-15 14:42:08 +11:00
And t h e o b j e c t " C u b e " i s s e l e c t e d
2021-10-15 17:07:23 +11:00
And a d d i t i o n a l l y t h e o b j e c t " E m p t y " i s s e l e c t e d
2021-10-15 14:42:08 +11:00
When I p r e s s " o b j e c t . d u p l i c a t e _ m o v e "
Then t h e o b j e c t " C u b e " e x i s t s
And t h e o b j e c t " C u b e . 0 0 1 " e x i s t s
Scenario : Override duplicate move - with active IFC data
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
And t h e o b j e c t " I f c W a l l / C u b e " i s s e l e c t e d
2021-10-15 17:07:23 +11:00
And a d d i t i o n a l l y t h e o b j e c t " I f c B u i l d i n g S t o r e y / M y S t o r e y " i s s e l e c t e d
2021-10-15 14:42:08 +11:00
When I p r e s s " o b j e c t . d u p l i c a t e _ m o v e "
Then t h e o b j e c t " I f c W a l l / C u b e " e x i s t s
And t h e o b j e c t " I f c W a l l / C u b e " i s a n " I f c W a l l "
And t h e o b j e c t " I f c W a l l / C u b e . 0 0 1 " e x i s t s
And t h e o b j e c t " I f c W a l l / C u b e . 0 0 1 " i s a n " I f c W a l l "
2021-10-22 15:43:04 +11:00
And t h e o b j e c t " I f c W a l l / C u b e . 0 0 1 " h a s a " T e s s e l l a t i o n " r e p r e s e n t a t i o n o f " M o d e l / B o d y / M O D E L _ V I E W "
2021-10-15 17:07:23 +11:00
And t h e o b j e c t " I f c B u i l d i n g S t o r e y / M y S t o r e y . 0 0 1 " e x i s t s
And t h e o b j e c t " I f c B u i l d i n g S t o r e y / M y S t o r e y . 0 0 1 " i s a n " I f c B u i l d i n g S t o r e y "
2021-10-22 11:16:03 +11:00
2021-11-11 14:51:05 +11:00
Scenario : Override duplicate move - copying a coloured representation
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I a d d a m a t e r i a l
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
And t h e o b j e c t " I f c W a l l / C u b e " i s s e l e c t e d
And t h e m a t e r i a l " M a t e r i a l " c o l o u r i s s e t t o " 1 , 0 , 0 , 1 "
When I p r e s s " o b j e c t . d u p l i c a t e _ m o v e "
And I p r e s s " e x p o r t _ i f c . b i m ( f i l e p a t h = ' { c w d } / t e s t / f i l e s / e x p o r t . i f c ' ) "
And a n e m p t y B l e n d e r s e s s i o n i s s t a r t e d
And I p r e s s " b i m . l o a d _ p r o j e c t ( f i l e p a t h = ' { c w d } / t e s t / f i l e s / e x p o r t . i f c ' ) "
Then t h e m a t e r i a l " M a t e r i a l " c o l o u r i s " 1 , 0 , 0 , 1 "
And t h e o b j e c t " I f c W a l l / C u b e " h a s t h e m a t e r i a l " M a t e r i a l "
And t h e o b j e c t " I f c W a l l / C u b e . 0 0 1 " h a s t h e m a t e r i a l " M a t e r i a l "
2021-10-22 11:16:03 +11:00
Scenario : Override duplicate move - copying a type instance with a representation map
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ p r o d u c t " t o " I f c E l e m e n t T y p e "
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l T y p e "
And I p r e s s " b i m . a s s i g n _ c l a s s "
2022-07-27 08:11:52 +02:00
And I s e t " s c e n e . B I M M o d e l P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l T y p e "
2021-10-22 11:16:03 +11:00
And t h e v a r i a b l e " c u b e " i s " { i f c } . b y _ t y p e ( ' I f c W a l l T y p e ' ) [ 0 ] . i d ( ) "
2022-07-27 08:18:34 +02:00
And I s e t " s c e n e . B I M M o d e l P r o p e r t i e s . r e l a t i n g _ t y p e _ i d " t o " { c u b e } "
2022-07-27 08:24:50 +02:00
And I p r e s s " b i m . a d d _ c o n s t r _ t y p e _ i n s t a n c e "
2022-01-30 14:46:05 +11:00
And t h e o b j e c t " I f c W a l l / W a l l " i s s e l e c t e d
2021-10-22 11:16:03 +11:00
When I p r e s s " o b j e c t . d u p l i c a t e _ m o v e "
2022-01-30 14:46:05 +11:00
Then t h e o b j e c t " I f c W a l l / W a l l . 0 0 1 " e x i s t s
And t h e o b j e c t " I f c W a l l / W a l l . 0 0 1 " h a s a " M a p p e d R e p r e s e n t a t i o n " r e p r e s e n t a t i o n o f " M o d e l / B o d y / M O D E L _ V I E W "
2021-10-22 18:07:34 +11:00
Scenario : Override duplicate move - copying a layered extrusion
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
And I a d d a n e m p t y
And t h e o b j e c t " E m p t y " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ p r o d u c t " t o " I f c E l e m e n t T y p e "
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l T y p e "
And I p r e s s " b i m . a s s i g n _ c l a s s "
2022-03-26 18:15:30 +11:00
And I p r e s s " b i m . a d d _ m a t e r i a l ( o b j = ' ' ) "
2021-10-22 18:07:34 +11:00
And I s e t " a c t i v e _ o b j e c t . B I M O b j e c t M a t e r i a l P r o p e r t i e s . m a t e r i a l _ t y p e " t o " I f c M a t e r i a l L a y e r S e t "
And I p r e s s " b i m . a s s i g n _ m a t e r i a l "
And I p r e s s " b i m . e n a b l e _ e d i t i n g _ a s s i g n e d _ m a t e r i a l "
And t h e v a r i a b l e " l a y e r _ s e t " i s " { i f c } . b y _ t y p e ( " I f c M a t e r i a l L a y e r S e t " ) [ 0 ] . i d ( ) "
And I p r e s s " b i m . a d d _ l a y e r ( l a y e r _ s e t = { l a y e r _ s e t } ) "
And t h e v a r i a b l e " l a y e r " i s " { i f c } . b y _ t y p e ( " I f c M a t e r i a l L a y e r " ) [ 0 ] . i d ( ) "
And I p r e s s " b i m . e n a b l e _ e d i t i n g _ m a t e r i a l _ s e t _ i t e m ( m a t e r i a l _ s e t _ i t e m = { l a y e r } ) "
And I s e t " a c t i v e _ o b j e c t . B I M O b j e c t M a t e r i a l P r o p e r t i e s . m a t e r i a l _ s e t _ i t e m _ a t t r i b u t e s [ 0 ] . f l o a t _ v a l u e " t o " 0 . 1 "
And I p r e s s " b i m . e d i t _ m a t e r i a l _ s e t _ i t e m ( m a t e r i a l _ s e t _ i t e m = { l a y e r } ) "
And I p r e s s " b i m . e d i t _ a s s i g n e d _ m a t e r i a l ( m a t e r i a l _ s e t = { l a y e r _ s e t } ) "
And t h e v a r i a b l e " t y p e " i s " { i f c } . b y _ t y p e ( ' I f c W a l l T y p e ' ) [ 0 ] . i d ( ) "
And I p r e s s " b i m . a s s i g n _ t y p e ( r e l a t i n g _ t y p e = { t y p e } , r e l a t e d _ o b j e c t = ' I f c W a l l / C u b e ' ) "
And t h e o b j e c t " I f c W a l l / C u b e " i s s e l e c t e d
When I p r e s s " o b j e c t . d u p l i c a t e _ m o v e "
Then t h e o b j e c t " I f c W a l l / C u b e . 0 0 1 " e x i s t s
Then t h e o b j e c t " I f c W a l l / C u b e . 0 0 1 " h a s a " S w e p t S o l i d " r e p r e s e n t a t i o n o f " M o d e l / B o d y / M O D E L _ V I E W "
Scenario : Override duplicate move - copying a profiled extrusion
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
And I a d d a n e m p t y
And t h e o b j e c t " E m p t y " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ p r o d u c t " t o " I f c E l e m e n t T y p e "
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l T y p e "
And I p r e s s " b i m . a s s i g n _ c l a s s "
2022-03-26 18:15:30 +11:00
And I p r e s s " b i m . a d d _ m a t e r i a l ( o b j = ' ' ) "
2021-10-22 18:07:34 +11:00
And I s e t " a c t i v e _ o b j e c t . B I M O b j e c t M a t e r i a l P r o p e r t i e s . m a t e r i a l _ t y p e " t o " I f c M a t e r i a l P r o f i l e S e t "
And I p r e s s " b i m . a s s i g n _ m a t e r i a l "
And I p r e s s " b i m . e n a b l e _ e d i t i n g _ a s s i g n e d _ m a t e r i a l "
2022-11-04 17:02:57 +11:00
And I p r e s s " b i m . a d d _ p r o f i l e _ d e f "
2021-10-22 18:07:34 +11:00
And t h e v a r i a b l e " p r o f i l e _ s e t " i s " { i f c } . b y _ t y p e ( " I f c M a t e r i a l P r o f i l e S e t " ) [ 0 ] . i d ( ) "
And I p r e s s " b i m . a d d _ p r o f i l e ( p r o f i l e _ s e t = { p r o f i l e _ s e t } ) "
And I p r e s s " b i m . e d i t _ a s s i g n e d _ m a t e r i a l ( m a t e r i a l _ s e t = { p r o f i l e _ s e t } ) "
And t h e v a r i a b l e " t y p e " i s " { i f c } . b y _ t y p e ( ' I f c W a l l T y p e ' ) [ 0 ] . i d ( ) "
And I p r e s s " b i m . a s s i g n _ t y p e ( r e l a t i n g _ t y p e = { t y p e } , r e l a t e d _ o b j e c t = ' I f c W a l l / C u b e ' ) "
And t h e o b j e c t " I f c W a l l / C u b e " i s s e l e c t e d
When I p r e s s " o b j e c t . d u p l i c a t e _ m o v e "
Then t h e o b j e c t " I f c W a l l / C u b e . 0 0 1 " e x i s t s
Then t h e o b j e c t " I f c W a l l / C u b e . 0 0 1 " h a s a " S w e p t S o l i d " r e p r e s e n t a t i o n o f " M o d e l / B o d y / M O D E L _ V I E W "
2021-10-26 17:17:20 +11:00
Scenario : Override duplicate move linked - without active IFC data
Given a n e m p t y B l e n d e r s e s s i o n
And I a d d a c u b e
And I a d d a n e m p t y
And t h e o b j e c t " C u b e " i s s e l e c t e d
And a d d i t i o n a l l y t h e o b j e c t " E m p t y " i s s e l e c t e d
When I p r e s s " o b j e c t . d u p l i c a t e _ m o v e _ l i n k e d "
Then t h e o b j e c t " C u b e " e x i s t s
And t h e o b j e c t " C u b e . 0 0 1 " e x i s t s
Scenario : Override duplicate move linked - with active IFC data
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
And t h e o b j e c t " I f c W a l l / C u b e " i s s e l e c t e d
And a d d i t i o n a l l y t h e o b j e c t " I f c B u i l d i n g S t o r e y / M y S t o r e y " i s s e l e c t e d
When I p r e s s " o b j e c t . d u p l i c a t e _ m o v e _ l i n k e d "
Then t h e o b j e c t " I f c W a l l / C u b e " e x i s t s
And t h e o b j e c t " I f c W a l l / C u b e " i s a n " I f c W a l l "
And t h e o b j e c t " I f c W a l l / C u b e . 0 0 1 " e x i s t s
And t h e o b j e c t " I f c W a l l / C u b e . 0 0 1 " i s a n " I f c W a l l "
And t h e o b j e c t " I f c W a l l / C u b e . 0 0 1 " h a s a " T e s s e l l a t i o n " r e p r e s e n t a t i o n o f " M o d e l / B o d y / M O D E L _ V I E W "
And t h e o b j e c t " I f c B u i l d i n g S t o r e y / M y S t o r e y . 0 0 1 " e x i s t s
And t h e o b j e c t " I f c B u i l d i n g S t o r e y / M y S t o r e y . 0 0 1 " i s a n " I f c B u i l d i n g S t o r e y "
2021-10-26 17:36:58 +11:00
Scenario : Override paste buffer - without active IFC data
Given a n e m p t y B l e n d e r s e s s i o n
And I a d d a c u b e
And I a d d a n e m p t y
And t h e o b j e c t " C u b e " i s s e l e c t e d
And a d d i t i o n a l l y t h e o b j e c t " E m p t y " i s s e l e c t e d
When I p r e s s " v i e w 3 d . c o p y b u f f e r "
And I p r e s s " b i m . o v e r r i d e _ p a s t e _ b u f f e r "
Then t h e o b j e c t " C u b e " e x i s t s
And t h e o b j e c t " C u b e . 0 0 1 " e x i s t s
Scenario : Override paste buffer - with active IFC data
Given a n e m p t y I F C p r o j e c t
And I a d d a c u b e
And t h e o b j e c t " C u b e " i s s e l e c t e d
And I s e t " s c e n e . B I M R o o t P r o p e r t i e s . i f c _ c l a s s " t o " I f c W a l l "
And I p r e s s " b i m . a s s i g n _ c l a s s "
And t h e o b j e c t " I f c W a l l / C u b e " i s s e l e c t e d
And a d d i t i o n a l l y t h e o b j e c t " I f c B u i l d i n g S t o r e y / M y S t o r e y " i s s e l e c t e d
When I p r e s s " v i e w 3 d . c o p y b u f f e r "
And I p r e s s " b i m . o v e r r i d e _ p a s t e _ b u f f e r "
Then t h e o b j e c t " I f c W a l l / C u b e " e x i s t s
And t h e o b j e c t " I f c W a l l / C u b e " i s a n " I f c W a l l "
And t h e o b j e c t " I f c W a l l / C u b e . 0 0 1 " e x i s t s
And t h e o b j e c t " I f c W a l l / C u b e . 0 0 1 " i s a n " I f c W a l l "
And t h e o b j e c t " I f c W a l l / C u b e . 0 0 1 " h a s a " T e s s e l l a t i o n " r e p r e s e n t a t i o n o f " M o d e l / B o d y / M O D E L _ V I E W "
And t h e o b j e c t " I f c B u i l d i n g S t o r e y / M y S t o r e y . 0 0 1 " e x i s t s
And t h e o b j e c t " I f c B u i l d i n g S t o r e y / M y S t o r e y . 0 0 1 " i s a n " I f c B u i l d i n g S t o r e y "