7 Replies Latest reply on Jan 19, 2017 3:08 AM by Obi-wan Kenobi

    creating object with properties

    foltman Level 1

      Hi guys!

       

      I'm trying to figure out how exactly creation properties work.

      Here is some rectangle:

       

      myFrame = app.activeDocument.pages[0].rectangles.add({
           geometricBounds: [0,0,100,100],
           fillColor: 'None',
           contentType: ContentType.GRAPHIC_TYPE
      });
      
      

       

      I want to add frameFittingOptions to in while I'm creating whole object, so:

       

           ...
           contentType: ContentType.GRAPHIC_TYPE,
           frameFittingOptions.fittingOnEmptyFrame: EmptyFrameFittingOptions.FILL_PROPORTIONALLY
      });
      

       

      And now I'm reciving error:

      screen.png

       

      Where is my mistake?

      Can I pass all properties during creating object?

       

      Thanks for any feedback,

      Jarek

        • 1. Re: creating object with properties
          Loic.Aigon Adobe Community Professional

          Hi

          myFrame = app.activeDocument.pages[0].rectangles.add({  
               geometricBounds: [0,0,100,100],  
               fillColor: 'None',  
               contentType: ContentType.GRAPHIC_TYPE ,
            frameFittingOptions: {fittingOnEmptyFrame: EmptyFrameFittingOptions.FILL_PROPORTIONALLY}  
          });
          

           

           

          1 person found this helpful
          • 2. Re: creating object with properties
            foltman Level 1

            Heh, it is now quite obvious! Thank you, Loic.Aigon.

             

            Now there is second part of my problem. Can I add any type of property corresponding to object type?

            For example I'm trying to add grep style to a paragraph style the same way I did with frameFittingOptions:

             

            myDoc = app.activeDocument;
            myStyle = myDoc.paragraphStyles.add({
                name: "BODY",
                nestedGrepStyles: {
                    appliedCharacterStyle: myDoc.characterStyles.item('some style'),
                    grepExpression: 'some expression'
                }
            });
            

             

            And it doesn't work, style is being created, but without grep style.

             

            ..

            Jarek

            • 3. Re: creating object with properties
              Marc Autret Level 4

              Hi Jarek,

               

              Keep in mind that nestedGrepStyles (as well as paragraphStyles) refers to a collection, that is, a special member that requires the add() method to be fueled. So you need to load it separately:

               

              myStyle = myDoc.paragraphStyles.add({  
                  name: "BODY",  
                  });
              
              myStyle.nestedGrepStyles.add({  
                  appliedCharacterStyle: myDoc.characterStyles.item('some style'),  
                  grepExpression: 'some expression',
                  });
              
              

               

              @+

              Marc

              2 people found this helpful
              • 4. Re: creating object with properties
                foltman Level 1

                Ok, Marc, I understand. Everything is clear now, I see the difference.

                Thank you!

                ..

                Jarek

                • 5. Re: creating object with properties
                  Obi-wan Kenobi Adobe Community Professional

                  Hi all!

                   

                  In a similar way, I've a problem to add an auto-resizing property when I create an object style!

                   

                      try {
                          var myOStyle = app.activeDocument.objectStyles.item("mySel");
                          myOStyle.name;
                      }  catch (e) {
                              var myOStyle = app.activeDocument.objectStyles.add({name: "mySel", enableFill: false, enableStroke: false});
                      }
                  

                   

                      myFrame.textFramePreferences.autoSizingType = AutoSizingTypeEnum.HEIGHT_AND_WIDTH;
                      myFrame.textFramePreferences.useNoLineBreaksForAutoSizing = true;
                  

                   

                   

                  Thanks in advance! 

                   

                  (^/)

                  • 6. Re: creating object with properties
                    Kai Rübsamen Level 4

                    Why? I think, Loics example is pretty clear?!

                     

                    var curDoc = app.activeDocument;
                    var oStye = (curDoc.objectStyles.itemByName("mySel").isValid) ? curDoc.objectStyles.itemByName("mySel") : curDoc.objectStyles.add({name: "mySel"});
                    
                    oStye.properties = {
                      enableTextFrameAutoSizingOptions: true,
                      textFramePreferences: {
                        autoSizingType: AutoSizingTypeEnum.HEIGHT_AND_WIDTH,
                        autoSizingReferencePoint: AutoSizingReferenceEnum.TOP_CENTER_POINT,
                        useNoLineBreaksForAutoSizing: true
                      }
                    };
                    

                     

                     

                    or

                     

                    var curDoc = app.activeDocument;
                    if  (! curDoc.objectStyles.itemByName("mySel").isValid) {
                      var oStyle = curDoc.objectStyles.add({
                        name: "mySel",
                        enableTextFrameAutoSizingOptions: true,
                        textFramePreferences: {
                          autoSizingType: AutoSizingTypeEnum.HEIGHT_AND_WIDTH,
                          autoSizingReferencePoint: AutoSizingReferenceEnum.TOP_CENTER_POINT,
                          useNoLineBreaksForAutoSizing: true
                        }
                      });
                    }
                    
                    • 7. Re: creating object with properties
                      Obi-wan Kenobi Adobe Community Professional

                      Thanks Kai! Clear now! 

                       

                      (^/)