viktor.external.dynamo
DynamoFile
- class viktor.external.dynamo.DynamoFile(file)¶
-
Dynamo file instantiated from an existing input .dyn file. This class allows for easy transformation of input nodes by means of the
update()
method.- Parameters
file (
File
) – Dynamo input file (.dyn).
- update(name, value)¶
Update the value of an input node with specified name.
- Parameters
name (
str
) – Name of the input node.value (
Any
) – New input value.
- Return type
None
- get_node_id(name)¶
Retrieve the unique node id by name.
- Parameters
name (
str
) – Name of the node.- Return type
str
get_dynamo_result
- viktor.external.dynamo.get_dynamo_result(file, id_)¶
Extract results from a Dynamo output file (.xml) by means of a node ‘id’, which can be obtained by calling
get_node_id()
.Example using BytesIO:
input_file = DynamoFile(file) output_id = input_file.get_node_id("Area") # output node called "Area" ... output_file = dynamo_analysis.get_output_file(filename='output.xml') # viktor.external.generic.GenericAnalysis result = get_dynamo_result(output_file, id_=output_id)
Example using
File
:input_file = DynamoFile(file) output_id = input_file.get_node_id("Area") # output node called "Area" ... output_file = dynamo_analysis.get_output_file(filename='output.xml', as_file=True) # viktor.external.generic.GenericAnalysis with output_file.open_binary() as f: result = get_dynamo_result(f, id_=output_id)
- Parameters
file (
BinaryIO
) – Dynamo output file (.xml).id – Unique identifier of the output result node.
- Return type
str
convert_geometry_to_glb
- viktor.external.dynamo.convert_geometry_to_glb(file, filter=None)¶
Convert a Dynamo geometry file (.json) to a GLB file, which can directly be used in a
GeometryResult
.Filter specific geometric objects by id, obtained by calling
get_node_id()
:input_file = DynamoFile(file) sphere_id = input_file.get_node_id("Sphere") # geometry node called "Sphere" ... geometry_file = dynamo_analysis.get_output_file(filename='geometry.json', as_file=True) # viktor.external.generic.GenericAnalysis glb_file = convert_geometry_to_glb(geometry_file, filter=[sphere_id])