diff --git a/Packages/systems.speckle.speckle-unity/Runtime/Converter/Unity/ConverterUnity.Geometry.cs b/Packages/systems.speckle.speckle-unity/Runtime/Converter/Unity/ConverterUnity.Geometry.cs
index 56e8289..0105c13 100644
--- a/Packages/systems.speckle.speckle-unity/Runtime/Converter/Unity/ConverterUnity.Geometry.cs
+++ b/Packages/systems.speckle.speckle-unity/Runtime/Converter/Unity/ConverterUnity.Geometry.cs
@@ -357,25 +357,25 @@ namespace Objects.Converter.Unity
return new Matrix4x4
{
// Left (X -> X)
- [0, 0] = smatrix.M11,
- [2, 0] = smatrix.M21,
- [1, 0] = smatrix.M31,
- [3, 0] = smatrix.M41,
+ [0, 0] = (float)smatrix.M11,
+ [2, 0] = (float)smatrix.M21,
+ [1, 0] = (float)smatrix.M31,
+ [3, 0] = (float)smatrix.M41,
//Up (Z -> Y)
- [0, 2] = smatrix.M12,
- [2, 2] = smatrix.M22,
- [1, 2] = smatrix.M32,
- [3, 2] = smatrix.M42,
+ [0, 2] = (float)smatrix.M12,
+ [2, 2] = (float)smatrix.M22,
+ [1, 2] = (float)smatrix.M32,
+ [3, 2] = (float)smatrix.M42,
//Forwards (Y -> Z)
- [0, 1] = smatrix.M13,
- [2, 1] = smatrix.M23,
- [1, 1] = smatrix.M33,
- [3, 1] = smatrix.M43,
+ [0, 1] = (float)smatrix.M13,
+ [2, 1] = (float)smatrix.M23,
+ [1, 1] = (float)smatrix.M33,
+ [3, 1] = (float)smatrix.M43,
//Translation
[0, 3] = (float)(smatrix.M14 * sf),
[2, 3] = (float)(smatrix.M24 * sf),
[1, 3] = (float)(smatrix.M34 * sf),
- [3, 3] = smatrix.M44,
+ [3, 3] = (float)smatrix.M44,
};
}
diff --git a/Packages/systems.speckle.speckle-unity/Runtime/Converter/Unity/ConverterUnity.cs b/Packages/systems.speckle.speckle-unity/Runtime/Converter/Unity/ConverterUnity.cs
index f195435..71e0ca8 100644
--- a/Packages/systems.speckle.speckle-unity/Runtime/Converter/Unity/ConverterUnity.cs
+++ b/Packages/systems.speckle.speckle-unity/Runtime/Converter/Unity/ConverterUnity.cs
@@ -202,6 +202,18 @@ namespace Objects.Converter.Unity
return objects.Select(x => ConvertToNative(x)).ToList();
}
+ public object ConvertToNativeDisplayable(Base @object)
+ {
+ throw new NotImplementedException(
+ $"{nameof(ConvertToNativeDisplayable)} is not implemented by this converter, use {nameof(ConvertToNative)} instead"
+ );
+ }
+
+ public bool CanConvertToNativeDisplayable(Base @object)
+ {
+ throw new NotImplementedException();
+ }
+
public bool CanConvertToSpeckle(object @object)
{
switch (@object)
diff --git a/Packages/systems.speckle.speckle-unity/Runtime/Core/SpeckleCore2.deps.json b/Packages/systems.speckle.speckle-unity/Runtime/Core/SpeckleCore2.deps.json
index 1cb37e0..bceacc5 100644
--- a/Packages/systems.speckle.speckle-unity/Runtime/Core/SpeckleCore2.deps.json
+++ b/Packages/systems.speckle.speckle-unity/Runtime/Core/SpeckleCore2.deps.json
@@ -25,7 +25,8 @@
"Serilog.Sinks.Console": "4.1.0",
"Serilog.Sinks.Seq": "5.2.2",
"SerilogTimings": "3.0.1",
- "Speckle.Newtonsoft.Json": "13.0.2"
+ "Speckle.Newtonsoft.Json": "13.0.2",
+ "System.DoubleNumerics": "3.1.3"
},
"runtime": {
"SpeckleCore2.dll": {}
@@ -444,6 +445,17 @@
}
}
},
+ "System.DoubleNumerics/3.1.3": {
+ "dependencies": {
+ "NETStandard.Library": "2.0.3"
+ },
+ "runtime": {
+ "lib/netstandard1.3/System.DoubleNumerics.dll": {
+ "assemblyVersion": "1.0.0.0",
+ "fileVersion": "1.0.0.0"
+ }
+ }
+ },
"System.Memory/4.5.4": {
"dependencies": {
"System.Buffers": "4.5.1",
@@ -863,6 +875,13 @@
"path": "system.collections.immutable/5.0.0",
"hashPath": "system.collections.immutable.5.0.0.nupkg.sha512"
},
+ "System.DoubleNumerics/3.1.3": {
+ "type": "package",
+ "serviceable": true,
+ "sha512": "sha512-KRKEM/L3KBodjA9VOg3EifFVWUY6EOqaMB05UvPEDm7Zeby/kZW+4kdWUEPzW6xtkwf46p661L9NrbeeQhtLzw==",
+ "path": "system.doublenumerics/3.1.3",
+ "hashPath": "system.doublenumerics.3.1.3.nupkg.sha512"
+ },
"System.Memory/4.5.4": {
"type": "package",
"serviceable": true,
diff --git a/Packages/systems.speckle.speckle-unity/Runtime/Core/SpeckleCore2.dll b/Packages/systems.speckle.speckle-unity/Runtime/Core/SpeckleCore2.dll
index 48d801d..bd7ab95 100644
Binary files a/Packages/systems.speckle.speckle-unity/Runtime/Core/SpeckleCore2.dll and b/Packages/systems.speckle.speckle-unity/Runtime/Core/SpeckleCore2.dll differ
diff --git a/Packages/systems.speckle.speckle-unity/Runtime/Core/SpeckleCore2.pdb b/Packages/systems.speckle.speckle-unity/Runtime/Core/SpeckleCore2.pdb
index 35a11a1..cab2f35 100644
Binary files a/Packages/systems.speckle.speckle-unity/Runtime/Core/SpeckleCore2.pdb and b/Packages/systems.speckle.speckle-unity/Runtime/Core/SpeckleCore2.pdb differ
diff --git a/Packages/systems.speckle.speckle-unity/Runtime/Core/SpeckleCore2.xml b/Packages/systems.speckle.speckle-unity/Runtime/Core/SpeckleCore2.xml
index ebc8655..87c0b21 100644
--- a/Packages/systems.speckle.speckle-unity/Runtime/Core/SpeckleCore2.xml
+++ b/Packages/systems.speckle.speckle-unity/Runtime/Core/SpeckleCore2.xml
@@ -774,15 +774,25 @@
- Serializes a given object. Note: if you want to save and persist an object to a Speckle Transport or Server, please use any of the "Send" methods. See .
+ Serializes a given object.
+
+ if you want to save and persist an object to a Speckle Transport or Server,
+ please use any of the "Send" methods.
+ See
+
A json string representation of the object.
- Serializes a given object. Note: if you want to save and persist an object to Speckle Transport or Server, please use any of the "Send" methods. See .
+ Serializes a given object.
+
+ If you want to save and persist an object to Speckle Transport or Server,
+ please use any of the "Send" methods.
+
+
Propagates notification that operations should be canceled.
A json string representation of the object.
@@ -803,15 +813,24 @@
- Deserializes a given object. Note: if you want to pull an object from a Speckle Transport or Server, please use any of the .
+ Deserializes a given object.
+
+ Note: if you want to pull an object from a Speckle Transport or Server,
+ please use any of the
+
The json string representation of a speckle object that you want to deserialise.
- Deserializes a given object. Note: if you want to pull an object from a Speckle Transport or Server, please use any of the .
+ Deserializes a given object.
+
+ Note: if you want to pull an object from a Speckle Transport or Server,
+ please use any of the
+ .
+
The json string representation of a speckle object that you want to deserialise.
Propagates notification that operations should be canceled.
@@ -880,7 +899,8 @@
Gets all the accounts present in this environment.
-
+ This function does have potential side effects. Any invalid accounts found while enumerating will be removed
+ Un-enumerated enumerable of accounts
@@ -1137,6 +1157,11 @@
Exception thrown when an object was desirably skipped
+
+
+ Exception thrown when an object was not ready to be baked into the document (i.e. the element's host doesn't exist yet)
+
+
Keeps track of the conversion process
@@ -1182,6 +1207,23 @@
+
+
+ Converts a given speckle objects as a generic native object.
+ This should assume has been called and returned True,
+ or call it within this method's implementation to ensure non-displayable objects are gracefully handled.
+
+
+ This method should not try to convert an object to it's native representation (i.e Speckle Wall -> Wall),
+ but rather use the 'displayValue' of that wall to create a geometrically correct representation of that object
+ in the native application.
+ An object may be able to be converted both with and .
+ In this case, deciding which to use is dependent on each connector developer.
+ Preferably, should be used as a fallback to the logic.
+
+ Speckle object to convert
+ The native object that resulted after converting the input
+
Checks if it can convert a Speckle object to a native one
@@ -1189,6 +1231,20 @@
Speckle object to convert
+
+
+ Checks to verify if a given object is: 1) displayable and 2) can be supported for conversion to the native application.
+ An object is considered "displayable" if it has a 'displayValue' property (defined in its class or dynamically attached to it, detached or not).
+
+
+ An object may return "True" for both and
+ In this case, deciding which to use is dependent on each connector developer.
+ Preferably, should be used as a fallback to the logic.
+ Objects found in the 'displayValue' property are assumed to be universally convertible by all converters and the viewer, but are not guaranteed to be so.
+
+ Speckle object to convert
+ True if the object is "displayable" and the converter supports native conversion of the given speckle object in particular.
+
Returns a list of applications serviced by this converter
@@ -1650,7 +1706,7 @@
Abstract Builder class for a root commit object.
- The native object data type needed as input for building
+ The native object data type needed as input for building
It is designed to be inherited by a host app specific implementation,
to give connectors flexibility in constructing their objects.
@@ -1663,12 +1719,12 @@
app id -> base
-
- Base -> Tuple{Parent App Id, propName} ordered by priority
+
+ Base -> NestingInstructions ordered by priority
- Given the parameters, builds connector specific
+ Given the parameters, builds connector specific
to be applied when is called.
@@ -1684,7 +1740,7 @@
-
+
Sets information on how a given object should be nested in the commit tree.
encodes the order in which we should try and nest the given
@@ -1704,18 +1760,18 @@
Will attempt to find and nest the object
- under the first valid parent according to the dictionary.
+ under the first valid parent according to the dictionary.
A parent is considered valid if
1. Is non null
2. Is in the dictionary
- 3. Has (or can dynamically accept) a typed property with the propName specified by the item
+ 3. Has (or can dynamically accept) a typed property with the propName specified by the item
4. Said can accept the object's type
- Thrown when no valid parent was found for given
+ Thrown when no valid parent was found for given
@@ -1885,6 +1941,15 @@
Value to set
+
+
+ Checks if an object "is displayable" i.e. has a displayValue property that is a list of base.
+ This is to mirror the selection logic of our viewer package, where any "displayable object" will become
+ a single selectable entity.
+
+ The Base object to check.
+ True if the object is displayable, false otherwise.
+
Wrapper around other, third party, classes that are not coming from a speckle kit.
@@ -2105,14 +2170,20 @@
Function returning the members that should be traversed for objects where this rule holds
Traversal rule in a usable state
-
+
- Wrapper method around hashing functions. Defaults to md5.
+ Container for a reference to a parent's applicationId and an Action to
+ execute in order to nest the child on the parent
+
+
+
+
+ Wrapper method around hashing functions..
-
+
Retrieves the simple type properties of an object
@@ -2152,7 +2223,7 @@
The JSON string of the object to be deserialized
A typed object deserialized from the
- Thrown when
+ Thrown when
Thrown when deserializes to a type other than
@@ -2278,11 +2349,9 @@
-
- Gets an object.
-
The object's hash.
-
+ The serialized object data, or if the transport cannot find the object
+
@@ -2296,7 +2365,7 @@
The provided arguments are not valid
-
+
Checks if objects are present in the transport
@@ -2329,7 +2398,7 @@
Callback when sending batches. Parameters: object count, total bytes sent
-
+
Timer that ensures queue is consumed if less than MAX_TRANSACTION_SIZE objects are being sent.
@@ -2369,7 +2438,7 @@
Adds an object to the saving queue.
-
+
@@ -2383,7 +2452,7 @@
Gets an object.
-
+
diff --git a/Packages/systems.speckle.speckle-unity/Runtime/Core/System.DoubleNumerics.dll b/Packages/systems.speckle.speckle-unity/Runtime/Core/System.DoubleNumerics.dll
new file mode 100644
index 0000000..a73329f
Binary files /dev/null and b/Packages/systems.speckle.speckle-unity/Runtime/Core/System.DoubleNumerics.dll differ
diff --git a/Packages/systems.speckle.speckle-unity/Runtime/Core/System.DoubleNumerics.dll.meta b/Packages/systems.speckle.speckle-unity/Runtime/Core/System.DoubleNumerics.dll.meta
new file mode 100644
index 0000000..a074f0b
--- /dev/null
+++ b/Packages/systems.speckle.speckle-unity/Runtime/Core/System.DoubleNumerics.dll.meta
@@ -0,0 +1,33 @@
+fileFormatVersion: 2
+guid: a85708f21043b0c458a3a77c0e09e4b8
+PluginImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ iconMap: {}
+ executionOrder: {}
+ defineConstraints: []
+ isPreloaded: 0
+ isOverridable: 1
+ isExplicitlyReferenced: 0
+ validateReferences: 1
+ platformData:
+ - first:
+ Any:
+ second:
+ enabled: 1
+ settings: {}
+ - first:
+ Editor: Editor
+ second:
+ enabled: 0
+ settings:
+ DefaultValueInitialized: true
+ - first:
+ Windows Store Apps: WindowsStoreApps
+ second:
+ enabled: 0
+ settings:
+ CPU: AnyCPU
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Packages/systems.speckle.speckle-unity/Runtime/Objects/Objects.dll b/Packages/systems.speckle.speckle-unity/Runtime/Objects/Objects.dll
index a45e935..e05a3ac 100644
Binary files a/Packages/systems.speckle.speckle-unity/Runtime/Objects/Objects.dll and b/Packages/systems.speckle.speckle-unity/Runtime/Objects/Objects.dll differ
diff --git a/Packages/systems.speckle.speckle-unity/Runtime/Objects/Objects.pdb b/Packages/systems.speckle.speckle-unity/Runtime/Objects/Objects.pdb
index c74aae7..127343f 100644
Binary files a/Packages/systems.speckle.speckle-unity/Runtime/Objects/Objects.pdb and b/Packages/systems.speckle.speckle-unity/Runtime/Objects/Objects.pdb differ
diff --git a/Packages/systems.speckle.speckle-unity/Runtime/Objects/Objects.xml b/Packages/systems.speckle.speckle-unity/Runtime/Objects/Objects.xml
index 502720c..0d04b0e 100644
--- a/Packages/systems.speckle.speckle-unity/Runtime/Objects/Objects.xml
+++ b/Packages/systems.speckle.speckle-unity/Runtime/Objects/Objects.xml
@@ -180,6 +180,12 @@
A list of base classes to represent the direct shape (only mesh and brep are allowed, anything else will be ignored.)
Optional Parameters for this instance.
+
+
+ FamilyDocuments can only be assigned these categories
+ This is a subset of the list above which was manually retrieved from Revit's UI
+
+
DEPRECATED. Sets the geometry contained in the FreeformElement. This field has been deprecated in favor of `baseGeometries`
@@ -2154,7 +2160,7 @@
-
+
Construct a transform from a 4x4 matrix and translation units
@@ -2184,7 +2190,7 @@
Units for translation
-
+
Decomposes matrix into its scaling, rotation, and translation components
diff --git a/Packages/systems.speckle.speckle-unity/package.json b/Packages/systems.speckle.speckle-unity/package.json
index 99ee6a3..7c681bd 100644
--- a/Packages/systems.speckle.speckle-unity/package.json
+++ b/Packages/systems.speckle.speckle-unity/package.json
@@ -1,6 +1,6 @@
{
"name": "systems.speckle.speckle-unity",
- "version": "2.15.3",
+ "version": "2.16.0",
"displayName": "Speckle Unity Connector",
"description": "AEC Interoperability for Unity through Speckle",
"unity": "2021.1",
@@ -21,4 +21,4 @@
"email": "hello@speckle.systems",
"url": "https://speckle.systems"
}
-}
+}
\ No newline at end of file