Jump to content
You must now use your email address to sign in [click for more info] ×

Best way to create dynamically embeddable object?


Recommended Posts

Hello everybody,

I'm creating floor plans with Affinity Designer and have recurrent objects like printers, door bells, switch panels etc. that I want to appear identically in all documents. How can I create an object that I can use within my ad documents and that is still editable at one object?

IOW: When I want to redesign the shape of the doorbell object (svg) I do this on the very root object and the effect takes place wherever this object is embedded?

I couldn't find a hint about it throughout the forum or Google. Thank You very much in advance for Your support. 🐵
-Rembrandt

Link to comment
Share on other sites

What you’re looking for is Symbols. Symbols can’t be made global, but if you add symbols to the Asset panel and then export assets from there you can import them into other documents.

How to use Symbols in Affinity Designer 2

Affinity Designer 2 Help: Using assets

Alfred spacer.png
Affinity Designer/Photo/Publisher 2 for Windows • Windows 10 Home/Pro
Affinity Designer/Photo/Publisher 2 for iPad • iPadOS 17.4.1 (iPad 7th gen)

Link to comment
Share on other sites

1 hour ago, Rembrandt said:

I do this on the very root object and the effect takes place wherever this object is embedded?

Don't embed the object but place it linked. – It can be an Affinity document or another file type with various objects and/or pages … or one resource file per object.

An object "library" can get placed linked on a separate artboard | or stored as linked in a template document (.aftemplate) to be available in new documents.

Consider the colour space & profile of such "library" document(s) to avoid colour shift or unwanted conversion in the target documents or their exports.

1 hour ago, Alfred said:

add symbols to the Asset panel and then export assets

Unfortunately Assets don't accept any linked items nor container file types (affinity, pdf, eps, etc).
Once the symbol "doorbell" needs a change it would require not only to replace (update) existing instances but also to re-export/-import its entire asset category in the panel.

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

Thank You so much. Both ways seem to be appropriate for my usecase. However I also struggle with a palette, which I want to use likewise:

When I have a couple of documents, where I have colored some areas in i. e. orange. When I now want to change the orange into a darker hue on all documents where I have applied this very "orange" (by own name) — how can I do so? When I define a global palette its a normal non-dynamic palette again. Do I have to re-globalize every single color again for each document?

Link to comment
Share on other sites

There is no way in Affinity to use a global colour swatch application-wide. Global colours require a "Document Palette" and are saved with the document. Even if you create a document palette with global swatches and assign it as a default palette in your Affinity app, you will get that palette in every new document but its swatches will only be global separately within each document. Means, if you change the definition of one of its global swatches it does neither affect this palette for new nor for existing documents but for this one current document only. (And, afaik, also System Palettes can't have global colours in terms of auto-updating a swatch definition in existing documents)

Alternatively you could use a linked resource file (image or container file format) – while, as mentioned, the colour space & profile matters and may influence either the look or the values or both if placed / exported in a different space or profile.

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

Creating an app palette would allow creating an app-specific (e.g., related to Publisher only) palette with (named) color definitions, and assignments that stay when a document is closed and reopened. The app palette can also be edited and edited swatches will be available app-wide in all documents; changes to definitions of app swatches would be shown by losing the assignment link to an edited swatch (that is, existing assignments will never be updated with a changed definition).

This is not the same as a document-specific global swatch, the features of which are capability of having an overprint attribute and depending children, and capability of having an editable color definition and have the change reflected in all objects (including depending children) using the assignment.

It is also possible to create .csv based custom color libraries and place them in the same folder amongst PANTONE color libraries (.csv files), and specify them as RGB or/and CMYK, and optionally as Spot. Color assignments made by using these swatches, too, will be retained when the document is closed and reopened (and will lose an assignment link if changes are made to the color definitions). These swatches would be different from the ones of an app palette in that they cannot be edited within an Affinity app, yet appear as global swatches with saved custom names, and accordingly show as names swatches on the Tint view of the Color panel (which is also their default view, similarly that of global swatches). The swatch names could be used when adding these colors into a document palette (and optionally making them true global swatches capable of having overprint attribute and child tints). These kinds of custom libraries would also be automatically available for all three Affinity apps, but I think they would be lost whenever apps are updated, even if used with an .EXE based installation (that is, in a folder which would remain unchanged at program update), so backup copies would need to be saved so that the definition files can be copied back to PANTONE library folder after an update. 

I have not tested whether custom .csv libraries could work in context of Microsoft Store based installations, nor have I tested this on macOS where these files would need to be placed in the app container when using Affinity store based versions. I have no idea whether this could work with Apple Store purchased versions, at all, but on macOS it is clear that these kinds of custom files cannot survive an app update, and that the changes need to be made for each of the three apps -- so probably not worth the trouble. 

EDIT: I remembered incorrectly the placement of PANTONE libraries on Windows so instead of using Common folder for all three apps, they are placed in app-specific folders (similarly as on macOS, in app-specific packages).

It is good to understand that if these kinds of "global" swatches are used to create true document-based global swatches, the link to the original swatch definition is lost and there is no way to see whether the definition of underlying original color has changed. Personally I do not see problem here as there should also be a way to protect a document-based color definitions from such changes. The point of this post was just to remind that there are ways to have user-defined color swatches automatically available for Affinity apps; whether they need to be used as document-wide global colors (with features like overprinting, editability and depending child tints), is up to the user,, but if not, the original swatch assignments are permanent (or perhaps it is more appropriate to say "permanentish" -- Affinity color assignments are confusing and kind of feeble, very easily lost).

Link to comment
Share on other sites

@thomaso Thank You very much. So when I want to use assigned dynamic colors ("global colors") there is also no way to use the same set of them in multiple documents? I have to define every single global color (in my case over 40) for each document again? The global colors are not part of any palette?

BTW I find the label "global color" extremely confusing as insinuates an app wide ("global") effect, however it applies only to the very document in which it is defined. The special property of this color type could be reflected in its label by naming it "dynamic color" for example.

@lacerto Very detailed overview to color name handling. 🙂 Thank You. But app wide names only help me to assign the right color, but assigning is still needed for every single color over all the many many objects over many many documents.

I imagine of someone who creates a set of icons with a subset of them in different sizes. Now the client wants to have the outline color a little brighter. You now have, to open each file individually just to change the color of all the outlines? I'm sure I just haven't figured out the gold method yet. ;-)

 

