Extracting unique identifier for illustrator layers

Hi All,
Multiple layers in an illustrator file can have the same name. So the layer name cannot be a unique identifier for layers. Is there a way to extract a unique identifier for layers through scripting? I saw that if the 'Identify Objects by' property (inside Preferences -> Units) is set to XML ID, all layer names, even identical ones are replaced by some unique ids. Can we extract these ids via scripting without manually changing the 'Identify Objects by' property. Basically, extraction of any unique identifier for illustrator layers would serve the purpose. I am really stuck with this and need help urgently. Any help would be highly appreciated.
Thanks in advance.

When I found this I noticed it changed the name of the layers in the layers pallet.
I had not had a chance to test this with code.
If "use XML ID" is turned on then you are not able to name layers the same thing.
this in turn would follow through to your script using layer.name
for existing files you would need to fix names manually or...
I am sure it would be possible to Script.
eg. export SVG file and pull the layer ID's from that and rename the document layers accordingly. (may be a little tricky for sublayers, but top level layers should be straight forward)
Then as long as "use XML ID" is left on the files would not need this run again as you cannot use duplicate layer names.

Similar Messages

  • Unique identifier for a query

    Hi,
    Two queries existed with the same definition, technical name and description in our dev. box.
    Please let me know a unique identifier so that I can differentiate between these two queries.
    Regards
    Mukul

    HI,
    two queries having same technical names in the syatem.is this sure...Plz check once again the Technical names will vary ....It is tha unique identifier to differentiate...if not check with infoprovider on which they are created...
    Thanks/Tarak
    Edited by: Tarak on Feb 6, 2009 6:16 AM

  • Unique identifiers for opened documents

    Hello,
    I am trying to find the equivalent of the Flex "Document.id" in the C++ SDK.
    It seems to me that the UID of a document is always equal to 1 :
    InterfacePtr<IApplication> application(GetExecutionContextSession()->QueryApplication());
    InterfacePtr<IDocumentList> docList(application->QueryDocumentList());
    PMString name;
    for (int i=0; i < docList->GetDocCount(); i++)
         IDocument* doc = docList->GetNthDoc(i);
         if(nil == doc)
              continue;
         UIDRef myUIDRef = GetUIDRef(doc);
         UID myUID = myUIDRef.GetDataBase()->GetRootUID();//or myUIDRef.GetUID()
         doc->GetName(name);
         printf("%dth doc : %d (%s)", i, myUID.Get(), name.GetPlatformString().c_str());
    In Flex, it is incremental.
    Thank you,
    David

    UIDs are unique only within their database.
    You could take the database pointer as unique value, but after close and open another document may receive the same memory location for its database. Another approach is a guid stored within the document meta data, but I don't know how InDesign will deal with duplicated files in this regard. The best would be you internally track open / close document signals and create your own completely unique IDs (with a mapping to the database pointer).
    For either kind of unique value, you'd have to implement your own scripting property to hopefully expose it to Flex - assuming you go through CSXS.
    Dirk

  • Unique id for calling thread

    A stored proc can be called by any of the say 200 threads from within a pool of java connections that all sign on with say USER1. Another similar pool can call the same proc that are signed on with USER2. Inside the proc I need to store some SYS_CONTEXT info and retrive it within the same call. I cannot use a package HEADER variable beacuse this is not private to the thread. I cannot use a global variable in the package BODY because between storing the value in the BDY global variable and retrieving it another thread can call the same proc and access the BODY global variable.
    I decide to store in the info ina SYS_CONTEXT using a unique identifier for this thread as the ATTRIBUTE and the info in the VALUE. To compose the unique id for this thread I can issue the following SQl. Which combo will guarantee me a unique id for tis thread that called the stored proc. The calls are synchronous meaning once a thread obtains a connection from the pool to call the stored proc it does not give it up until the proc completes and returns a result to the thread.
    SELECT
    SYS_CONTEXT('USERENV','SESSIONID')
    ,SYS_CONTEXT('USERENV','SESSION_USER')
    ,SYS_CONTEXT('USERENV','SESSION_USERID')
    , ,SYS_CONTEXT('USERENV','SID')
    ,SYS_CONTEXT('USERENV','HOST')
    ,SYS_CONTEXT('USERENV','INSTANCE')
    INTO
    v_sessionid
    ,v_session_user
    ,v_session_userid
    ,v_host
    ,v_instance
    FROM
    DUAL
    ;

    Please don't abuse the forums by posting in many places.
    General Database Discussions

  • Can I use MachineID.getBytes() or MachineID.getUniqueID() as a unique identifier?

    The bytes from MachineID.getBytes() are not to be treated as a unique identifier for a device.  It is unique, but is volatile and not suitable to be used as an identifier.  There are various system/hardware events which can cause the MachineID bytes to change over time.  The same rule applies to MachineID.getUniqueID().  If you do .getBytes() and then compare that to AnotherMachineID.getBytes(), even though they can be the same device (but different runtime or browser), you will get a "false" if you're doing a direct byte-by-byte comparison.  This is because during the device individualization process, the device's hardware attributes are interrogated to get a hardware "fingerprint" of the device.  This is stored as a data structure in the MachineID data structure.
    The only resilient way (with limtiations, as stated in the next section) to compare to different devices to determine if they are the same device is to use MachineID.matches().  That comparison is resilient against machine hardware upgrades (changing hard drives, upgrading your video card, upgrading your CPU, reformatting your machine, changing user accounts, using different browsers, etc…). 
    (NOTE): There are 2 known limitations to using MachineID.matches():
    1. MachineID in the Chrome browser (on any platform) a randomly-generated ID string that is not tied to the hardware.  The reason for this is that with the release of Chrome Version 28 browser introduced a sandbox, where code in the browser is not allowed to communicate directly with the hardware layer. This will cause .matches() to fail if comparing a MachineID from Chrome against a MachineID from Firefox, even from the same machine.  This also means that if a user "resets Adobe Access DRM/Licenses", they will lose their ID, and it will be re-generated (as a new ID) the next time DRM content is consumed and their machine has to create a new MachineID.
    2. A similar limitation applies to iOS devices running iOS7 and higher, as a sandbox was also introduced to that platform, preventing applications from directly accessing the hardware.  If you are using iOS7 with a the Primetime Player SDK (PSDK) 1.0 or 1.1, the MachineID for all devices will be the same value, as Apple blocked the device-access APIs (which Adobe Access uses) and caused them to return a static string.  Since all iOS7 devices will return the same string when the device hardware interrogation happens, all iOS7 devices using the the PSDK 1.1 or earlier will return true when MachineID.matches() is called.  Adobe is working on a high-priority fix to this issue, which will be released in a PSDK 1.1 patch/hotfix, where another persistent API is used to bind the MachineID to the device, instead of the blocked device-access APIs.  This new binding mechanism will be persistent across application uninstall/re-installs.
    What is consistent between iOS7 and Chrome 28 (and higher), is that the MachineID will no longer be tied to the hardware attributes of the device.
    cheers,
    /Eric.

    In case you would like to find some way to do something that requires concurrency monitoring (e.g. You run a service and wish to limit the # of devices that can access a your service), the best way to do this would be to move towards a "# of concurrent streams" model, similar to Netflix.
    To do this, you can use Adobe Pass technology called Mai Tai, or implement your own technology (via cookies or authentication tokens) to limit user accounts to no more than XX concurrent streams.
    cheers,
    /Eric.

  • [CS3][JS] Uniquely identifying documents with common names - possible?

    Hi!
    Is there no way to refer directly to a document in app.documents when there are several documents with the same name open at the same time (located in different folders)?
    I have tried to assign unique labels to the documents when opening them, but have not succeeded in referring to documents by their labels, only by name - and the name not being unique, I get just one document reference (the first).
    I also tried using the documents.itemByRange function, supposedly returning an array of all documents in the range defined by the parameters sent to the function. However, sending in the same name in the "from" and "to" parameters, returned only one document:
    app.documents.itemByRange('test.indd', 'test.indd').getElements().length
    Result: 1
    //(I would have expected to get both of them)
    // Referring directly by the name:
    app.documents.item('test.indd').getElements().length
    Result: 1
    // Checking the name of the documents by their indexes:
    app.documents.item(0).name
    Result: test.indd
    app.documents.item(1).name
    Result: test.indd
    Do you really have to loop through all open documents and check their fullName to be able to uniquely identify a document if the names are not unique?
    Kind regards,
    Andreas Jansson

    Hi Dave,
    Make that three or four... ;)
    Kris at Rorohiko created a method to get unique references to two
    different documents with the same name. It's usable if you have the free
    APID ToolAssistant version 1.0.44 or higher. (it doesn't need to be
    licensed...)
    Here's an excerpt from the reference manual:
    The get doc GUID function is used as follows:
    guid =
    app.callExtension(0x90B6C,10008,document);
    This function returns a GUID (Globally Unique Identifier) for a
    document. This is a string of the form
    {nnnnnnnn-nnnn-nnnnnnnnnnnnnnnnnnnn}
    where all 'n' stand for a hexadecimal digit.
    These GUID allow you to work with same-name documents that
    are concurrently open without getting tangled in the confusion
    that occurs when using resolve calls.
    As long as a document is not moved from its original location on
    disk, it will keep the same GUID. Two documents with the same
    name but different paths will have different GUID.
    Opening, closing, (re)saving to the same location will NOT
    change the GUID.
    Moving a document to another location will change the GUID.
    The find open doc by GUID function is used as follows:
    doc = app.callExtension(0x90B6C,10009,guid);
    This function retrieves a reference to an already open document
    based on its GUID string.
    These GUID strings are unique and persistent and allow
    persistent references to same-name documents without resolvelike
    issues (but the documents are meant to be 'unmovable' i.e.
    they cannot be renamed or moved to another folder). Once the
    document is open, it can be retrieved via its GUID.
    HTH,
    Harbs

  • How can I uniquely identify computers on the same network/account specifically for airdrop use?  When I change name on one computer under contacts if changes on all computers.

    How can I uniquely identify computers on the same network/account specifically for airdrop use?  When I change name on one computer under contacts it changes on all computers.  I would like to change icon and name for each computer.

    you would need to setup a VPN and tunnel into your office.
    FYI..the default ports are 3283 and 5900.

  • Looking for a unique identifier

    Looking for a unique identifier
    Hello,
    I'm looking for a way of uniquely identify a mobile phone in order to check access rights to my application. The scenario is this: users download an application from my server and, eventually, request upgrades and data needed by the application to work. Each application has a unique id hard-coded which is sent back to the server with each request to check for permission.
    The problem is that somebody could copy the application and use it. The server wouldn't be able to detect that two different applications are making requests with the same id. I'd need to be able to differentiate between phones. Without such a mechanism, I won't know whether an application has been legally downloaded from my server or is an illegal copy. I thought about the phone number or the IMEI code but it seems to be impossible to retrieve them.
    Any ideas?
    Thanks in advance

    Dont know if it will help, but many operators put the MSISDN (phone number) in the header for data requests (such as a WAP connection through their gateway), this is how they customise content for you etc (as well as all the securtiy).Perhaps when your user downloads your application you could attempt to capture this info and then re-use it for their updates/config changes. HTH

  • Illustrator Layers are expanded when opening.

    I haven't had much luck googling this, because I am not certain of the proper terminology to ask the question.
    When I open a file, one or more layer are opened/expanded in the layer tab on the side of the screen.  I can close the layer, make modifications, and save; but when I open it up, the layer is always opened.
    It doesn't happen with every file.  But on the files that do have this, it's always like this.
    Any ideas? It's rathe annoying, especially with larger art files.

    SOULTION WORK ARROUND HERE:
    At a previous job at AARP.org, we had CS2 and went to CS4, where I first noticed this "bug."
    Sometimes, we'd have a file with 10-30 web page designs in it and having to close all the Layers showinging every Sublayer drove  me nuts and can take a few Annoyed minutes.
    I still have this issue in CS5, and noticed it yesterday on a co-workers CS6.
    So, today I decided to Google search and fonund this thread.
    I've spent the last 2 hours trying to fix the issue of all Layers and Sublayers showing when opening a document and I have found a work arround. 
    Now, we know that Illustrator gives a unique color to items that live on seperate layers, and it also does this for Sub-layers.
    It seems when you open a file with lots of layers and sub-layers, the defualt in Illustator is to show all layers.
    To fix that bug they need to add a "Show/Hide Sublayers" or something.
    I think they may have added "Sublayers" in CS4, and that is when this "bug" started for the users. I'm not sure.
    Also, sometimes items are getting stuck inside sub-layers etc, and it becomes hard to move selected items to the front and or back using short cut commands, you have to actually go move the sub-layer. meh.
    Somethings to note:
    Adobe gives the user the option to "Merge Selcted Layers" but this only lets you merge layers and sub-layers that live within the same heiarchy, and you still will have lower level sub-layers, and you can't drag a sub-sub-level layer to the the sub-layer up from it.
    I haven't figured out how or why all the sublayers got created, I know I never made a actual "New Sublayer"
    So, if there is a process in the workflow to avoid doing that, I'll look out for it and post something in the future.
    But it may have to do with working with custom symbols, pasting form layers to layers, Paste Remembers Layers being selected, copying layers, etc... I don't know.
    So, here is how I cleaned up my file:
    I removed all the damn sub-layers that ened up in my file somehow.
    1) First make sure "Paste Remembers Layers" is NOT selcted in the Layers palette menu. 
    2) Select everything in a specific layer by clicking on the circle to the right of the layer name in the layers palatte or use commed-c to copy.
    3) With all your content still selected, delete everything.
    4) Select all the sub-layers (which are now empty), that are underneath your most top level layer.
    5) Click on your top level layer, and use Shift-Command-V to Paste in Place (also found under the Edit menu).
    Now, your layers will look like the used back in CS3 or CS2, you will have NO Sublayers, and after you save and re-open the document, all layers will not be open showing.
    Ta-Da! This has been driving me crazy for like a year and a half. Work arround discovered.
    Thought I should share. 
    Now, if you like using layers and naming them, then you're stuck with all layers showing upon opening a document but you can reduce what shows by going into Panel Options and checking "Show Layers Only"
    This will show only your layers and sub-layers, but it can reduce you seeing all the paths and objects, etc., but when you open documents, all those layers will still be open. Got it?

  • The Group Policy Client service failed the sign-in The universal unique identifier (UUID) type is not supported

    Hi guys,
    we created a custom WIM Image (Windows 8 Enterprise) with MDT 2012.
    Sysprept the Image, Deployed via SCCM 2012 SP1.
    Computers are Domainjoined. Error with standard Domain User.
    On some computers (not every computer) and not with every user on the first logon following error message arises:
    The Group Policy Client service failed the sign-in The universal unique identifier (UUID) type is not supported
    It works, when you log in a second time but this error isn't very nice. 
    Is there a solution for that?
    Kind Regards
    Martin

    Hi,
    The service is responsible for applying settings configured by administrators for the computer and users through the Group Policy component. This issue can be caused by various reasons based on the computer environment.
    Can you find any information in event log about this issue?
    Here is the related blog in which the steps can solve most of such issues if the issue continuously happen.
    http://blogs.msdn.com/b/moiqubal/archive/2012/03/04/how-to-fix-quot-the-group-policy-client-service-failed-the-logon-access-denied-quot-error.aspx
    Also, you can refer to the similar thread about this issue:
    http://social.technet.microsoft.com/Forums/en-US/4a644219-50ee-494d-b965-e64a8555109e/the-group-policy-client-service-failed-the-signin-the-universal-unique-identifier-uuid-type-is
    Since this issue can be related to SCCM, to better help you, please submit a new thread for further help:
    https://social.technet.microsoft.com/Forums/en-US/home?category=systemcenter2012configurationmanager
    Hope these could be helpful.
    Kate Li
    TechNet Community Support

  • To get the Unique id for Session

    Is there any Unique id for the oracle sessions wether i connect to the database using sql*plus,Isql*plus or any other tool. If i use "SELECT SYS_CONTEXT('USERENV', 'SID') FROM DUAL;" it return the same value if already opened session gets close.
    So i want to know is there any unique identification for the sessions through out the life of the db.
    Thanks in advance.
    Balaji.M

    Hi,
    are you trying to identify a session uniquely? if yes then you need to use sid and serial#, once a session is terminated by logging of or killed the sid is releases and another session being formed can have the same sid.
    Hope this helps.
    Regards,
    Vijay Sehgal

  • Get unique value for a range of values from a table

    Please help to identify the sql to get unique value for following scenario
    Table A has 3 columns
    column1 column2 column3

    user7666373 wrote:
    Please help to identify the sql to get unique value for following scenarioUnique combinations of three columns? If so:
    select DISTINCT column1,column2,column3 from A;SY.

  • Can After Effects CC handle this many Illustrator layers?

    I designed a world map in Adobe Illustrator with many layers for a documentary about interwar Europe (1919-1939). The Illustrator map actually has 80 layers. Would this be a map with too many layers to animate in After Effects?
    In AE I plan to add a camera to zoom in on parts of the map like Europe and the Middle East. But I'll also need to animate the opacity of individual layers to show territorial changes and invasions in Europe before and after 1919 Versailles Treaty and the 1938 Munich Agreement. The reason I have so many layers is that I thought I could use this one map in multiple different map animations for my film.
    Can AE handle this many layers? Or is it wiser to keep the layers to a minimum number?
    Also, is there no way in After Effects to group the layers other than pre-comping them? It would be great to be able to have sub-layers in AE like you can in Illustrator. I could then reduce the number of layers in my map from 80 to less than 20, by grouping all European states as sub-layers into a Europe layer, as so on for Africa, Asia, etc.
    Unless I'm mistaken, Illustrator sub-layers are not visible in After Effects, are they?

    Rick and Mylenium,
    Thank you both for your feedback. Much appreciated. Mylenium, I'm sure you're right. I probably was trying to do too much in one map. I'll follow your suggestion and use the minimum number of layers for each scenario. I'm spending too much time as it is looking for particular layers among the 80.
    I do wish it were possible in AE to simply group layers without pre-comping them though. Or that Illustrator sub-layers could be visible. It would really help to streamline the workflow. I suppose I could precomp all layers and then simply add a camera to the pre-comp.
    Rick I'll try the expression controls and parenting, but can you elaborate a little further regarding your suggestion of pre-planning in Illustrator?
    Thank you both again for your helpful suggestions.

  • Unique identifier in FBL3N

    Hello,
    Please could you tell me if it is possible to get a unique identifier in an FBL3N report? (I would want the unique identifier to remain unchanged for each line item if new line items are entered into SAP.)
    (i.e. if staff write commentaries for each line item in an FBL3N report and then new line items are present in later FBL3N reports I want to be able to identify which line items in the new report each of our commentaries relate to).
    Thanks,
    Stu

    Hi,
    Please could you tell me whether accounting entry date is different to document date and posting date? My understanding is that the document date and posting dates can be manually set by the data entry clerk and therefore I can not guarantee that posting dates will always increase for each new line item (even then would I need to sort by time of day within each date to be sure the order of line items are in chronological order?) Is accounting entry date the date that the data is entered into SAP and not changeable by the user?
    Unfortnately in this case it will be impractical to ask people to use unique text or header text fields.
    If it is possible to sort by the date (and time) that data is 'physically' entered into SAP then we can be sure that any new line items will occur at the bottom of the report, irrespective of document date or posting date?
    I assume an unique identifier just doesn't exist (without entering one manually)?
    Many thanks,
    Stewart

  • EDI 810 transaction error: Cannot uniquely identify a trading partner

    Hi,
    I am facing following error on B2B 11g version 11.1.1.6.0. Please provide the solution if you are aware of the issue.
    Error Description: Cannot uniquely identify a trading partner. The trading partners PARTNER-A, PARTNER-B have the same set of identifications.
    Partner Identification parameter for PARTNER-A and PARTNER-B
    EDI Interchange ID: xxxx
    EDI Interchange ID Qualifier: yyyy
    EDI Group ID: 111
    Name: PARTNER-A
    EDI Interchange ID: xxxx
    EDI Interchange ID Qualifier: yyyy
    EDI Group ID: 111
    Name: PARTNER-B
    Thank you
    Ram

    Two TPs can not have same identification.
    There are two ways to come out of this problem.
    1. Change the identification criteria for the TP.
    2. Use exchange level Identification for one TP.

Maybe you are looking for