When an object has multiple options, how I can pass these arguments in one line?

When an object has multiple optiosn, how I can pass these arguments in one line?

eg. oTableBorder.TopLine has options:

Color (long)
InnerLineWidth (integer)
OuterLineWidth (integer)
LineDistance(integer)

Why is invalid to use 
oTableBorder.TopLine = (cRed, 1, 1, 1) 
oTableBorder.TopLine = Array(cRed, 1, 1, 1) or 
oTableBorder.TopLine = (cRed, 1, "", "") ;

How the object handler can decide that which order you passed the parameter?
You must name the property for settings of its value.

Are we in python? →
This works here for one selected Cell[range]:

from com.sun.star.table import BorderLine2 as Border2

def setBorders(*_):
    
    lineattributes = {'Color': int('aa1100',16),
                     'InnerLineWidth': 155,
                     'OuterLineWidth' : 10,
                     'LineDistance': 20,
                     'LineWidth': int('9f',16),
                     'LineStyle': 0}

    border = Border2()

    for key, val in lineattributes.items():
        setattr(border, key, val)

    doc = XSCRIPTCONTEXT.getDocument()
    sel = doc.CurrentSelection 


    for Line in ('Top','Bottom','Left', 'Right' ):
        setattr(sel, f'{Line}Border2', border )

The question looks unclear to me.
Why don’t you use standardized terminology? I have to guess, e.g, that the “options” you ascribe to objects are properties.What do you mean by “invalid to use”? …

Why don’t you paste a sufficiently complete piece of code (a Sub e.g.) allowing to see whwt should happen.

Your problem may be caused by the misunderstanding that assignments to a structure taken from a complex object change the object’s properties.

You need to understand that you also need to assign the changed stucture to the original object.

The nonsense-code below works for me as expected:

Sub testPropertiesAssignment()
rg = ThisComponent.CurrentSelection(0)
tb = rg.TableBorder
tbTl = tb.Topline
tlColor = tbTl.Color
If tlColor<1000000 Then
  tbTl.OuterLineWidth = tbTl.OuterLineWidth * 2
  tb.TopLine = tbTl
  rg.TableBorder = tb
End If
End Sub

Sorry for not clarifying that I am talking about LILO Macro Starbase.

The example of Karolus is a very good piece of code but in python.

In Macro, can be done something similar to this?

See example code below:
You can see that I use two lines for defining two properties of LILO Macro objects in tables (sorry for my wrong terminology).

LeftLine.Color and InnerLineWidth.
This code can be extended in multiple lines with eg. Tables in Macro LILO Starbase, cause Table objects have many definitions (left, right, top, down etc.) with many properties to define eg. Color, width, height, distance etc. So I want to save code lines! I know the classic example of oLine that is given in wiki documentation here. But this does not save lines in the way that I am describing. It defines oLine, and then use Oline as a standard definition of properties. If someone would like to change individually object properties of Tables, is needed to do a looooooooong code!

    oTableBorder.LeftLine.Color    			 	= cBlack
    oTableBorder.LeftLine.InnerLineWidth        = 10
    oTableBorder.RightLine.Color  			 	= cBlack
    oTableBorder.RightLine.InnerLineWidth       = 10
    oTableBorder.TopLine.Color  				= cBlack
    oTableBorder.TopLine.InnerLineWidth     	= 10
    oTableBorder.BottomLine.Color  				= cBlack
    oTableBorder.BottomLine.InnerLineWidth      = 10
    oTableBorder.HorizontalLine.Color  			= cBlack
    oTableBorder.HorizontalLine.InnerLineWidth  = 0
    oTableBorder.HorizontalLine.Color  			= cBlack
    oTableBorder.HorizontalLine.InnerLineWidth  = 0