Link to comment
Share on other sites

8 minutes ago, Rembrandt said:

there is also no way to use the same set of them in multiple documents? I have to define every single global color (in my case over 40) for each document again?

You could export the palette and reimport per document or export as template where the palette will remain when creating a new document based upon this template.




 

Link to comment
Share on other sites

4 hours ago, Rembrandt said:

I have to define every single global color (in my case over 40) for each document again? The global colors are not part of any palette?

As mentioned, global colours are part of "Document Palettes". You can ex-/import this palette and maintain the 'global' attribute of its global swatches and, as mentioned, you can assign a document palette with global swatches as a "default" palette of your Affinity app.

But the pure existence of a palette (by import or as default) with global swatches is not related to the assignment of its swatches to layout objects. Also, copy/pasting a global coloured object between two layout documents does not mean to copy/paste the according swatch swatch.

4 hours ago, Rembrandt said:

The special property of this color type could be reflected in its label by naming it "dynamic color" for example.

The global attribute of a colour swatch is reflected by a triangle symbol in the bottom left corner of the swatch icon. An automated text in the swatch name might confuse or disturb in particular if a.) spot colours are used (they are always global) or b.) a swatches definition gets modified (Affinity does not update swatch names, e.g when a 'normal' swatch gets changed to a global swatch or when a swatch's colour definition gets modified by the user).

4 hours ago, Rembrandt said:

it applies only to the very document in which it is defined.

That's why I mentioned linked image resources or linked Affinity documents as a workaround. Using instances of the linked file enables you to change a colour in the original of the linked file only and get the change transferred to all layout documents that contain this resource as linked items.

4 hours ago, Rembrandt said:

I imagine of someone who creates a set of icons with a subset of them in different sizes. Now the client wants to have the outline color a little brighter. You now have, to open each file individually just to change the color of all the outlines? I'm sure I just haven't figured out the gold method yet.

I would create all items of a certain set of design (e.g. an icon family) in just 1 layout document … just because to increase possible synergy between used colour swatches, text styles, symbol layers etc. – If I have to separate the various items of one design family on several layout documents then I need to make decisions how attributes will get transferred between the various files. My preferred way would be using linked resources. The "gold method" you hope to find and use is rather individually, not 'global' ;), because not only the specific details (e.g. attributes, object types) do matter but also your individually preferred workflow. Developing your "gold standard" requires to decide for certain compromises. Fully global (in terms of auto-updating or "dynamical") colour swatches don't exist.*

* I assume they technically can't exists in any app or operating system unless every colour swatch is system-wide defined AND may modify the definition on another computer if opened on another computer. Regarding colour the idea of Colour Management and its different spaces, models and profiles seem to touch this subject. Theoretically it might work to create a colour profile as a separate file (.icc) for your various documents of icon designs and thus influence the colour appearance globally, regardless of app or computer.

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

13 hours ago, thomaso said:

Theoretically it might work to create a colour profile as a separate file (.icc) for your various documents of icon designs and thus influence the colour appearance globally, regardless of app or computer.

