Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    Is it possible to hide the Basic Tab in the attribute viewer?

    Scheduled Pinned Locked Moved Cinema 4D SDK
    c++
    3 Posts 3 Posters 21 Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • E Offline
      ECHekman
      last edited by

      I have NodeDatas that dont need their "Basic" to be shown. Is it possible to hide this tab?

      c6557447-1959-48b3-a3e3-0f42fe4c32cf-image.png

      ferdinandF 1 Reply Last reply Reply Quote 0
      • ferdinandF Offline
        ferdinand @ECHekman
        last edited by ferdinand

        Hey @ECHekman,

        it depends a bit on what you do in your description, which bases you include, and what you consider NodeData instances in your case. Are you actually talking about plain NodeData hooks or are you talking about derived types such as ObjectData?

        When we look for example into Ocube.res, we can see it includes Obase:

        CONTAINER Ocube
        {
        	NAME Ocube;
        	INCLUDE Obase;  // includes the description base for all objects Obase.res
        

        Which among other things contains the Obaselist group, which is the group you mean.
        e972d7aa-5434-40d2-b219-25703f65c2d8-image.png

        You could either not include the base description for your node type, or use a modified base which for example hides all elements in that group. But I personally would say that none of these approaches are really a good idea, as Cinema 4D is designed with the assumption that each basic scene element (object, tag, etc.) includes their base description.

        Falling to do so, will either make your plugin outright not work, or - when using more 'clever' approaches such as hiding all parameters, or hiding the whole group via GetDDescription or a modified base - severely impact how users can interact with your scene element.

        When you implement a plain NodeData hook, you should not see any extra tabs, as plain node hooks should not include any bases.

        Cheers,
        Ferdinand

        MAXON SDK Specialist
        developers.maxon.net

        1 Reply Last reply Reply Quote 0
        • CJtheTigerC Offline
          CJtheTiger
          last edited by

          Hi @ECHekman,

          Please also think about UX when deciding something like this. Your everyday C4D user expects just about any object to be customizable in this regard, even if they mostly don't use it. And while I think that objects like fields or deformers don't need things like X-Ray or the visibility flags and I think that it would be better to hide those for objects that don't use them, it's still established and expected as a common base.

          Unless this is something that's adjusted in all of base C4D I don't think it's a good idea to break this sort of user experience for your own plugins. Coherence is a big thing in UX if you want to make your plugin feel like a seemless integration.

          Also unless you're making this plugin solely for yourself you better believe that some peaceful day some user will show up yelling "why can't I change the icon color?" which even might be your future self.

          1 Reply Last reply Reply Quote 0
          • First post
            Last post