Not just theoretically, because it could be done with abstract ICCs that are based on Lab color definitions. Any one color value can be mapped to another with a LUT, OS and device independently. I am not saying that it is practical at the moment, but possible. Also, color groups/styles in AI and CorelDRAW would allow complex app-specific color mappings and the kind of design OP is looking for. Affinity apps are very poor in these kinds of workflows. 

Link to comment
Share on other sites

6 hours ago, lacerto said:

I am not saying that it is practical at the moment, but possible. (…) Affinity apps are very poor in these kinds of workflows. 

That's why I said "theoretically". For a practical workflow – as requested in this thread: Change colours globally to apply a new client's decisions efficient to all instances of corporate design documents, or just to create design variants – the available options aren't efficient, although they can be very effective.

In particular for print projects (e.g. corporate design, info graphics, etc.) Affinity is mainly too limited in its Swatches handling, Palettes and (automatic) Colour Modes and Spaces. While it does not lack in options to influence colour in any way effectively, those options can't get used efficiently for changes that require specific colour values in a specific colour space (e.g. CMYK).

While a colour profile (.icc) may change colours 'globally' for a document, it influences all objects in a document if used as document profile. If object/layer related adjustments (e.g. Softproof, HSL etc) or Layer-Effects get used then not only certain colour values are hard to achieve but such is still document related, not 'fully globally' for all instances in all documents in case of a client's decision. Even if such parent layers would be practical, they do not work as linked objects: Though it is possible to place an Affinity document which contains adjustments or filters those do not affect this document (… and would cause other problems if they could).

In the clip below, I start with the Swatches panel and its limitation of a palette - aside from the aforementioned need to export/import palettes for color updates and the requirement to reassign its swatches to every object in every document. Then I use Softproof and HSL, both of which offer a wide range of influencing colors (including blending modes), but cannot set specific numerical values. (Although we can select a specific space/model/value using the Color Overlay layer effect, this method is also not practical.) Finally, I change the color space of the document, which illustrates the complexity of mixed spaces and models. The available options may seem more practical for users whose brains are trained to "think" in different spaces and models - I personally can think in CMYK without any problems, but my limitation already starts with RGB, not to mention HSL or LAB or with prophecies of the visual result of some Blend Modes.

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

On 3/9/2024 at 3:26 PM, thomaso said:

While a colour profile (.icc) may change colours 'globally' for a document, it influences all objects in a document if used as document profile.

Abstract ICCs can be applied as per layer so basically limited even object-wise. As ICCs are external files, it would be possible to have a global effect on all documents where the same ICC is applied, if the ICC file is edited or replaced. I have tested this in PS where I can e.g. create s specific color in LAB, apply an adjustment layer that changes the color in a specific way (using e.g. HS, Curves or Levels adjustment), then export the effect as a LAB .icc and use that as per layer via PS Color Lookup adjustment, and have exactly identical color transformation that was achieved with adjustments. 

In Affinity apps it would basically be possible to use Soft Proof adjustment layer-wise, but the problem is that the abstract ICCs that I have created from PS do not behave identically as when applied as an abstract profile within PS (even if the demo abstract ICCs that come with PS and macOS do). But LUTs that PS creates at the same export procedure DO behave identically in both apps and produce the expected transformation, and LUTs are also external files. The effect of LUTs can also be limited to single layers (objects), so it would seem that it is possible to use them for the kinds of purposes described here.

Whether it is practical depends on workflows one is accustomed to, and working with LUTs and abstract ICCs is admittedly very different from palette-based global assignments and color transformations that can be achieved by color groups/styles based mappings in apps like Illustrator or CorelDRAW. But as these kinds of methods are not available in Affinity apps where not even document color palette creation (with auto-assignments) and automatic maintenance is supported and where existing assignments are so easily lost and poorly translatable across documents, the alternative methods might be at least worth a look. LUTs are available as a layer adjustment in all three apps but it seems that they can be created only in Affinity Photo and Publisher Photo Persona. Also, it seems that the kinds of adjustments included in export are limited (e.g., I have have not been able to export effect of an HSL layer to a LUT file EDIT: I just retried and now it worked without problems so I might just have done something wrong on my first try). 

UPDATE: I just tested this and unfortunately a LUT file is not linked so the changes made to the file will not be automatically updated in objects where a LUT is applied. What a bummer. Abstract ICCs probably would be but at the moment they do not behave reliably in Affinity apps, and also cannot be created with Affinity apps.

UPDATE2: It is the same in PS, too, so even if the linked LUT or abstract ICC file changes, it will not be automatically updated unless reapplied (which is in itself a task that can be done because full link to source is displayed, and if files are placed in default folders, simply just selecting the same LUT or abstact ICC will reapply the effect). In a way this is reasonable, but there is e.g. no notification of an outdated link (updated LUT or profile).

Link to comment
Share on other sites

2 hours ago, lacerto said:

Abstract ICCs can be applied as per layer so basically limited even object-wise. As ICCs are external files, it would be possible to have a global effect on all documents where the same ICC is applied, if the ICC file is edited or replaced. (…)

UPDATE: I just tested this and unfortunately a LUT file is not linked so the changes made to the file will not be automatically updated in objects where a LUT is applied. What a bummer. Abstract ICCs probably would be but at the moment they do not behave reliably in Affinity apps, and also cannot be created with Affinity apps.

While also adjustment or soft proof can get applied as per layer already that workflow would contradict with their possible advantage of a 'global' colour change if you need to use them object/layer-oriented anyway. Apart from the difficulty to make them affect one certain colour (swatch) only, in RGB, HSL or LAB they are difficult to define for specific colours for print documents.

@Rembrandt, lacertos note about not-linked LUTs leads me to the question whether it would be practical at all to be able to create fully global swatches (app-wide/system-wide): If they indeed would influence the colour of every existing document their use may become quite complex, not practical and tricky to overview, name, sort, organize etc. Over time it might result in swatches with identical definitions (but different names?) and may get counterproductive up to useless for spot colours: They are global, too, may have two (different) names per swatch but should not appear in a print file multiple times for the same colour (-> ink / channel).

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

On 3/10/2024 at 12:51 PM, thomaso said:

Apart from the difficulty to make them affect one certain colour (swatch) only, in RGB, HSL or LAB they are difficult to define for specific colours for print documents.

Yes, considering that these file-based assignments are not linked / do not get notified if there are updates, this does not seem to be a practical solution. But because global colors are practically document-wide, there are no other practical options available, either.

UPDATE: The biggest argument against use of these kinds of methods in context of Affinity apps is that as both LUTs and Soft Proof based abstract ICCs are applied as layer adjustments, they cause rasterization of vector based exports (e.g. to PDF, EPS and SVG) and would therefore be useless in workflows where vector format needs to be retained. This does not happen when these adjustments are applied on vector objects (shapes) in Photoshop and exported to PDF (even when disabling PS editing capabilities and producing standard PDFs).

My advise would be just defining an app color palette (and copy it to be available for all three apps, which in itself is quite a nuisance) and make sure color assignments are truly made (links highlighted) -- at least on macOS, updating the assignment highlight has been buggy for a long time so just to make sure that assignments are really applied can be tedious. But as long as app palette swatches remain unchanged, the assignment links stay highlighted, and lose the highlight if there is a conflict with the current definition. In Publisher and Designer, "select same" feature would allow updating obsolete fills with the the current definition. Copy pasting across apps and documents (and retaining swatch assignments) would be possible, as well.

Features related to truly global swatches (like child tints and overprinting) would not be available for such assignments, of course, so app palettes have only very limited use. 

The limitations of Affinity palettes is further stressed in SVG workflows as it seems that (named) swatch assignments cannot be used, at all, as style or class definitions, so their global change effectively would not be possible in produced files, either.

Link to comment
Share on other sites

As I do not have personally needs for the kind of "global" swatch redefinitions described in this thread, I had a look on how this is done in InDesign and Illustrator (CS6), and basically silent updates to swatches are not supported in either app (which IMO is good; just having "conflicting" color definitions silently updated whenever a swatch called "Orange" is used in an existing and opened palette could be a catastrophe). However when loading or assigning a swatch using the same name as existing swatch (and also when trying to create a swatch with an identical definition with an existing swatch in the same palette / swatch library), the user is notified and the conflicting swatch can be imported/created using a different (unique) name. Afterwards it is up to the user to update the existing definition with the new one, or merge the conflicting definitions so that the old definition gets updated with the new one while keeping the current assignments (including tints and attributes of depending children). E.g., in InDesign this can be done simply by deleting a swatch and have it replaced with another swatch, while keeping all existing assignments and dependencies. Swatch color model (including spot color definitions) can be replaced similarly without losing assignments.  

There are no similar functionalities in Affinity apps, so whenever a swatch with a specific name in an app-wide palette is updated the existing assignments to that swatch are just lost. In Publisher and Designer, it would be possible to "select same" or "select by attribute" feature to select objects using the "old" definition and then do reassignment. As for document palettes and global swatches, existing color definitions and names and assignments are retained so the UI does not notify if there is a conflicting swatch using the same name e.g. in an app-wide palette, or in a "global" document palette that gets autoloaded when creating a new document. But at least existing assignments and parent-child dependencies are retained so it would be possible to manually update the definitions (as per document). 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.